Agents & CLI · For developers

The agent keeps its own task. You fill in nothing afterwards.

Workban talks to agents through a CLI in the terminal. workban init puts a rule, a skill and two hooks into the repository. From then on, Claude Code opens its task before the first change, moves it to testing and closes it with a comment.

claude · ~/web-app
$ workban task create "Fix the login redirect" --start --agent claude-code --json  └ #42 created, In Progress$ workban task move 42 testing --json$ workban task done 42 --comment "Redirect fixed, PR linked" --json
  • 25 commands
  • 6 platforms, no Node
  • Claude Code and Codex
  • REST API, no MCP

Workflow

Four commands from the first line to done.

The rule in the repository tells the agent when to run which command. With --json, every command returns exactly one JSON object, so the agent can read the answer reliably.

  1. 01

    Create and start

    Before the agent changes a file. The CLI reads the branch from Git. If the branch already has an open task, the agent carries on with that one instead of creating a second.

    workban task create "Fix the login redirect" --start --agent claude-code --json

  2. 02

    Test

    As soon as tests, lint or CI run. Until the task is back in progress, the gate blocks every change.

    workban task move 42 testing --json

  3. 03

    Wait

    When the task waits for a person, an approval or an answer, the clock stands still. The comment says what for.

    workban task move 42 on_hold --comment "Waiting for design approval" --json

  4. 04

    Close

    After the commit, with the link to the pull request in the comment. On the way, the CLI measures the session's token usage.

    workban task done 42 --comment "Redirect fixed, PR linked" --json

Or the other way round: you create, the agent takes over.

Create the task on the board and tell your agent “do #28”. It reads the description, comments and attachments and starts the task before it begins.

workban task show 28 --json --download /tmp/workban-28

workban init

One command sets up the repository.

Once per repository. The files live in the repository, so they apply to everyone working in it, person or agent.

.workban.toml
Which Workban project this repository is.
.claude/rules/workban.md
The binding workflow. Claude Code loads it at the start of every session.
.claude/skills/workban/SKILL.md
The CLI's commands. The agent loads them when it needs them.
CLAUDE.md, AGENTS.md
A pointer for Claude Code, the full workflow for Codex and other agents.
.claude/settings.json
Two hooks: the gate before every change and an overview of running tasks and backlog at the start.

init adds to existing files instead of overwriting them. After a CLI update, workban init --update brings everything up to date without asking.

Gate

No task, no change.

In Claude Code, a hook in the repository blocks every file change until the agent has started a task of its own. So even the small fix in between shows up on the board.

  • Applies to Edit, Write and Bash, and to PowerShell on Windows
  • For Bash, the gate reads the command itself: redirects into files, sed -i, rm, package installs and scripts that write
  • It counts per session: a second agent in the same repository needs a task of its own
  • Anything outside the repository, such as /tmp, stays free
  • If Workban cannot be reached or nobody is logged in, the gate lets changes through. Workban never holds up work

Edit README.md

Workban: No running task. Start the task first, then make the change.

Agents

Furthest with Claude Code, open to any agent with a shell.

All Workban needs from an agent is a terminal and a text instruction. How much happens on its own depends on what the agent can do.

Claude Code
Rule, skill and hooks. The gate applies, and the CLI measures tokens from the session file.
Codex
The full workflow sits in AGENTS.md. Codex has no hooks, so there is no gate. The CLI measures tokens from the rollout log.
Other agents
Any agent with a shell can use the CLI. It reports its own usage with --tokens when it closes a task.
People
The same commands in the terminal, or the board in the browser.

CLI

One program, built for machines.

The CLI is a single program on your path, without Node and without a background process. It talks to the Workban API and nothing else.

  • macOS, Linux and Windows, each for x64 and ARM64
  • Installed with one command, logged in with a personal token, once per machine
  • --json on every command, stable exit codes, no prompts without a terminal
  • workban update fetches the new version, workban doctor checks the setup
  • No telemetry
macOS and Linux
curl -fsSL https://workban.lunaarc.de/cli/install.sh | sh
Windows (PowerShell)
irm https://workban.lunaarc.de/cli/install.ps1 | iex

Commands

workban task
create, start, move, done, comment, attach, show, list, current, claim, edit, delete
workban project
list, create
workban board
The board, compact, in the terminal
workban auth
login, status, logout
workban init
Connect a repository, with --update bring it up to the CLI's version
workban hook
gate and session, the two hooks for Claude Code
workban update, doctor
Update and check the setup

No MCP

Why Workban has no MCP server.

A deliberate decision: a REST API and a CLI instead of an MCP server.

One path for all
Claude Code, Codex, scripts, dashboards and people in the terminal use the same API. Nothing works only through an agent channel.
No process per session
An MCP server runs per session, with its own configuration and its own failure points. The CLI is a program on your path.
Testable with curl
Every function can be checked without an agent, and errors can be reproduced.
Independent of the agent
A new agent only needs a shell and a text instruction.
Less context
An MCP server loads every tool into the agent's context. The skill loads only when it is needed.

Get started

Try it with your next task.

Workban is free. Your workspace is ready in a minute, and the first task appears as soon as your agent gets going. The app itself speaks German for now.