Act
Turn-by-turn execution.
The agent works turn by turn, reading files, running commands and editing code. Every file change is shown as a diff in the conversation before it lands.
Open source. Built in Rust. MIT licensed.
The coding harness you shape.
Every tool the agent calls, every prompt it follows, every mode it runs in — all editable from the Settings panel. Bring your own model.
Most agentic IDEs ship a sealed harness — fixed tools, fixed prompts, a fixed loop. Sinew exposes all of it in Settings.
Switch any tool off and the model never learns it existed. Edit the description it reads for any tool and your version replaces the default. Rewrite the system prompt for any of the three modes. All from the Settings panel, without forking the app.
Drop an AGENTS.md at the root and Sinew injects it into every request. Same for DESIGN.md, same for any skill under .agents/skills/. The harness is shaped by you, not by us.
The agent runs in one of three modes. Each has its own model and its own system prompt.
Turn-by-turn execution.
The agent works turn by turn, reading files, running commands and editing code. Every file change is shown as a diff in the conversation before it lands.
A Q&A loop, never writes.
The agent explores the codebase and asks you one question at a time. It only writes the plan when you click Send and stop questions.
Runs until the goal is met.
The agent keeps running turn after turn, sometimes for hours, until the goal is reached. Context auto-compacts when the window fills so it does not lose track.
A common setup is a thinking model for Plan, a fast model for Goal, and a balanced one for Act.
OAuth on Anthropic, OpenAI, Google and Moonshot — Sinew uses the subscription you already pay for. OpenRouter takes an API key for pay-per-call across hundreds of models.
Claude Code only supports Anthropic models, Codex only OpenAI. Sinew lets you connect several providers in parallel — a different model for each mode or each sub-agent.
Inside the Settings panel: toggle any tool, rewrite the description the model reads, or swap the system prompt per mode — for the main agent and for swarm teammates.
Disable any tool and the model never learns it existed.
Edit the description the model reads for each tool. Add conventions, pitfalls, or anything else worth knowing.
Each mode (Act, Plan, Goal) has its own system prompt in Settings.
Drop an AGENTS.md in the workspace and Sinew injects it into the system prompt.
Two independent harnesses: one for the main agent, one for swarm teammates.
One click to roll any of it back to the shipped defaults.
Each one designed to give the model a focused, structured output. Any tool can be switched off or have its description rewritten.
A focused set, each with a structured output the agent can rely on. Same harness rules: any tool can be switched off or have its description rewritten.
bash runs a one-shot command. bash_input drives an interactive session, so the agent can use vim, REPLs, or a dev server.
read requires a limit on every call. The agent has to declare how many lines it wants.
Glob and Grep are backed by ripgrep, with output_mode, unique and exclude_pattern.
apply_patch is the only tool that writes to the filesystem. Codex-style unified diffs, add/edit/delete/rename across files in a single atomic call. The UI renders the diff as it lands.
WebSearch runs through LinkUp (synthesized answer with cited sources) or Exa (classic list). WebFetch converts any URL into clean Markdown.
Swappable providerCreateImage uses GPT Image 2 or Nano Banana 2 — useful for mocking a UI or sketching a diagram in-conversation.
Swappable providerThe ToDoList state is reinjected at every turn — the latest version is always in front of the model. Important on long Goal runs.
Question sends single- or multi-choice prompts in the chat. Used when guessing is more expensive than asking.
Something other agentic harnesses do not currently expose to the model.
On any turn, the agent can call clean_context to discard tool results that led nowhere — a Glob returning hundreds of paths, a read of the wrong file, a search that came up empty. Each removed result is replaced by a short placeholder, so the agent knows it threw something away.
Only the current turn is affected, which keeps the prompt cache intact: subsequent calls still hit the cached prefix at the cheaper rate.
Over long Goal runs, the difference adds up. Without it, dead exploration accumulates. With it, the agent keeps a clean working set without starting over.
Sinew can run a team of 2 to 8 agents on the same workspace, organized as peers rather than as a lead and sub-agents.
Each teammate's system reminder contains the full team state every turn — who is running, who is idle, the task board, the most recent edits.
SendMessage posts a DM or a broadcast that lands at the start of the recipient's next turn.
A task can be marked as blockedBy another. The board unblocks it automatically when its prerequisite completes.
Each teammate can inherit a pre-configured sub-agent profile, with its own prompt and its own model.
All lazy-loaded — nothing weighs on the prompt until the agent decides to use it.
Reusable Markdown instructions the agent can pull in when relevant.
A skill is a folder containing a SKILL.md file, placed in .agents/skills/ (with the project) or ~/.agents/skills/ (yours). The format matches the Claude Agent Skills convention.
Any Model Context Protocol server exposes its tools to the agent.
Sinew presents the model with a compact catalog of available MCP tools. The full schema is loaded only when the agent calls LoadMcpTool, which keeps the prompt small with several servers connected.
Pre-configured agents with their own model and system prompt.
Each sub-agent is defined in Settings (name, description, prompt, model). The main agent gets one subagent_<id> tool per enabled sub-agent. The same definitions can also be assigned to teammates in a swarm.
Long conversations are handled by automatic compaction when the context fills, and per-turn checkpoints you can rewind to.
When the context window fills, Sinew summarizes the older parts of the conversation so the agent can keep going. The same compaction can be triggered manually, with an optional steering note (e.g. keep what concerns the auth refactor) when you want the summary focused on a particular thread.
Each turn also writes a checkpoint. Click any past user message in the chat to preview every file the agent has touched since, then choose whether to revert those files or keep them while trimming only the chat history.
Sinew runs locally and is released under the MIT license. Written in Rust.
The whole app runs on your machine and talks to your model provider directly. The project does not have a paid tier hidden behind the current one.
The code is on GitHub, and the repo is the one I work in day to day. Issues and pull requests are welcome.
Sinew is built by one person, in public. Reachable on X.
I build Sinew solo. It is local-first and fairly opinionated. Follow along while it grows.
Bug reports, ideas, and DMs are welcome. Most of the roadmap lives on my timeline.