You ask for a big task, answer two questions along the way, approve a command, and by the time you look up the agent is polishing a detail that had nothing to do with the request. /goal, which shipped in Verboo Code 0.15.35 (2026-09-30), fixes that: you record one objective for the session and it goes back to the agent on every turn until you close it. This guide covers the commands, what happens under the hood and what to do when the goal gets stuck.
What does /goal do in Verboo Code?
It records a persistent objective for the current session and re-injects it into the agent's context on every turn while it is active. The agent starts working on it right away, without you sending another message.
The description in the source is literal: "Set and track a persistent goal for this session". While the goal is active, the CLI footer shows Goal active: in green, followed by a summary of up to 54 characters of what you asked for.
How do I set a goal?
Write the objective right after the command. Be specific about what counts as done, because this is the text the agent rereads on every turn.
/goal migrate the payments module from callbacks to async/await, with every test in src/payments passing
The CLI replies Goal set: with the stored text and the agent starts. If an unfinished goal with different text already existed, the reply is Goal replaced:: the new one replaces the old one, it does not stack.
What are all the /goal commands?
Seven forms, all taken from the CLI's own help (/goal help):
| Command | What it does |
|---|---|
/goal <objective> | Sets or replaces the goal and starts working on it |
/goal or /goal status | Shows the current goal and its status |
/goal pause | Pauses: the goal stops being re-injected, the footer turns yellow |
/goal resume | Resumes a paused or blocked goal and the agent gets back to work |
/goal complete | Marks it done; the footer goes away |
/goal clear | Deletes the goal (also accepts stop, off, reset, cancel) |
How do I know where the goal stands?
Look at the footer or run /goal status. The status is one of four, each with its own color:
/goal status
| Status | Footer | Does the agent receive the goal? |
|---|---|---|
active | green | Yes, on every turn |
paused | yellow | No |
blocked | red | Yes, with an instruction to stop retrying and ask for help |
completed | hidden | No |
Can the agent close the goal by itself?
It can mark it complete, but only once the objective has actually been achieved. For that, Verboo Code gives the agent an internal tool, GoalUpdate, that accepts three statuses: complete, paused and blocked.
The reminder sent along with the goal tells the agent not to pause unless you ask. And only the main session touches the goal: subagents do not receive the reminder and, if they try to update it, they get "Only the main session can update its persistent goal." To close it yourself, run /goal complete.
What do I do when the goal goes blocked?
Fix the cause and run /goal resume. The blocked status only shows up when the same blocker repeats on 3 of your turns in a row, and from then on the agent stops pushing and asks what is missing.
The rule is in the source: the first and second time the agent hits the same problem (a missing credential, a service that is down, a test that depends on something only you have), the blocker is just recorded and it keeps trying other paths. On the third in a row, the goal becomes blocked and the reason shows up in /goal status, on the Blocker: line.
/goal status
/goal resume
resume clears the recorded blocker and puts the goal back to active. If the goal was already complete, it does not reopen: the CLI replies "This goal is already complete. Set a new goal with /goal <objective>."
Where is the goal stored?
In one JSON file per session, at ~/.verboo/goals/<session-id>.json, readable only by your user (600). If you set VERBOO_CONFIG_DIR, the goals/ folder lives inside it.
The practical upshot: the goal does not live only in the process memory, so you can check what was stored straight from disk.
cat ~/.verboo/goals/*.json
When should I use /goal and when not?
Use it for multi-step tasks where you will interact along the way: a migration, a refactor with tests, fixing a batch of issues. For a single-answer request you do not need it: the goal just takes up context space.
It pairs well with /compact. The compaction summary can lose the details of the original request; the /goal objective keeps being re-injected afterwards. And if the agent goes down a bad edit on the way, /rewind undoes it without dropping the goal.
A persistent goal matters most in long sessions, which are the ones that burn the most tokens. On Verboo Code the plan has unlimited tokens, so the agent can carry the goal to the end without you watching a quota: create your account at verboo.ai, update the CLI and run /goal on your next big task.



