Skip to content

Guide: Coding agent

muaz ships a coding agent tuned for real engineering work: it reads code with scoped shell commands, makes the smallest correct change, and verifies it. This guide walks a typical loop.

From the browser UI, pick coding on the Agents page and hit chat. From the terminal:

Terminal window
muaz chat --agent coding

Run it from inside the repository you want it to work on — the file tools are confined to the agent’s workspace_root (the directory muaz started in by default).

  • A live task list. For anything multi-step the agent calls write_tasks and keeps exactly one item in progress. In the UI this renders as a collapsible Tasks panel; in the REPL it prints as a checklist. You always see the plan.
  • Diff-preview approvals. File edits (edit_file / write_file / patch_file) are ask by default — you approve a colored diff of the exact change, not opaque JSON. Read commands (read_file, search, safe shell) run freely.
  • Cross-session memory. Tell it a durable fact (“this repo uses pnpm and vitest”) and it records it with the memory tool. Next session, that note is already in its system prompt. Edit the notebook yourself on the Agents page.
  • Delegation. For a self-contained sub-task it can call spawn_agent to hand off to another agent and fold the result back in.
  1. Ask for a change: “add a --json flag to the list command and cover it with a test.”
  2. The agent writes a task list, searches for the command definition, and reads just the relevant slice.
  3. It proposes an edit — you get a diff to Approve once / Approve for session / Deny with a reason.
  4. It runs the nearest test (ask on shell, unless you allow-listed the test runner), reports what it ran, and marks the task done.

Give the agent more autonomy by moving specific tools to auto, or scope a session-wide allowance from the approval prompt. See Tools & approval. For a hard egress lock on an agent, set network: none (strips web tools, refuses HTTP MCP) — see Security.