How Syntic Code works
Syntic Code is an agent that works inside your project. You describe an outcome, and it reads code, edits files and runs commands until the job is done or it needs you. This page explains what happens between pressing Enter and getting an answer, so you can predict how it behaves and steer it well.
The loop behind every message
Each message you send starts a loop. The model reads the conversation, decides on a next step, and either answers you or calls a tool. Syntic Code runs the tool on your machine, hands the result back to the model, and the model decides again. That repeats until the model has nothing left to do.
A typical bug fix might go like this:
- Gather.
Grepfor the error text,Readthe files involved, checkgit status. - Change.
Editthe faulty function,Writea new test. - Verify. Run the test suite with
Bash, read the failures, adjust. - Report. Summarize what changed and anything left open.
Nothing forces that order. A question about the code may only need step 1; a refactor may loop through steps 2 and 3 many times. You can stop a running turn at any point with Esc, then add a correction and send again.
Models
The thinking is done by a Syntic model served from the Syntic platform. The list of models you can pick from comes from the platform and depends on your plan; /model shows it. Some models reason longer before acting; /effort changes how much reasoning each step gets. See Models & reasoning.
Helper jobs, such as naming a session or checking whether a goal is met, run on a smaller, cheaper model so they do not slow down the main conversation.
Tools
Tools are what turn a chat into an agent. The built-in set covers:
| Kind | Tools | Used to |
|---|---|---|
| Reading | Read, Grep, Glob, LS | Find and open files. |
| Editing | Edit, MultiEdit, Write, NotebookEdit | Change files and notebooks. |
| Running | Bash, PowerShell, Monitor | Run builds, tests, git and any other command. |
| Web | WebFetch, WebSearch | Read documentation and search online. |
| Delegating | Agent, Workflow, SendMessage | Hand work to subagents and coordinate them. |
| Planning | TodoWrite, task tools | Keep a visible checklist of the job. |
MCP servers, skills and plugins add more. The tools reference lists every built-in tool.
What the agent can see
When you start syntic in a folder, the agent works in that folder and below it. It can:
- read and search any file there (plus folders you add with
--add-diror/add-dir); - run commands in your shell, with your environment and your tools on the
PATH; - see git state: branch, changes, recent commits;
- load your instruction files:
SYNTIC.md, rules files and your personal~/.syntic/SYNTIC.md(Memory); - reach outside systems you connect through MCP.
It does not see your whole disk up front. It looks at what the task needs, the same way a new teammate would.
Where it runs
The CLI is the main way to use Syntic Code today:
| Mode | Start it with | Good for |
|---|---|---|
| Interactive | syntic | Day-to-day work in the terminal interface. |
| One-shot | syntic -p "task" | Scripts, git hooks and CI (Scripting and CI). |
| Background | syntic --bg "task" | Long jobs that keep going after you close the terminal (Background sessions). |
| Worktree | syntic -w <name> | Several sessions on one repository without stepping on each other (Worktrees). |
Other surfaces are listed on Platforms and integrations.
Sessions
Every conversation is saved as a session on your computer, so you can come back to it:
syntic -ccontinues the latest session in this folder.syntic --resume(or/resume) lets you pick an older one./branchcopies the conversation into a new session, so you can try another direction without losing the first.
Sessions belong to the folder you started in. Two terminals in the same folder are two separate sessions. See Sessions and resume.
The context window
Everything the model knows during a session lives in its context window: your messages, its replies, file contents it read, command output, instruction files and tool descriptions. The window has a fixed size. When it fills up, Syntic Code compacts the conversation: older parts are replaced by a summary so the work can continue.
/context shows what is using the space. Long sessions full of unrelated topics fill the window faster and get worse answers, so start a new session (/clear) when you switch tasks. Details are on The context window.
Safety nets
Permissions
Before a tool changes something or runs a command, Syntic Code checks your permission rules. Anything not already allowed is shown to you as a prompt: allow once, allow for the rest of the session, or refuse. Press Shift+Tab to cycle the permission mode: ask as usual, accept file edits without asking, plan only (read and propose, change nothing), or auto mode, where a reviewer approves routine actions and still stops risky ones. See Permission modes.
A folder you open for the first time is not trusted until you say so. Until then, the project’s own settings, hooks and MCP servers stay off (Folder trust).
Read before edit
The agent must read a file in the current session before it may change it, and it refuses to overwrite a file that changed on disk after it last read it. This stops it from clobbering edits you made in your editor while it was working.
Checkpoints
Every file edit is backed up before it happens. With an empty prompt, press Esc twice (or run /rewind) to go back to an earlier message and restore the conversation, the files, or both. See Checkpointing.
Checkpoints cover edits made through the editing tools. Changes made by shell commands (a database migration, a deploy, a git push) cannot be undone this way, which is why those commands ask first.
Working well with it
- Talk to it like a colleague. Plain sentences work. Say what you want and how you will know it is done: “the import command gets a
--dry-runflag, and the tests pass”. - Give it a way to check. A test command, a build, a screenshot to compare against. Work it can verify is work it gets right more often.
- Correct early. If it heads the wrong way, press
Escand say so. Interrupting costs nothing; a long detour costs time and context. - Ask it about itself. “How do I add an MCP server?” or “what does
/goaldo?” are fair questions. A built-in guide agent answers questions about Syntic Code. - Delegate, then review. For anything big, ask for a plan first (
Shift+Tabinto plan mode, or/plan), agree on it, then let it work.
More habits are on Best practices.