Stop babysitting agents.

Tired of managing agents in terminal tabs? Struggling to keep track of which one needs attention and which one's stalled? Try Shelbi, an open source, personal agent orchestrator for your desktop and terminal.

open source ยท one binary ยท multi-machine

my-project
OrchestratorโŒ˜O
IssuesโŒ˜I
ChangelogโŒ˜L
Workspaces
hub
alphaIdle
bravoIdle
charlieDeveloperโŒ˜1
deltaIdle
devbox
echoIdle
foxtrotIdle
golfDeveloperโŒ˜2
Zen mode off
                                                                                                                                             
                                                                                                                                             
                                                                                                                                             
                                                                                                                                             
                                                                                                                                             
 โฏ Morning. Where did the API cleanup land yesterday?                                                                                        
                                                                                                                                             
  Both tasks cleared review overnight โ€” the rate-limit and the search                                                                        
  pagination work merged to main. The board's clear.                                                                                         
                                                                                                                                             
 โฏ Good. Let's design the analytics dashboard we sketched last week.                                                                         
                                                                                                                                             
  Sure. Starting from the mock: a metrics overview across the top, charts                                                                    
  beneath, and a date-range filter driving the whole page. What's the headline                                                               
  metric?                                                                                                                                    
                                                                                                                                             
 โฏ Signups, active users, and revenue โ€” as big number tiles with week-over-week deltas.                                                      
                                                                                                                                             
  Got it. I'll have the tiles read from one /api/metrics endpoint so a single                                                                
  request backs the whole header row.                                                                                                        
                                                                                                                                             
 โฏ And the charts underneath?                                                                                                                
                                                                                                                                             
  A line chart for the trend and a bar chart for the plan breakdown. Both                                                                    
  share the date range, so changing it re-queries once and both redraw.                                                                      
                                                                                                                                             
 โฏ Add a way to pull the raw numbers out too โ€” finance keeps asking.                                                                         
                                                                                                                                             
  A CSV export scoped to the current filter, then. I'll also handle the empty                                                                
  and loading states so it never paints blank on first load.                                                                                 
                                                                                                                                             
 โฏ Perfect. Write it up so we don't lose the thread.                                                                                         
                                                                                                                                             
  On it. I'll draft dashboard.md โ€” metrics API, charts, date-range filter, CSV                                                               
  export, empty/loading states, and tests.                                                                                                   
                                                                                                                                             
 โบ Write(dashboard.md)                                                                                                                       
   โŽฟ 48 lines written                                                                                                                        
                                                                                                                                             
  Done. dashboard.md covers all six. Want me to break it into tasks?                                                                         
โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
 โฏ โ–Š                                                                                                                                         
โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
  Model: Opus 4.8 ยท Ctx 4% ยท Cost $0.36 ยท Session 3m                                                                                   ๐– ฐ hub 
  โตโต auto mode on (shift+tab to cycle)                                                                                                       

Meet Shelbi

This is Inbox Zero for agent work.

Have an idea? Spot a bug? Simply talk to the Shelbi orchestrator agent the moment it occurs to you. The orchestrator doesn't do the work itself so it won't get derailed. Each item is written up in a standard format. Nothing small or big gets dropped. Let the agent write it up for you!

Tasks keep work focused.

Every item becomes a scoped task before a worker agent touches it. Agents do their best work in focused chunks. The orchestrator breaks big features down into smaller tasks. Small changes flow through quickly.

my-project
OrchestratorโŒ˜O
IssuesโŒ˜I
ChangelogโŒ˜L
Workspaces
hub
alphaIdle
bravoIdle
charlieDeveloperโŒ˜1
deltaDeveloperโŒ˜2
devbox
echoDeveloperโŒ˜3
foxtrotDeveloperโŒ˜4
golfIdle
Zen mode off
Filter:WorkflowsWorkspacesboard 2sSearchNew issue
BACKLOG12
TO DO6
Cache user sessions
Keep session lookups in Redis instead of hitting the database per request.
app
Wire webhook retries
Retry failed webhook deliveries with backoff and a dead-letter queue.
app
Split OTel spans
Separate spans for queueing and handling so slow jobs are easy to find.
app
Sync i18n strings
Pull the latest translations and flag any keys missing a locale.
app
Add health probes
Liveness and readiness endpoints for the API and the worker pool.
app
Debounce autosave
Save drafts once typing pauses instead of on every keystroke.
app
IN PROGRESS4
Paginate search API
Cursor pagination for /search so large result sets stream in pages.
appjlong/t-038
Trim vendor bundle
Split the vendor chunk and drop unused locales to cut the first load.
appjlong/t-022
Backfill order index
Backfill the new orders index in batches without locking the table.
appjlong/t-017
Migrate CI to arm64
Move the CI runners to arm64 and keep an x86 job for the release build.
appjlong/t-014
REVIEW1
Fix mobile nav
The menu sheet traps scroll on iOS. Close it on navigation.
appjlong/t-008
DONE3
Add API ratelimit
Per-key rate limits on the public API, with clear 429 responses.
app
Dedupe error reports
Group identical errors by fingerprint so one bug is one report.
app
Prune stale flags
Remove feature flags that have been fully rolled out for a month.
app
h/l column k/j card โ†ต open โ‡งh/โ‡งl move โ‡งk/โ‡งj reorder drag to move or reorder s start a assign e edit E editor n new

