Multi-agent micro issue manager for code-generating LLMs.
mtix (micro-tix) is a hierarchical task management system where multiple LLM coding agents decompose, claim, and execute work concurrently. Work breaks down into infinitely nested micro issues using dot-notation IDs (PROJ-42.1.3.2.1), where the hierarchy itself becomes the agent's briefing — each level adds context that flows down to the executing agent. Every operation is available through CLI, REST, gRPC, MCP, and a real-time web UI — agents and humans use whichever interface fits.
The hierarchy is the briefing. When an agent picks up PROJ-42.1.3, it traverses the parent chain to assemble a complete prompt — business goal from the story, technical scope from the epic, exact instructions from the issue. No separate documentation, no context windows stuffed with irrelevant files. The tree structure carries the intent.
Agents decompose, not templates. A decomposing agent reads the parent's full context and produces children with problem-specific prompts, acceptance criteria, and test specifications. The structure emerges from the problem's complexity — a one-liner gets one subtask, a cross-cutting refactor gets twelve. No predefined shapes imposed.
Multi-agent orchestration, not just assignment. Agents register, claim nodes, send heartbeats, and run sessions. mtix tracks who is working on what, detects stalled agents, prevents double-claiming, and auto-recovers from crashes. When ten agents work in parallel, node state and agent state stay consistent.
Every state change is auditable. Each transition records who, when, and why — in the same transaction as the data write. An auditor can trace any node's full lifecycle from creation to completion. Built for environments where DO-178C, IEC 62304, and NASA-STD-8739.8 apply.
Single binary, zero infrastructure. Pure Go, embedded SQLite in WAL mode, embedded web UI. No database server, no container orchestration, no runtime dependencies. Copy one file, run it.
- Infinite hierarchy — Stories, epics, issues, micro issues, and beyond. No depth limit.
- Dot-notation IDs —
PROJ-42.1.3.2encodes the full parent-child path. No UUIDs needed. - 7-state machine —
open/in_progress/blocked/done/deferred/cancelled/invalidatedwith enforced transitions. - Automatic progress rollup — Child completions propagate to root in a single transaction.
- Dependency tracking — Cross-branch
blocks,related,duplicates,discovered_fromwith cycle detection. - Prompt chain propagation — Parent prompts cascade to children for LLM context assembly.
- Multi-agent orchestration — Agent state tracking, sessions, heartbeats, stale detection.
- CLI-first — Every operation available via
mtixCLI with--jsonfor machine consumption. - REST API — Full CRUD, query, and admin endpoints with CSRF protection.
- gRPC API — Protocol Buffers interface for high-performance integrations.
- MCP (Model Context Protocol) — Native tool registration for LLM agent frameworks.
- Web UI — Linear-inspired SPA with keyboard shortcuts (Cmd+K, j/k, c, x), create modal, expandable tree, real-time WebSocket updates.
- Single binary — Pure Go, no CGO, embedded SQLite (WAL mode), embedded web UI.
- Export/Import — JSON export with checksums, merge and replace import modes.
- Content integrity — SHA256 content hashes on every node, full-project verification.
The dot-notation hierarchy isn't just an ID scheme — it's a context chain. Each level encodes a layer of context that flows down to executing agents:
PROJ-1 "Build user authentication" ← business goal
PROJ-1.3 "Implement rate limiting for auth" ← technical scope
PROJ-1.3.2 "Add sliding window counter in window.go" ← exact instruction
When an agent calls mtix context PROJ-1.3.2, it receives an assembled prompt — a single document built by traversing root to leaf, combining every ancestor's description and prompt. The agent gets the full picture: why the work exists, what constraints apply, and exactly what to implement.
This is mtix's core design: the hierarchy IS the briefing. Parents provide the "why" and scope. Children provide the "what" — file paths, function names, test cases, edge cases. An LLM agent that reads the assembled context has everything it needs to execute without asking questions.
When decomposing tasks, write each child's description to complete this chain. The test: "Can an agent execute this task using only the assembled context from root to this node?"
brew install hyper-swe/tap/mtixDownload pre-built binaries from GitHub Releases.
go install github.com/hyper-swe/mtix/cmd/mtix@latest/plugin marketplace add hyper-swe/mtix
/plugin install mtix
See docs/codex/AGENTS.md for Codex agent setup.
# Prerequisites: Go 1.25+, Node.js 18+ (web UI only)
# Build the complete suite (web UI + Go binary)
make build
# Or build components separately:
make build-web # Build React SPA and embed into Go binary
make build-go # Build Go binary only (assumes web assets exist)mkdir my-project && cd my-project
mtix init --prefix PROJThis creates a .mtix/ directory with config, SQLite database, and generates agent documentation in .mtix/docs/.
# Create a story
mtix create "Build authentication module" --priority 1 --description "OAuth2 flow"
# Create child issues
mtix create "Implement login endpoint" --under PROJ-1
mtix create "Add token refresh" --under PROJ-1
# Decompose into micro issues
mtix micro "Validate email format" --under PROJ-1.1
mtix micro "Write unit tests" --under PROJ-1.1
# View the tree
mtix tree PROJ-1
# Transition status
mtix claim PROJ-1.1.1 --agent agent-claude
mtix done PROJ-1.1.1
# Check progress
mtix progress PROJ-1
# List all open nodes
mtix list --status openmtix serve --port 8377The web UI is accessible at http://127.0.0.1:8377. The REST API is at /api/v1/.
Every command supports --json for machine-readable output:
mtix list --json
mtix show PROJ-1 --json
mtix create "Fix bug" --under PROJ-1 --jsoncmd/mtix/ CLI entry point (Cobra commands)
internal/
model/ Domain types, state machine, content hashing
store/sqlite/ SQLite storage (WAL mode, parameterized queries)
service/ Business logic layer
api/http/ REST API (Gin) + WebSocket events
api/grpc/ gRPC API (Protocol Buffers)
mcp/ Model Context Protocol tool registry
docs/ Embedded template-based doc generator
web/ Embedded SPA (Vite + React + Tailwind)
cloud/ Cloud sync (auth, team management)
proto/ Protocol Buffer definitions
sdk/python/ Python SDK and gRPC client
web/ Web UI source (Vite + React + TypeScript)
e2e/ End-to-end tests
CLI / REST / gRPC / MCP
|
Service Layer (business logic, validation, events)
|
Store Interface (data access contract)
|
SQLite (WAL mode) (single binary, no external DB)
All handlers go through the service layer. The store contains only data access. Model depends on nothing.
| Method | Path | Description |
|---|---|---|
POST |
/nodes |
Create a node |
GET |
/nodes/:id |
Get a node |
PATCH |
/nodes/:id |
Update a node |
DELETE |
/nodes/:id |
Soft-delete a node |
GET |
/nodes/:id/children |
List children |
POST |
/nodes/:id/decompose |
Batch create children |
GET |
/search?q= |
Full-text search |
GET |
/ready |
Nodes ready for pickup |
GET |
/blocked |
Blocked nodes |
GET |
/stale |
Stale nodes |
GET |
/stats |
Project statistics |
POST |
/admin/gc |
Run garbage collection |
POST |
/admin/backup |
Create database backup |
GET |
/health |
Health check |
GET |
/ws/events |
WebSocket event stream |
All mutations require X-Requested-With: mtix header (CSRF protection).
mtix runs as an MCP server via mtix mcp, exposing 36 tools for LLM agents: mtix_create, mtix_context, mtix_claim, mtix_done, mtix_decompose, mtix_search, and more. The most important tool is mtix_context — it assembles the full context chain from root to the target node, giving the agent its complete briefing.
See MCP Setup Guide for client configuration (Claude Desktop, Claude Code, Cursor, Windsurf).
mtix init [--prefix PREFIX] Initialize a project
mtix create <title> [--under ID] Create a node
mtix micro <title> --under ID Create a micro issue
mtix decompose <id> [titles...] Batch create children
mtix show <id> Show node details
mtix list [--status S] List nodes
mtix tree <id> Show hierarchy tree
mtix update <id> [--title T] Update node fields
mtix claim <id> --agent A Assign to agent
mtix unclaim <id> --reason R Unassign from agent
mtix done <id> Mark as done
mtix defer <id> [--until TIME] Defer a node
mtix cancel <id> --reason R Cancel a node
mtix reopen <id> Reopen done/cancelled node
mtix comment <id> <text> Add a comment
mtix dep add <from> <to> Add dependency
mtix search [--query Q] Full-text search
mtix ready Show nodes ready for work
mtix blocked Show blocked nodes
mtix stale Show stale nodes
mtix stats Project statistics
mtix progress <id> Show progress rollup
mtix verify [id] Verify content hash integrity
mtix backup <path> Create database backup
mtix export Export to JSON
mtix import <file> [--mode M] Import from JSON
mtix gc Run garbage collection
mtix context <id> Assemble context chain (root → node)
mtix serve [--port P] Start HTTP/WebSocket server
mtix mcp [--project DIR] Run as MCP server (stdio transport)
mtix docs generate [--force] Regenerate agent documentation
mtix config get|set|delete <key> Manage configuration
make test # Go tests
make test-web # Web tests (Vitest)
make test-all # Both Go and web tests
make test-race # Go tests with race detector
make test-cover # Go tests with coverage report
make e2e # End-to-end testsmake lint # All linters (golangci-lint + ESLint)
make lint-go # Go linters only
make lint-web # ESLint onlymake verify # Race tests + web tests + lint + coverage + build
make build-checked # Run all tests, then buildmake release-patch # Tag patch version bump (v0.1.0 → v0.1.1)
make release-minor # Tag minor version bump (v0.1.0 → v0.2.0)Version is injected from git tags via -ldflags at build time.
make proto-genConfiguration lives in .mtix/config.yaml:
prefix: PROJ
max_depth: 50
auto_claim: false
agent_stale_threshold: 30m
session_timeout: 8h
data:
soft_delete_retention: 720h # 30 days
progress:
weighted: falseManage via CLI: mtix config set auto_claim true
- User Manual — Comprehensive guide covering every feature: hierarchy, state machine, dependencies, prompt steering, agent management, REST/gRPC/MCP APIs, backup/export/import, and more.
- MCP Setup Guide — Configure mtix as an MCP server for Claude Desktop, Claude Code, Cursor, and Windsurf. Includes multi-project setup and context chain usage.
Licensed under the Apache License, Version 2.0.
Copyright 2025-2026 HyperSWE.