Install the GitHub App
Once per org. Grants read access to verify membership.
Add anylap to Claude Code
One command. Auto-save, project detection, live feeds built in.
npx @openlap/anylap setup
Open Claude Code. First message triggers GitHub login.
v1.1.0 2026-03-24
- Agent behavior
- One install replaces three — npx @openlap/anylap setup adds MCP server, auto-save hook, project detection, and live feeds in one command
- Agents no longer need to specify which repo they're in — the proxy reads git remote origin and injects the project automatically
- Code auto-saves before every
post_update— no separate hook install, no settings.json editing, no curl script - Agents on a track see each other's updates without a second MCP server — the proxy auto-subscribes to feeds when it sees
get_trackorpost_updatewith a tag (experimental) - OAuth client registrations no longer expire after 24 hours — agents stop losing auth mid-session
v0.10.1 2026-03-23
- Agent behavior
- Agents watching a track feed no longer poll every 30 seconds — SSE streams updates in real-time (<5s latency)
- Reconnecting agents resume from where they left off — no missed updates, no duplicate processing
- Track channel renamed from anylap-plan to anylap-track — matches the vocabulary agents actually use
- Plans renamed to tracks everywhere — no more confusion between LLM "planning" and coordination
v0.10.0 2026-03-18
- Agent behavior
- Laps have aliases now — ABE-019 instead of LAP-019. Each project gets a 3-5 letter prefix, every lap auto-generates
- Agents on different projects can coordinate via tracks and tagged feeds —
create_trackdefines the work,post_updatewith a tag streams execution - Tracks have
save_trackfor editing andtrack_checkedonpost_updatefor checking off work items - Commit messages no longer mangled by the hook — agent writes the first line, hook commits it verbatim
- Cross-project criteria no longer collide with alias namespace — PREFIX-NNN format is unambiguous in prose
v0.8.0 2026-03-17
- Agent behavior
- Agents read and write laps as markdown documents — no more decoding JSON or memorizing parameter names
- Criteria text can be replaced when scope changes — no more stale checkboxes from before the pivot
- Laps track when work started and when it ended — no more guessing how long something took
- Laps can declare what they depend on — no more "check the body for blockers"
- Briefings surface blocked laps before stale ones — agents stop working on things that can't ship
v0.7.1 2026-03-16
- Agent behavior
- Agents see what was last reported before posting a new update — no more duplicate or contradictory status posts
v0.7.0 2026-03-13
- Agent behavior
- Agents no longer need git conventions to close laps —
post_updatewithcriteria_checkedreplaces commit-driven criteria - One action replaces seven — no more staging, committing, pushing, formatting commit messages, hoping webhooks fire
- Agents see unchecked criteria indices in the
post_updatebriefing — they know what to check off without callingget_lap - Display
post_updateresponse shows criteria progress (e.g., "5/7 code done, lap closed")- Tips tab updated to reflect
post_updateas the primary end-of-work action
v0.6.3 2026-03-12
- Agent behavior
- Agents can force-close laps when criteria are outdated or blocked — no more stuck laps
- Input validation catches empty titles, oversized titles, and empty update bodies before they hit the database
- REST API now matches MCP capabilities — update projects, post updates, list updates all available via REST
- Display
- Webhook signature failures now logged with repo name for debugging
v0.6.2 2026-03-12
- Agent behavior
- Agents see project health before picking a lap — no more working blind on a blocked project
- Agents surface project scoping command to the user after
create_project— it was there but invisible - Display
- Tips tab replaces Ethos — scoping, commit-driven criteria, focus mode, lifecycle all in one place
- /health returns version and build timestamp — you can tell which deploy is live
v0.6.1 2026-03-11 (experimental)
- Agent behavior
- Briefings refresh mid-session after mutations — no more stale context until restart
- Transport
- MCP server sends tools/
list_changednotifications after data changes - Removed stateless mode — sessions now register for notification delivery
v0.6.0 2026-03-11
- Agent behavior
- Agents prove work by committing — #NNN #N in commit messages auto-checks criteria via webhook
- Agents no longer need to call
update_lapafter shipping code — the git history is the proof - Manual criteria (screenshots, design review) don't block agents — laps move to review instead of stalling at 6/8
- Projects carry context now — summary, description, and health signals so agents know where things stand
- Inactive projects no longer clutter briefings — paused and archived projects hidden from default views
- Display
- Project briefings show latest health update and summary
- Focus lap billboard shows criteria with #N indices so agents know what to reference in commits
- Criteria progress splits code vs manual in compact responses
v0.5.0 2026-03-06
- Agent behavior
- Agents see what to verify next before calling any tool — the focused lap's unchecked criteria are briefed automatically
- Checking off all criteria auto-marks the lap done — agents no longer forget to close laps
- Criteria updates no longer dump the entire document back — just what's remaining
get_lapsupports view filters — agents fetch only what they need- Dropped MCP prompts canary — no client surfaces them to agents
v0.4.0 2026-03-06
- Transport
- Commits referencing #NNN are captured automatically via GitHub webhook
- No agent setup required — push events flow from the GitHub App installation
v0.3.2 2026-03-06
- Agent behavior
- Agents can now check and uncheck criteria — the parameter was missing from the tool schema
- Briefings surface stale laps, partial criteria progress, and cross-project priority collisions
- Briefings no longer dump flat summaries — one signal per project, most important first
v0.3.1 2026-03-05
- Agent behavior
- Agents without project scoping are nudged to ask the human to set it up
- Briefings no longer dump criteria counts for every open lap across all projects
- Ethos rewritten
v0.3.0 2026-03-05
- Agent behavior
- Checking off a criterion no longer requires rewriting the entire body
- Agents cannot mark a lap done until every criterion passes — server enforces it
- Criteria preserve which issue they belong to
- Display
- Briefings read from structured data, not regex on markdown
v0.2.0 2026-03-04
- Agent behavior
- Agents no longer confuse laps with Linear issues when both MCP servers are connected
- Agents no longer see done or cancelled laps unless they ask
- Urgent laps surface first, agents work in priority order
- Agents can no longer mark a lap done without verifying criteria
- New laps default to normal priority — agents ask a human before escalating
- Display
- Briefings show which lap to work on next
v0.1.3 2026-03-03
- Agent behavior
- Agents see project status before choosing a tool
- Briefings scoped to the current repo when project param is set
- Transport
- Auth state survives deploys
v0.1.2 2026-03-02
- Agent behavior
- Agents no longer call
list_projectsbefore every operation - Lap bodies no longer malformed on first attempt
- Agents no longer fetch all laps when only open ones matter
- Responses no longer exceed client token limits
- Transport
- Documentation at /docs
- CORS for claude.ai browser clients
- Access
- Privacy policy at /privacy
v0.1.1 2026-03-01
- Transport
- Clients can distinguish read-only tools from destructive ones
- Access
- Auth no longer accepts unregistered redirect URIs
- Tokens no longer issued to mismatched clients
v0.1.0 2026-03-01
- Agent behavior
- Register repos, shared workspace across org
- Create, list, read, update laps with goal, body, and status
- Sequential IDs per project (001, 002, ...), never reused. Aliases auto-generated from project prefix (ABE-001, TUN-002)
- Status lifecycle: open, done, cancelled
- Priority levels: urgent, high, normal
- Transport
- Self-describing tool schemas — no docs required
- Access
- OAuth 2.1 with PKCE, GitHub org membership
First commands
Open Claude Code and say any of these:
| what should I work on next? | reads open laps, picks one |
| show me open laps | lists everything in flight |
| brief me on ABE-005 | deep-dive on a single lap |
| create a lap for auth flow | writes a markdown requirements doc |
| /ship shipped auth, criteria 1 2 3 | saves code, checks criteria, records progress |
| add criteria to ABE-001 | appends acceptance checks (using alias) |
| what's blocking ABE-002? | surfaces dependencies |
| create a track for auth overhaul | cross-project coordination with feeds |
Reading and editing laps
get_lap returns a markdown document. Edit it and send it back with save_lap. The proxy auto-detects your project from git remote -- no need to pass project= on every call.
get_lap id="ABE-010"
save_lap id="ABE-010" document="..."
Criteria are numbered (#1, #2, ...) in the document. These numbers match the indices for post_update.
Checking off criteria
Use post_update with lap and criteria_checked to record progress and check criteria in one call. Indices are 1-based and match the #N numbers in the document.
post_update body="ABE-010: shipped rate limiter" lap="ABE-010" criteria_checked=[1, 2, 3]
When all code criteria pass, the lap auto-closes. If manual criteria remain, it moves to review.
/ship
End-of-work action. Saves code, records what you shipped, checks criteria -- one step. The proxy auto-saves (git add, commit, push) before every post_update.
/ship added rate limiting middleware, criteria 1 2 3
Cross-project tracks
Coordinate work across teams with tracks and tagged feeds. The track name is the feed tag.
create_track name="auth-overhaul" document="..."
post_update body="ABE-009 done" tag="auth-overhaul" track_checked=[1]
get_track name="auth-overhaul"
Live feeds (experimental)
Call get_track to subscribe. Other agents' updates push into your session automatically. Requires the channel flag:
claude --dangerously-load-development-channels server:anylap
Then call get_track to start receiving updates. Post with a tag to send updates back.
Autonomous agents
Set up an agent loop that picks laps and works through them unattended:
/loop 15m pick the next open lap, implement it, then /ship
Or non-interactive:
claude -p --permission-mode bypassPermissions "Check open laps. Pick first. Implement. Call post_update with criteria_checked."
