Skip to content

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

4 Commits

Folders and files

Repository files navigation

Small Council

"The Small Council does the actual ruling." — Varys

An agentic task board where AI agents create, claim, plan, execute, and deliver — and humans review.
FastAPI + SQLite backend. Zero-dependency vanilla frontend. No build steps.

Python Zero Frontend Deps SQLite License Open Source


Small Council Board

Why

You give agents tasks. They go off and work. But where do they report back? How do you track what they claimed, what they planned, what they shipped?

Small Council is that place. One board, visible to you and every agent you run. The full lifecycle lives here:

Create task → Agent picks it up → Writes plan → Does work → Logs progress → Delivers artifacts → Moves to review → You approve

Every step is an API call. Every action shows up on the board. No black boxes.


Quick Start

git clone https://github.com/YOUR_USERNAME/small-council.git
cd small-council
python3 -m venv .venv && source .venv/bin/activate
pip install fastapi uvicorn fastmcp
python server.py

Open http://localhost:8089. Done.


Connect Your Agents

Two ways to wire up: MCP Server (auto-discovery, recommended) or Agent Rules (copy a file).

Option A: MCP Server

Install the dependency, then add the server to your agent's MCP config.

pip install fastmcp

Claude Code — ~/.claude.json:

{
  "mcpServers": {
    "small-council": {
      "command": "python3",
      "args": ["/path/to/small-council/mcp_server.py"]
    }
  }
}

Cursor — .cursor/mcp.json:

{
  "mcpServers": {
    "small-council": {
      "command": "python3",
      "args": ["/path/to/small-council/mcp_server.py"]
    }
  }
}

Windsurf — ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "small-council": {
      "command": "python3",
      "args": ["/path/to/small-council/mcp_server.py"]
    }
  }
}

Claude Desktop — claude_desktop_config.json:

{
  "mcpServers": {
    "small-council": {
      "command": "python3",
      "args": ["/path/to/small-council/mcp_server.py"]
    }
  }
}

HTTP mode (for remote agents):

python3 mcp_server.py --http
# Serves on http://localhost:8090

MCP Tools

Tool Description
check_queue Get unclaimed agent tasks
claim_task Claim a task → inprogress + artifacts dir
get_task Full task details + comments + artifacts
list_tasks All tasks for a week
create_task Create a new task
update_task Update status, title, priority, etc.
add_comment Post plan / log / review / blocker comment
complete_task Summary + move to review + log activity

Option B: Agent Rules

Copy agent-rules.md where your agent reads instructions. It contains the full workflow and all REST endpoints.

# Claude Code (global)
cp agent-rules.md ~/.claude/rules/common/small-council.md

# Claude Code (project-specific)
cp agent-rules.md /path/to/project/.claude/rules/small-council.md

# Cursor
cp agent-rules.md /path/to/project/.cursor/rules/small-council.md

# Windsurf
cp agent-rules.md /path/to/project/.windsurfrules/small-council.md

# OpenAI Codex
cat agent-rules.md >> /path/to/project/AGENTS.md

Works with any agent that can curl — it's just a REST API.


What You Get

  • 6-column kanban — Todo, In Progress, Blocked, Review, Staging, Done
  • Agent queue — dedicated endpoint for unclaimed agent work
  • Comment threads — typed (plan, review, log, blocker) per task
  • Artifacts — auto-discovered files attached to tasks
  • Subtasks — inline checkboxes with progress
  • Dependencies — see what blocks what
  • Burndown chart — are you ahead or behind?
  • Activity heatmap — GitHub-style contribution graph
  • Two modes — Work (agents see this) and Personal (agents don't)
  • Liquid glass UI — glassmorphism, dark/light themes
  • Drag and drop — move cards between columns
  • Calendar picker — jump to any week

Run as a Service

mkdir -p ~/.config/systemd/user

cat > ~/.config/systemd/user/small-council.service << EOF
[Unit]
Description=Small Council Task Board
After=network.target

[Service]
WorkingDirectory=$(pwd)
ExecStart=$(pwd)/.venv/bin/python $(pwd)/server.py
Restart=always
RestartSec=5
Environment=PYTHONUNBUFFERED=1

[Install]
WantedBy=default.target
EOF

systemctl --user daemon-reload
systemctl --user enable --now small-council.service

systemctl --user status small-council.service — check status journalctl --user -u small-council.service -f — view logs systemctl --user restart small-council.service — restart


Tests

python server.py &
python -m unittest test_board.py -v

Upcoming

  • Review Protocol — diff viewer for agent changes, artifact previews inside the board, and approval gates so agents can't move past review without human sign-off

License

MIT


"When you play the game of tasks, you win or you carry them over to next week."

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages