Skip to content

About

A local-first Kanban plugin for Orca with agent sessions, column prompts, and Jira, Linear, and GitHub integrations.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

13 Commits

Folders and files

Repository files navigation

Orca Kanban

Your tickets. Your agents. One board.

A local-first Kanban plugin for Orca, with agent sessions, column prompts, and Jira, Linear, and GitHub integrations.

Get started · How it works · Screenshots · Development

Orca Kanban in dark mode, showing sample tickets across five columns

A board that works with your agents

  • Make work visible. Create tickets, customize columns, drag cards between stages, and switch between board and list views.
  • Keep sessions attached to tickets. Link existing Orca terminals or start an agent in a dedicated worktree. Open a linked session without hunting through tabs.
  • Give every stage its instructions. Send a column's prompt when a ticket enters it, on a cron schedule, when its pull request changes, or manually.
  • Bring your issue tracker. Import Jira boards, Linear teams, and GitHub Projects or repositories. Work with sprints, cycles, and iterations; review pending changes before pushing them upstream.
  • Keep your board local. A standalone Rust service stores board data in SQLite and serves the UI inside an Orca browser tab. No separate hosted board account is required.

Early release · Validated on macOS Apple Silicon with Orca 1.4.209 and 1.4.223. Orca's plugin API is experimental. Other Orca versions and operating systems are not yet verified. This is an independent community plugin, not an official Orca product.

Get started

Install from a Git URL — macOS Apple Silicon

No Node.js, Rust, or local compilation is required for this distribution. In Orca → Settings → Plugins → Install plugin → Git URL, paste:

https://github.com/clioo/orca-kanban.git#macos-arm64-v0.2.5

Click Install, review the permissions, then enable the plugin. Press Command + J and run Open Work board.

The #macos-arm64-v0.2.5 tag contains the compiled plugin at the repository root. The default main branch contains source code and is not directly installable. Keep the #tag suffix: Orca requires a pinned tag or commit. This package is for M-series Macs only, not Intel Macs, Windows, or Linux. Each laptop keeps its own local board; installing does not transfer another machine's tickets, credentials, or agent sessions.

Build from source — requirements

  • Orca installed at /Applications/Orca.app, with plugins enabled.
  • Node.js 24 and pnpm 11.19.0 on your PATH.
  • A current stable Rust toolchain, including Cargo, rustfmt, and Clippy.
  • Xcode Command Line Tools for native compilation and codesign.
  • An installed, configured agent CLI if you want to launch agent sessions.

Build and install

git clone https://github.com/clioo/orca-kanban.git
cd orca-kanban
pnpm --dir web install --frozen-lockfile
./scripts/package-plugin.sh
  1. Open Orca → Settings → Plugins → Install plugin.
  2. Select the generated dist/clioo.work-board folder.
  3. Review the requested permissions and enable the plugin.
  4. Press Command + J, search for Open Work board, and run it.

The board opens in an Orca browser tab. To update, build again and install the same folder. The plugin ID remains clioo.work-board so existing installations keep their data.

Try it safely

  1. Create a ticket in My work and drag it between columns.
  2. Reload the tab to check that its position persists.
  3. Open the ticket and link an existing session, or create a new one.
  4. Open a column's Configure prompt… menu and write a short instruction.
  5. Use Preview to inspect the message, then Send now to deliver it.

Agent launches can consume your provider quota. Creating an issue on an imported board writes to the real provider; Push sends pending changes upstream. Start with local tickets if you are just exploring.

How it works

Orca plugin worker
  ├── starts the local service
  ├── forwards agent events
  └── opens the board in an Orca browser tab
          │
          ▼
React UI ── HTTP RPC ── Rust service ── SQLite
                           │
                           ├── Orca CLI: worktrees, terminals, agent state
                           └── Jira / Linear / GitHub: import, sync, push

The service listens on 127.0.0.1 and stores its data under:

<Orca user data>/plugins-data/clioo.work-board/

Column schedules and source sync can continue between board visits. The service stops when the plugin is disabled or removed; updates attempt to reuse its port. It does not require another desktop application to run.

Column prompts

Use ticket and column placeholders to keep instructions reusable:

Implement {ticket.key}: {ticket.title}.

Keep changes focused, add regression tests, and report what you verified.

When ready for review, run:
{board.cli} ticket move --ticket {ticket.key} --column "{column.next}"

{board.cli} expands to the shell-quoted path of the board's command-line launcher. Agents can inspect tickets, move them, and call the service's RPC:

work-board ticket show ATL-4
work-board ticket move --ticket ATL-4 --column "Review"
work-board board
work-board rpc work.sources

Use the generated launcher's full path outside a column prompt; work-board is not automatically added to your shell's PATH.

Agent sessions

Agents work in (on an imported board's notice, or Sync options → Agents work in) is one picker with your Orca repositories and your Orca folder projects, such as a pre-sales folder project with one folder workspace per ticket:

  • In a repository, a ticket's New session gets its own git worktree.
  • In a folder project, a ticket works in its own folder workspace: one already named for its key (MODPRESALE-1149, MODPRESALE-1149-…), else a new one named <key> <title>.
  • A workspace chosen for the ticket (Links → Workspace) wins; one that is archived or removed produces an error rather than a launch elsewhere.

Folder projects and folder workspaces have no orca CLI command; the plugin reaches them through Orca's own runtime client (bin/orca-rpc.cjs, run by Orca's bundled Node). Without it, folder projects that already have a folder workspace still appear and existing ones are used, but new ones are not made.

Upgrading from 0.2.0 adds a field to the local database; first the service makes an owner-readable backup, work-board-before-v7-<id>.db, in its data directory. 0.2.0 cannot open the upgraded database: restore that backup before downgrading.

Launches use Orca's agent settings. A stopped session resumes its own conversation, never the folder's latest (folder workspaces share one folder, and a conversation can last days): Claude and Pi sessions the board starts carry a board-chosen id, and for any linked session the board records the conversation Orca reports for its terminal while it runs (or the one Orca kept when it put the workspace to sleep). Resume then uses Claude --resume <id>, Pi --session <file>, Codex resume <id> or OpenCode --session <id>; only a session with nothing recorded falls back to the folder's latest conversation. When Orca cannot be reached, session state is reported as unverifiable rather than assumed exited.

Claude and Pi sessions started or resumed from a ticket are named after it (--name "<key> <title>", e.g. MODPRESALE-1149 incomeDistribution field not supported…), so they are easy to find in the agent's session list. Codex and OpenCode have no session-name option and keep their own titles.

Sources

Connect providers in Sources, import a board, and choose the Orca project its agents should work in. Supported flows include source synchronization, pending local moves, conflict resolution, and creating issues from a column. Some integrations also require external tools such as an authenticated gh CLI. Never expose the local service through a public tunnel or reverse proxy.

Screenshots

These are captures of the running UI with synthetic tickets and fixture agent states—not customer data, live provider accounts, or real model runs.

Column prompts

Column prompt editor with message placeholders and delivery options

Ticket details and linked sessions

Ticket detail panel with a linked sample agent session

Light mode

The same sample board in light mode

Development

Path Purpose
plugin/ Orca manifest and worker
service/ Rust service, SQLite persistence, provider integrations, CLI
web/ React UI and typed RPC bridge
tests/fixtures/ Fake Orca, agents, and provider servers
tests/e2e/ Acceptance against a separate, hidden Orca instance
scripts/ Build, test, and screenshot tools
# Install the browser used by acceptance and screenshot capture.
pnpm --dir web exec playwright-core install chromium

# Formatting, linting, Rust/web/fixture tests, and plugin packaging.
./scripts/test-all.sh --no-orca

# Also run acceptance against the installed Orca, in an isolated profile.
./scripts/test-all.sh

# Verify the public Git distribution through Orca's real installer.
WORK_BOARD_INSTALL_GIT=https://github.com/clioo/orca-kanban.git#macos-arm64-v0.2.5 \
  node tests/e2e/accept-orca.mjs

# Regenerate screenshots from synthetic data; build the plugin first.
node scripts/capture-screenshots.mjs

The automated suites cover the engine, HTTP service and CLI, persistence, provider workflows, UI interactions, migration, and plugin lifecycle. Real-Orca acceptance uses fixture agents and local provider servers: it does not run paid model inference or establish compatibility with every live provider account. The full macOS acceptance also requires Swift to monitor OS focus.

The screenshot script uses headless Chromium, a temporary home directory, and the fixture CLI. It verifies process cleanup before deleting its temporary data.

Troubleshooting

Open Work board shows the board in the worktree or folder workspace in front, reusing that worktree's board tab; with nothing selected in Orca it reveals an existing board tab.

The tab cannot reach the server: run Open Work board again. Use the http://127.0.0.1:<port> address opened by the plugin, not HTTPS or an old bookmark. Service state and logs are in the plugin data directory.

Agents cannot start: make sure the board has an Orca project selected and the configured agent command works in that project's terminal.

A provider rejects a request: check its connection in Sources and the permissions on the account or token. Do not include tokens, private tickets, or raw provider responses in public issues.

License

MIT. See LICENSE and THIRD_PARTY_NOTICES.md for required copyright and third-party attribution.

About

A local-first Kanban plugin for Orca with agent sessions, column prompts, and Jira, Linear, and GitHub integrations.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages