xAI Introduces /goal to Grok Build, Adds Long-Term Automation with Built-in Validation for Multi-Step Tasks

xAI has posted a new mod called /goal inside Grok Build, its own code repository agent. The feature is aimed at long-term, automatic operation. You give the agent a lot of initial work, and then back off.
Most coding sessions need to be done back and forth and verified. You command, the agent takes action, and you verify each step. /goal it changes that loop. The agent continues to work until the job is completed and confirmed. Validation can mean reviewing code, testing web pages, or creating documentation.
The mod packages independently after a single command and visual progress checklist.
The TL;DR
/goalperform long, independent tasks within the Grok Build final agent.- Plans the process, creates a checklist, implements it, and verifies it to completion.
- Authentication can review code, inspect web pages, or sign documents.
status,pause,resumeagaincleardirect the live run.- Access requires SuperGrok or X Premium Plus subscription.
What /goal
/goal it’s a mod within Grok Build, not a separate product. Grok Build is an xAI coding agent and CLI for software engineering. CLI is a command line tool that runs in your terminal. It works against your local codebase, reading files and running commands.
Grok Build already ships with several features of the agent. It has a program mode that blocks editing until you approve the program. It delegates the bulk of work to specialized subagents that work in parallel. It reads yours AGENTS.mdplugins, hooks, skills, and MCP servers out of the box. MCP is a protocol that connects agents to external devices and data.
Access requires SuperGrok or X Premium Plus subscription. You install the CLI with a single command:
curl -fsSL | bashThen log in with your account and request /goal. The mode is designed for handoff. You define a single goal, and the agent owns multiple steps.
Why Long-Term Execution Matters
The agent is given a goal, not just a single piece of information. Plans steps, implements them, observes results, and re-plans when reality differs. That is the observe–plan–act loop. The trade-off is obvious: a long run brings out more action to watch. /goal answers that with a checklist of progress and guidance.
How /goal It works
You put the goal in one line. You write it inside the Grok Build session, not your system shell. For example:
/goal Migrate the auth module to the new APIGrok Build paves the way for that goal. Breaks the task down into a progress checklist. It then starts doing the checklist items one by one.
You are not locked out while you are on the run. You can continue to share more instructions as they work. When the goal is completed, the panel investigates to Complete. Every checklist item then shows that it has been checked.
Confirmation Step
Details to be noted to confirm. /goal it’s not limited to coding. It continues until the job is completed and confirmed.
Authentication, per xAI, can take three forms. The agent may update the code it generated. It may scan web pages to verify behavior. It may use scripts to check the result.
This is important for independent running. An agent that only edits files may report success before the change takes effect. Enabling validation means that the agent checks the output before it finishes.
Interactive Demo
There is no effective policy.
Type a goal above or choose an example, and run.
‘; setProgress(); emit(“Mission down. Ready for new mission.”, ‘sys’); runBtn.disabled=false; gi.disabled=false; cPause.disabled=true; cResume.disabled=true; cClear.disabled=true; gi.focus(); }; cStatus.onclick=function(){ var done=items.length?items.filter(function(i){return i.done;}).length:0; emit(“/goal state — “+stateEl.textContent+” · “+done+”/”+items.length+” steps completed”, ‘you’); statusBox.scrollIntoView({behavior:’smooth’,block:’nearest’}); }; runBtn.onclick=startGoal; gi.addEventListener(‘keydown’,function(e){ if(e.key===’Enter’){ startGoal(); }}); // automatically resize WordPress srcdoc iframe (component height + ~40px) function resize(){ try{ var h = root.offsetHeight + 40; parent.postMessage({type:’mtp-goal-resize’, height:h}, ‘*’); }catch(e){} } var ro = window.ResizeObserver ? new ResizeObserver(resize) : null; if(ro) ro.observe(root); window.addEventListener(‘load’, resize); setTime(resize, 1200); })();



