Get the full Tackworks stack running in under five minutes. Three services, one command.
Clone all three repos and use the full-stack compose file:
git clone https://github.com/Tackworks/tack.git
git clone https://github.com/Tackworks/chock.git
git clone https://github.com/Tackworks/spur.git
git clone https://github.com/Tackworks/tackworks.net.git
cd tackworks.net
docker compose -f docker-compose.stack.yml up -d
That's it. Three services, wired together:
| Service | URL | Purpose |
|---|---|---|
tack | http://localhost:8795 | Task board |
chock | http://localhost:8796 | Approval queue |
spur | http://localhost:8797 | Event relay |
Each tool works standalone. Pick what you need:
# Just the task board
pip install fastapi uvicorn
cd tack && python server.py
# Open http://localhost:8795
# Just the approval queue
cd chock && python server.py
# Open http://localhost:8796
# Just the event relay
cd spur && python server.py
# Open http://localhost:8797
Each repo includes its own Dockerfile and docker-compose.yml:
cd tack && docker compose up -d
cd chock && docker compose up -d
cd spur && docker compose up -d
To connect Tack and Chock to Spur for event forwarding, set environment variables:
# On Tack
export TACK_WEBHOOKS=http://localhost:8797/api/events
# On Chock
export CHOCK_WEBHOOKS=http://localhost:8797/api/events
Then create a route in Spur to forward events somewhere useful:
curl -X POST http://localhost:8797/api/routes \
-H "Content-Type: application/json" \
-d '{
"name": "all-to-telegram",
"source_filter": "",
"destination_type": "telegram",
"destination_config": {
"bot_token": "YOUR_BOT_TOKEN",
"chat_id": "YOUR_CHAT_ID"
},
"template": "*{event}* from {source}\n{details}"
}'
Each repo includes a TOOL.md file with the full API reference and tool definitions. Feed it to your agent as context:
# OpenAI
tools = json.loads(open("tack/TOOL.md").read())
# Or just give the agent the URL
"Read the API at http://localhost:8795/api/board"
See the integration guides for OpenAI, Anthropic Claude, and Ollama/llama.cpp examples.
| Method | Requires |
|---|---|
| Python | Python 3.10+, pip |
| Docker | Docker Engine 20+, Docker Compose v2 |