Saltar al contenido
← Volver a proyectos

Ouijit

Discover and manage your local development projects

ouijit



Ouijit is a task and terminal manager for running coding agents in parallel. Each task gets its own git worktree and terminal. Lifecycle hooks launch your agent CLI with the right context, and a session-aware CLI lets agents drive the board back. Live status, notifications, diff review, and per-terminal sandboxing are built in.

Download the latest release:

Free and open source under AGPL-3.0. No account, no sign-in, no telemetry.

Website · Docs · FAQ · All releases

Kanban board with agent terminals attached to task cards

#Tasks and worktrees

Tasks live on a kanban board. Dragging a card between To Do, In Progress, In Review, and Done fires the matching lifecycle hook. Starting a task creates an isolated git worktree: a copy-on-write clone that arrives instantly with node_modules and other gitignored files intact, or a clean git worktree checkout if you prefer. Chain tasks off a parent branch, act on several cards at once, set a per-task merge target, and attach images or files to a task's prompt.

#Terminals and panels

Each terminal is a card in a stack. Panels attach as tabs: a runner for the dev server or any script, a web preview, and markdown files with Mermaid diagrams, so a plan opens beside the agent working from it. Shells outside any task get their own strip on the board. Tag sessions to filter them.

Agent terminal beside a rendered markdown plan Agent terminal beside a web preview of the app it is building

#Working with agents

Ouijit shadows the agent binaries on PATH to inject lifecycle hooks and a reference for the ouijit CLI into each session. Agents can create tasks, advance the board, and open panels with no setup. The board shows each agent's live status, and a sound or OS notification fires when a turn ends.

#Command palette

⌘K (Ctrl+K on Linux) jumps between terminals, projects, tasks, and pull requests, ranked by how often you return to them. Opening an unstarted task creates its worktree on the way.

Command palette over the kanban board

#Diffs and pull requests

Every task terminal includes a diff of its worktree against its merge target, uncommitted changes, or any base you pick, with word-level highlighting. Leave a note on a diff line and it goes to the agent working in that worktree, re-anchoring as the code moves. An experimental GitHub surface adds a pull request inbox, review comments staged locally until you send them, and merging. It drives the gh CLI, so gh auth login is the only setup.

Worktree diff beside the agent terminal, with a note being written on a changed line

#Lenses

A lens is a named instruction you keep with the project, like "lead with what could break in production". An agent applies it to one change and answers with the parts of that change: a titled group, a line on why those files belong together, and the hunks that make it up. A file that spans two parts appears in both, and whatever no part claims is still shown under a heading at the end.

A worktree diff regrouped into named parts, with one file appearing in two of them

#Sandboxing

Run any terminal sandboxed: in a Lima VM that mounts only the task's worktree, in place under Seatbelt/Landlock via nono (experimental), or under a launcher of your own (experimental).

#Session resume

Quitting saves the session. The next launch offers to bring its terminals back in their worktrees, panels included.

Resume banner listing the previous session's terminals

#Themes

Choose system, light, dark, or one of five presets, or define your own theme as design-token overrides. Switch in settings or with ouijit theme use.

The same board in dark, Dracula, Sepia, and light themes

#Hooks, scripts, and settings

Five lifecycle hooks (start, continue, run, review, done) and per-project scripts define how tasks launch and what runs alongside them.

Project settings with hooks and scripts

Also in the box: a multi-project home view, a configurable projects folder, git init for folders that need it, an editor launcher, health checks for the agent CLIs, first-run onboarding, terminal font settings, auto-update on macOS with release notes, and a local REST API behind the CLI. Everything is stored locally in SQLite.

#Supported harnesses

To request support for another harness, open an issue.

#CLI

Every terminal Ouijit opens has the ouijit command on PATH, and the supported harnesses learn it automatically. So you shape the app by asking your agent: it can file follow-up tasks, move its own card, set up hooks, stage review comments, switch themes, or open panels beside itself. The CLI is what makes those requests work:

# "file a task for the flaky login test"
ouijit task create "Fix flaky login test"
# "move this task to review"
ouijit task set-status 5 in_review
# "run claude on every task I start"
ouijit hook set start --command 'claude "$OUIJIT_TASK_DESCRIPTION"'
# "leave a review comment on PR 116"
ouijit pr draft add 116 --file src/api.ts --line 88 --body "throws when the token is missing"
# "switch to dracula"
ouijit theme use dracula
# "open your plan next to you"
ouijit markdown add ./plan.md
# "show me the app"
ouijit preview add http://localhost:3000

It works from your shell too, with JSON output. Full command list in the docs.

#Setup

Ouijit runs on macOS 13+ (Apple Silicon or Intel) and Linux x64, and needs git 2.20+ on PATH. The downloads above are self-contained.

Building from source also needs Node.js 20+ (the repo pins 22 in .nvmrc) and C/C++ build tools for the native modules (better-sqlite3, node-pty, koffi):

  • macOS: xcode-select --install
  • Linux: sudo apt install build-essential python3 (Debian/Ubuntu)
git clone https://github.com/ouijit/ouijit.git
cd ouijit
npm install
npm start

Nueva versión disponible.