Orchestrate AI agents from a lightweight dashboard. No build step. No framework. 2,200 lines.
Taskmill is a task management UI for autonomous AI agents. Define goals, create projects, assign issues to agents, and watch them work — all from a browser. Data lives in MongoDB, updates sync in real-time via WebSocket.
Built on LOSOS (6KB reactive framework) and JSS (Solid server with MongoDB).
# Prerequisites: Node.js 20+, MongoDB running locally
npm install -g javascript-solid-server
# Clone
git clone https://github.com/task-mill/taskmill.git
cd taskmill
# Start
jss start --port 3005 --root . --mongo --mongo-database taskmill --public --notifications
# Open http://localhost:3005- Dashboard — metrics, recent issues, agent status, activity feed
- Issues — create, edit, delete, filter by status, assign to agents
- Projects — track progress, link to goals, manage teams
- Agents — hire AI agents, configure heartbeats, set budgets
- Goals — company-level objectives tied to projects
- Activity — real-time event stream of all actions
- Settings — company configuration, danger zone
- Live sync — WebSocket push, all tabs update instantly
- Mobile — responsive sidebar with hamburger menu
node agent.jsThe agent connects to the same /db/ API, picks up todo issues, works on them, and marks them done. You'll see it happen live in the dashboard.
# Options
node agent.js --agent-id a3 --interval 10 --api http://localhost:3005Browser ←→ JSS server ←→ MongoDB
↕
WebSocket (live sync)
↕
agent.js (heartbeat loop)
All data is stored as JSON-LD documents in MongoDB via JSS's /db/ route:
/db/taskmill/agents/{id} → agent documents
/db/taskmill/issues/{id} → issue documents
/db/taskmill/projects/{id} → project documents
/db/taskmill/goals/{id} → goal documents
/db/taskmill/activity/{id} → activity events
/db/taskmill/company/{id} → company settings
taskmill/
losos/ ← LOSOS framework (6KB)
html.js templates, DOM patching, keyed lists
store.js reactive store, auto-save, WebSocket sync
shell.js pane loader, tab bar
registry.js @type → pane URL mappings
lion/
index.js ← JSON-LD store
panes/ ← UI views (~1,800 lines total)
dashboard-pane.js
agents-pane.js
agent-detail-pane.js
issues-pane.js
issue-detail-pane.js
projects-pane.js
project-detail-pane.js
goals-pane.js
activity-pane.js
settings-pane.js
index.html ← shell, layout, navigation, data loader (~400 lines)
agent.js ← autonomous agent script (~140 lines)
RECIPE.md ← full pipeline: requirements → running app
SKILL.md ← reusable pattern for generating apps from entities
Total: ~2,200 lines. No build step. No dependencies beyond LOSOS (6KB) and JSS.
Every entity (agent, issue, project, goal) is a JSON-LD document stored in MongoDB. The UI reads and writes via HTTP (GET, PUT, DELETE). JSS broadcasts changes over WebSocket so all connected clients stay in sync.
Agents use the same API — they're just scripts that read issues, do work, and write results back. The UI and agents share the same data layer.
| Entity | Create | Read | Update | Delete |
|---|---|---|---|---|
| Agents | ✅ | ✅ | ✅ | ✅ |
| Issues | ✅ | ✅ | ✅ | ✅ |
| Projects | ✅ | ✅ | ✅ | ✅ |
| Goals | ✅ | ✅ | ✅ | ✅ |
| Activity | Auto | ✅ | — | — |
| Company | Seed | ✅ | ✅ | ✅ |
To seed sample data:
API="http://localhost:3005/db/taskmill"
# Create an agent
curl -X PUT "$API/agents/a1" \
-H "Content-Type: application/ld+json" \
-d '{"@type":"Agent","name":"CEO","role":"ceo","status":"idle","adapterType":"claude_local"}'
# Create an issue
curl -X PUT "$API/issues/i1" \
-H "Content-Type: application/ld+json" \
-d '{"@type":"Issue","identifier":"TM-1","title":"First task","status":"todo","priority":"high"}'Or use the UI — every create/edit/delete writes directly to MongoDB.
See RECIPE.md for the full pipeline:
- Requirements → natural language spec
- UML → entity relationships (Mermaid)
- Tables → collection schemas
- Objects → sample JSON-LD documents
- JSON Schema → validation
- Panes → LOSOS UI views from templates
- Frontend → assembled app with sidebar + navigation
- Persistence → MongoDB via JSS
/db/ - Agents → autonomous scripts using the same API
See SKILL.md for reusable pane templates (list, detail, dashboard, activity, form).