Skip to content

Releases: RamiAltai/agentman

v0.6.1: Merge pull request #11 from RamiAltai/docs-cleanup

16 Jun 12:21
21b0232

Choose a tag to compare

v0.6.0: Merge pull request #9 from RamiAltai/dashboard-overhaul

13 Jun 13:07
16bbe53

Choose a tag to compare

Everything since v0.5.0: a complete agent work loop, an organization layer (categories/labels/metadata), optional agent scoping, and a dashboard that now does everything the CLI does. Still one binary, one SQLite file, localhost-only.

Agent work loop

  • am next — atomically pick + claim the highest-priority ready task in one call (replaces the racy list→parse→claim); exit 3 if nothing's ready.
  • am wait --done <id> / am wait --ready — block until a task finishes or work appears, instead of polling; exit 7 on timeout.
  • Bulk am status <id…> / am assign <id…> — act on many tasks in one call.
  • am claim --steal-stale <dur> + am ls --stale — recover tasks from agents that crashed mid-claim (otherwise stuck forever); emits a task.reclaimed event.

Organize & find work

  • Categories above projects (am category new, am project new -c <cat>) — group projects into a hierarchy. Project creation now requires a category; existing projects migrate into general.
  • Labels (am label, am ls --label) and substring search (am ls --grep / ?q=) — find tasks as the board grows.
  • Task metadata (am new/edit --meta k=v, am next --meta) — free-form key/value pointers for routing and external correlation.
  • Stable IDs (amc_/amp_) + vault binding (am project edit --vault-id/--vault-path) — correlate with external systems by an ID that survives slug renames.

Confine agents (optional)

  • Scoped identity (am init -c <cat>[/project]) — restrict an agent to its slice; out-of-scope writes are rejected (exit 8). Accident prevention by default.
  • Scope tokens (am token new --scope …) — server-enforced bearer tokens turn scoping into a real boundary, not just a client-asserted header; invalid/revoked → exit 9.
  • Carve-out: any agent may file tasks into meta/proposals regardless of scope.

Dashboard

  • Category home + drill-down boards; activity feed and live stream scopable by category.
  • Dark/light theme toggle — follows your OS, remembers your choice.
  • Full CLI parity — create/archive categories, choose a category when creating a project, edit projects, filter the board (ready/blocked/stale/assignee/meta), edit task metadata, and release a task — all from the browser.

Upgrading

  • Auto-migrates on first launch (schema v4 + v5); zero data loss, existing task IDs/refs unchanged.
  • New exit codes: 8 out of scope, 9 bad token. All existing codes unchanged.

v0.5.0

07 Jun 17:52

Choose a tag to compare

v0.5.0 — Task dependencies & dependency graph

Plan the order of your work: link tasks as prerequisites, and see the whole dependency map at a glance.

