Start with the idea.
Pick a repository and describe the work. Your agent gets the project context and a worktree of its own, ready to get going.
A focused place to startMeet Siwar, the local workspace that runs your Claude Code and Codex agents
in parallel — each task in its own git worktree, every result in one merge queue you control.
YOUR CODE. YOUR TOOLS. A LITTLE MORE IN SYNC.
Finished work waits as ready. Nothing runs on its own, and nothing is ever pushed for you.
The agent commits everything and hands it in. Its part ends here.
siwar submit --branch featIt waits in Ready to merge, across every project you register.
siwar statusRead what it brings: the message, the files, the diff, the checks.
siwar show 14Merge locally, send it back with a reason, or close it.
siwar merge 14❯ siwar merge 14 --into release
#14 feat/github-auth → release (no-ff)
✓ merged locally · 3 files · +184 −12
Nothing was pushed. Publishing is up to you.
Merged Into the local branch you pick. The target from .siwar.yml is the default.
Pick a repository and describe the work. Your agent gets the project context and a worktree of its own, ready to get going.
A focused place to startRun independent tasks side by side. Each agent builds in its own branch, so one experiment never gets in another’s way.
Built for parallel workFollow the work, answer a question, or change direction. Messages, tool calls, and decisions stay together in one thread.
Keep the context closeCan you handle the edge cases, too?
On it. I’ll cover empty states and retries in the same worktree.
Finished work lands in your review queue. Inspect the changes and merge into the local branch you choose. Publishing stays in your hands.
You decide what shipsEvery conversation runs in a session host that keeps the agent, Claude Code or Codex, open. Permissions, questions and plans arrive as cards, and your answer goes straight back to the running turn.
Talk to your siwar threads from your phone or your team chat, in Slack or Telegram. Start a thread, follow its work live in one updating message, and get its answer when the turn is done.
/notify on and you hear when an agent waits for you or work is ready to merge.Only people you pair can talk to siwar. Messages are kept on disk until handled, so nothing is lost if siwar restarts.
The siwar plugin loads into every session. If it does not load, the agent does not run.
Merges stay local. Publishing is yours.
Conflicts go back to the author with the reason.
Merging and pushing the target are blocked for agents.
A submission that carries one is refused.
Give an agent instructions and a project, then choose what starts it. Every run is a conversation you can open, and its work lands in the same queue.
A workflow is a YAML file in your repo. Siwar keeps the order, not the agent: every step runs in the run's own worktree, and it stops where you asked to look.
siwar workflows run, or let a trigger start it.A server address or a password goes into Settings, not into a message. Values are encrypted, the key lives in your Keychain, and siwar blanks them in everything it keeps and shows.
Guards against accidents, not a determined agent. What is in its environment, it can read.
The agents get these as environment variables. Shared ones go to every conversation; an environment's (prod, staging…) only to a conversation that chooses it by the message box, over a shared one of the same name.
203.0.113.24
Read from the target branch, so a submission can never change the rules it is judged by.
.siwar.ymltarget: main # default branch to merge into
merge: no-ff # or squash
agent:
model: sonnet
effort: high
allow: [Read, Grep, "Bash(npm test)"]
budget: 5
mcp:
playwright:
command: npx
args: ["@playwright/mcp@latest"]
agents:
reviewer:
description: Reviews a diff
tools: [Read, Grep]siwar task "<what to do>"Start an agent in a new worktreesiwar submit --branch b -m "…"Hand finished work insiwar statusWhat is ready to mergesiwar show 14What a submission bringssiwar merge 14 --into releaseMerge locally, never pushsiwar return 14 --reason "…"Send it back to its authorsiwar uiThe terminal dashboardsiwar serveThe browser dashboardAsk a question with no project, read a repo from its main checkout, or give the work its own branch and worktree. Start a branch later and the same conversation moves there.
siwar ui in the terminal, siwar serve in the browser, or the desktop app with both in one window. All three read the same queue.
siwar:submit hands work in, /siwar:status shows the queue, and a guard hook blocks merging and pushing the target.
A session open in your own terminal is reached by relay, never by a second writer. Its turns show live and read-only in the dashboard.
Every change is appended and never edited. SQLite by default on your machine, or a shared PostgreSQL server for a team.
Register every repo you work in. Projects that opt in are gated by the queue; the rest are listed, never blocked.
How Siwar runs coding agents in parallel, and what stays in your hands.
Siwar is a local workspace that orchestrates AI coding agents. You describe a task, an agent such as Claude Code or Codex works on it in its own git worktree, and the finished branch lands in a merge queue where you review it and decide what merges.
Every task gets its own git worktree and branch, created from the target branch you choose. Agents never share a working directory, so one experiment cannot overwrite another. You follow each conversation from one dashboard and merge the results one by one.
No. Agents hand their work in with siwar submit; the submission waits as ready until you merge it locally, send it back with a reason, or close it. A guard blocks pushes and merges into the target from inside a task, and Siwar never edits code itself.
Claude Code and Codex, signed in with your own Claude or Codex account. Claude Code comes with Siwar, built into the desktop app and installed by npm install; for Codex, install the Codex CLI. Siwar also ships as a Claude Code plugin: siwar:submit hands work in, /siwar:status shows the queue and a guard hook protects the target branch. Sessions you start in your own terminal show up live and read-only in the dashboard.
Siwar itself runs locally next to your repositories. Its event log is a SQLite file on your machine by default, or a PostgreSQL server you host when a team shares one queue. The agents still talk to their own model provider, exactly as they do without Siwar.
Yes. Automations start an agent on a schedule, on a GitHub event such as a failed check run or a labeled issue, or from a webhook. Every run is a normal conversation you can open, and its work lands in the same merge queue.
On a Mac with Apple silicon, download the Siwar 0.3.24 desktop app from this page; it has the terminal and browser views in one window and Claude Code built in. You need git and a Claude or Codex account; for Codex, also install the Codex CLI and Node.js. To run it from source on macOS or Linux, you need Node.js 22.18 or newer, git, and a Claude or Codex account: install Siwar from your team's source checkout (Claude Code comes with npm install; for Codex, install the Codex CLI), link the CLI, then run siwar serve in a project to open the dashboard in your browser, or siwar ui for the terminal.
Your workspace runs on your machine.
Each task gets its own Git worktree.
You approve merges. You handle pushes.
Bring your agents together. Build what’s next.