Tazuna (手綱) — the reins. Hold the reins on AI-driven software delivery.
Tazuna is an open-source platform for orchestrating AI agents through structured software development workflows. You define Tracks (workflows) composed of Stages, which are composed of Tasks — and AI agents execute them under human-in-the-loop approval, with artifacts, hooks, and Git/Jira/Azure DevOps integration along the way.
The name comes from the Japanese word for reins: you don't replace the powerful agent doing the work, you steer it.
- Track / Stage / Task workflow model with reusable templates
- AI agents powered by Claude (CLI or API mode) with autonomous, collaborative, and manual task runners
- Approvals — sign-off gates between stages
- Artifacts — first-class deliverables linked across tasks
- Hooks — event-driven extensibility (pre/post task, stage, track)
- Tools — call external HTTP endpoints from agents
- Integrations — sync with Jira and Azure DevOps
- Git integration — branch and worktree management
- AI track designer — generate workflows from a natural-language description
- Client: React 19, Vite, TypeScript, Socket.IO client
- Server: Express 5, Knex + PostgreSQL, Socket.IO, Anthropic SDK
- AI: Claude (via CLI subprocess or Anthropic API)
- Node.js 20+
- PostgreSQL 14+
- (Optional) Claude Code CLI installed for
AGENT_MODE=cli, or an Anthropic API key forAGENT_MODE=api
# 1. Clone and install
git clone <your-fork-url> tazuna
cd tazuna
# 2. Server
cd server
cp .env.example .env # edit DATABASE_URL, AGENT_MODE, etc.
npm install
npm run migrate
npm run dev # starts on http://localhost:3001
# 3. Client (in another terminal)
cd ../client
cp .env.example .env # only needed if pointing at a non-localhost server
npm install
npm run dev # starts on http://localhost:5173Open http://localhost:5173 and create your first project.
Set AGENT_MODE in server/.env:
mock— no real LLM calls, returns canned responses (useful for development)cli— runs theclaudeCLI as a subprocess (requires Claude Code installed and logged in)api— calls the Anthropic API directly (requiresANTHROPIC_API_KEYin the environment)
Tazuna is early-stage open source. Read this before deploying it anywhere public.
- Integration credentials are stored in plaintext in the database (
integration_configstable). Jira API tokens and Azure DevOps PATs are not encrypted at rest. Treat your Tazuna database as sensitive and restrict DB access accordingly. - No built-in authentication. The server is designed to run on
localhostor behind a trusted reverse proxy. Do not expose it directly to the internet. - Agent execution. In
cliandapimodes, agents can read and modify files in the project's working directory. Run Tazuna against repositories you trust. - SSRF protection is in place for HTTP tools and webhook URLs (localhost / private IPs are blocked), but review server/src/routes/tools.ts before exposing the API.
If you find a security issue, please open a private report rather than a public issue.
client/ React + Vite frontend
src/pages/ Page-level routes
src/components/ Shared UI components
server/ Express + Knex backend
src/routes/ REST endpoints
src/services/ Domain logic (agent, hooks, sync, ...)
src/providers/ Jira / Azure DevOps integrations
migrations/ Knex SQL migrations
Issues and PRs welcome. This project is in early development — APIs and the data model may change between releases.