✨ Task dependencies

  • Mark one or more tasks as prerequisites of another (am dep add <id> <prereq…>, or from a task's modal).
  • Hard-block: a task with unfinished prerequisites can't be claimed or moved to in-progress/done — so agents only pick up work that's actually ready.
  • Ready / 🔒 Blocked tags on cards, plus am ls --ready (claimable now) and am ls --blocked.
  • Cycles and self-dependencies are rejected automatically — you can't create a deadlock.

🕸️ Dependency graph overlay

  • Press g (or click Graph) for a per-project, interactive graph of the dependency DAG.
  • Click any task to highlight its full prerequisite path and everything it unblocks, with a side panel showing its prereqs, what it blocks, and an Open task shortcut.
  • Color-coded by priority; edges show whether each prerequisite is cleared (green) or still blocking (amber). Pan, zoom, and live updates over SSE.

Install / update

go install github.com/RamiAltai/agentman/cmd/am@latest

v0.4.2

07 Jun 14:27

Choose a tag to compare

agentman v0.4.2 — first public release

agentman (am) is a tiny, self-hosted ticketing board designed for AI agents (a dead-simple "Ticketing System" where agents pick up, claim, comment on, and close tasks through a terse, token-cheap CLI, while you watch progress live in a web dashboard.

One Go binary. One SQLite file. Localhost-only. No database server, no npm, no dependencies to install.

agents ──(am claim 13)──┐
                        ├──► HTTP+JSON API (127.0.0.1:8787) ──► SQLite (WAL)
you (browser) ◄──SSE────┘        sole writer · broadcasts every change live

Why it exists

  • Built for agents, not humans first. Commands are short, output is terse text, successes are silent, and exit codes let an agent branch without parsing. A full pick-up → done cycle is ~65–75 tokens.
  • Real-time for humans. Every change streams to the dashboard over SSE — no refresh.
  • Zero ops. A single static binary (pure-Go SQLite, no cgo), localhost, no auth, no DB server. Back up = copy one file.
  • Multi-project & multi-agent. Atomic task claims mean two agents never grab the same ticket.

✨ Features

Agent-native CLI

  • am init <type> per-directory identity (survives the fresh-shell-per-command model agents run under); am whoami.
  • Task lifecycle: ls · show · new · claim (atomic) · status · assign · note · edit · drop · rm.
  • Projects: projects · project new · archive / unarchive · rm.
  • <id> accepts a global id (13) or project ref (web-3); --json on any read; exit codes 0/3/4/5/6 for branchless control flow.

Live web dashboard (embedded, no build step)

  • Kanban columns — Todo / In Progress / Blocked / Done — with per-project tabs, counts, and multi-select cross-project filtering.
  • Drag-and-drop status changes; a wide, resizable ticket modal with description, comments, and full history.
  • Collapsible / drag-resizable activity feed with clickable task #refs; "Load older activity" paginates back through history.
  • Manage-projects modal to archive/unarchive/delete; two-step inline confirms for deleting tasks, comments, and projects.
  • Fully responsive down to mobile; keyboard shortcuts (n, a, [/], Enter, Esc).

HTTP + SSE API

  • Full REST surface for projects, tasks, comments, and events; GET /api/stream (SSE) plus pollable/pageable GET /api/events. The CLI and dashboard are both thin clients over it.

Data lifecycle & durability

  • Single-writer + WAL; atomic claims via one conditional UPDATE … RETURNING (the race loser gets 409).
  • Append-only event log (12 event kinds) — the audit trail and the durable cursor used to replay missed events on SSE reconnect. Events survive hard deletes.
  • Hard delete with FK cascade (task → comments, project → tasks → comments).
  • Project archive/hide, backed by the first real schema migration (v2) via the forward-only migration runner.
  • DB export/import — consistent VACUUM INTO snapshots; import validates integrity/FKs/schema and refuses to run while the server is live.
  • Events retentionam db prune (--before <date> | --keep <N>), offline, events-only, VACUUMs after.

🔒 Security & reliability

  • Loopback-only with no auth — the bind is the access control, hardened by a Host allowlist + write-CSRF guard + CSP.
  • Agent-supplied text rendered with textContent only (never innerHTML) — a malicious task title can't inject markup, enforced by a source-level XSS-sink test.
  • 500s never leak internal error detail (logged server-side, generic body to clients).
  • Minimum Go 1.25.11 so every install builds against a security-patched standard library.
  • 9 test files, 71 tests, green under -race. CI (GitHub Actions) runs build, vet, gofmt, go test -race, a JS syntax check, and govulncheck on every push and PR — 0 reachable vulnerabilities.

📦 Install

Requires Go 1.25+ (older Go auto-upgrades its toolchain):

go install github.com/RamiAltai/agentman/cmd/am@latest
am serve            # dashboard at http://127.0.0.1:8787

Then open http://127.0.0.1:8787, create a project, and drive it from your agents. One-time Claude Code setup (global memory + permission allowlist) is in [docs/agent-integration.md](https://github.com/RamiAltai/agentman/blob/main/docs/agent-integration.md).

⚙️ Configuration

AGENTMAN_URL · AGENTMAN_PROJECT · AGENTMAN_AGENT · AGENTMAN_PORT · AGENTMAN_DB · AGENTMAN_LOG (opt-in METHOD PATH STATUS LATENCY ACTOR request logging) · AGENTMAN_NO_UPDATE_CHECK.

📝 Note on versioning

This is agentman's first published release. It ships as v0.4.2