Agents provide specialization.

Workers build the code. Reviewers scrutinize it: QA, Security, and Adversarial Review ship in the box, each doing one job well. Tailor any of them with custom instructions and skills, or author your own.

adversarialDefaultSave changes
Name
adversarial
Description
Adversarial code review before a human sees the branch
InstructionsMarkdown
Define how this agent approaches a task and when its work is complete.
# Adversarial Review You are an adversarial code reviewer. A developer agent has finished a task and believes its branch is ready. Your job is not to confirm that belief โ€” it is to try to prove the change is wrong before a human spends attention on it. Assume there is a bug until you have looked hard enough to say otherwise. ## What to review Review the diff on the current task's branch against the base branch โ€” only what this task changed, plus the code that change touches. You are looking for defects the developer and the tests missed, not for style nits the preamble's checks already cover. ## How to review Work through every changed hunk and actively try to falsify it: - Correctness โ€” Does it do what the task asked? Trace the non-obvious paths by hand. Off-by-one, wrong operator, inverted condition, a branch that silently does nothing. - Security โ€” Untrusted input reaching a query, a shell, a path, or a template. Missing authz checks. Secrets in logs or errors. Unsafe defaults. - Error handling โ€” What happens when the call fails, the input is empty, the list is huge, the value is null, two requests race? - Edge cases โ€” Boundaries, empty and maximal inputs, concurrency, encoding, time zones โ€” whatever this code plausibly meets in production. - Test coverage โ€” Do the tests actually exercise the new behavior, or do they assert around it? Find a real input the change gets wrong that no test would catch, and treat that as a finding. ## How to report Write your findings as a structured review on the branch โ€” a markdown ## Adversarial Review section, per this project's convention. For each finding: - Severity โ€” blocker, major, or minor. - Location โ€” path/to/file.rs:120 (or a range). - The problem โ€” what breaks, and the concrete input or sequence that triggers it. A finding with a repro beats a vague worry. - Suggested fix โ€” one line, when the fix is obvious. Order findings by severity, blockers first. ## Signing off or bouncing Every review ends one of two ways. Decide from the highest-severity finding. If nothing rises to a blocker, sign off and hand off forward. If any finding is a blocker, write up the findings and bounce the task back to the developer.
Shared project instructions are included before these instructions.
Skills0Add skill
No skills addedAdd reusable instructions for tasks this agent performs often.
Runner preferencesChoose the runner and defaults recommended for this role.
Preferred runner
Claude Code
Model
Use runner default
Reasoning effort
Use runner default
Permissions
Use project settings
Model and effort apply to Claude Code. Project settings can override these preferences.
Workflow assignmentsThis agent runs when a task enters the assigned status.
feature / Agent Review
Manage assignments in Workflows.

Workflows provide boundaries.

Every task moves through stages you define before it reaches you. Boundaries are what make autonomy safe. When your gates catch what you would, flip shelbi zen on and the orchestrator merges green work itself, then reports what landed and what needs you.

feature
BuilderForm
Save changes
Add statusAdd transitionHover over a status, then drag a handle to add a transition.Fit100%
Hover over a status, then drag a handle to add a transition.
Push branchOpen PR
MergeDelete branch
Backlog
User ยท NoneInitial
In Progress
Agent ยท developer
Agent Review
Agent ยท adversarial
QA
Agent ยท qa
Security
Agent ยท security
Review
User ยท None
Done
User ยท None
Status orderTransition actions

Features

Kanban board
Every task is a card on a board, so status is on screen instead of in your head.
Workers on any machine
Any box you can SSH into can take tasks. If it has git and an agent CLI, it's a worker.
Attach from anywhere
Every worker runs in its own Shelbi session. Attach from any terminal to watch an agent work or type to it directly. No terminal multiplexer required.
Review flow
Finished tasks land in the review column and wait for you. Assign a review agent to any column to hold every task to the same bar.
Plain-file state
Tasks are markdown and workflows are YAML, stored in your repo. No database, no cloud, just files you can read, grep, and commit.
Open source
The whole system is MIT licensed on GitHub. You can read every line that runs on your machines.

Get started

brew install jlong/shelbi/shelbi jlong/shelbi/shelbi-desktop
Build from source