2026-01-26 11:34:57 +09:00
2026-01-25 15:16:27 +09:00
2026-01-25 15:16:27 +09:00
2026-01-26 11:34:57 +09:00
2026-01-25 15:16:27 +09:00
2026-01-25 15:16:27 +09:00
2026-01-25 15:16:27 +09:00
2026-01-25 15:16:27 +09:00
2026-01-26 10:17:48 +09:00
2026-01-25 15:16:27 +09:00
2026-01-25 15:16:27 +09:00
2026-01-25 15:16:27 +09:00
2026-01-25 15:16:27 +09:00
2026-01-25 15:16:27 +09:00
2026-01-25 15:16:27 +09:00
2026-01-25 22:02:10 +09:00
2026-01-25 22:02:10 +09:00
2026-01-25 15:16:27 +09:00
2026-01-25 15:16:27 +09:00
2026-01-25 15:16:27 +09:00
2026-01-25 15:16:27 +09:00

TAKT

Task Agent Koordination Tool - Multi-agent orchestration system for Claude Code (Codex support planned).

Note

: This project is developed at my own pace. See Disclaimer for details.

Requirements

Installation

npm install -g takt

Quick Start

# Run a task (will prompt for workflow selection)
takt "Add a login feature"

# Switch workflow
takt /switch

# Run all pending tasks
takt /run-tasks

Commands

Command Description
takt "task" Execute task with workflow selection
takt -r "task" Execute task, resuming previous session
takt /run-tasks Run all pending tasks
takt /switch Switch workflow interactively
takt /clear Clear agent conversation sessions
takt /help Show help

Workflows

TAKT uses YAML-based workflow definitions. Place them in:

  • ~/.takt/workflows/*.yaml

Example Workflow

name: default
max_iterations: 10

steps:
  - name: implement
    agent: coder
    instruction_template: |
      {task}
    transitions:
      - condition: done
        next_step: review
      - condition: blocked
        next_step: ABORT

  - name: review
    agent: architect
    transitions:
      - condition: approved
        next_step: COMPLETE
      - condition: rejected
        next_step: implement

Built-in Agents

  • coder - Implements features and fixes bugs
  • architect - Reviews code and provides feedback
  • supervisor - Final verification and approval

Custom Agents

Define custom agents in .takt/agents.yaml:

agents:
  - name: my-reviewer
    prompt_file: .takt/prompts/reviewer.md
    allowed_tools: [Read, Glob, Grep]
    status_patterns:
      approved: "\\[APPROVE\\]"
      rejected: "\\[REJECT\\]"

Project Structure

~/.takt/
├── config.yaml          # Global config
├── workflows/           # Workflow definitions
└── agents/              # Agent prompt files

Practical Usage Guide

Resuming Sessions with -r

When TAKT prompts for additional input during execution (e.g., "Please provide more details"), use the -r flag to continue the conversation:

# First run - agent might ask for clarification
takt "Fix the login bug"

# Resume the same session to provide the requested information
takt -r "The bug occurs when the password contains special characters"

The -r flag preserves the agent's conversation history, allowing for natural back-and-forth interaction.

Playing with MAGI System

MAGI is a deliberation system inspired by Evangelion. Three AI personas analyze your question from different perspectives and vote:

# Select 'magi' workflow when prompted
takt "Should we migrate from REST to GraphQL?"

The three MAGI personas:

  • MELCHIOR-1 (Scientist): Logical, data-driven analysis
  • BALTHASAR-2 (Nurturer): Team and human-centered perspective
  • CASPER-3 (Pragmatist): Practical, real-world considerations

Each persona votes: APPROVE, REJECT, or CONDITIONAL. The final decision is made by majority vote.

Adding Custom Workflows

Create your own workflow by adding YAML files to ~/.takt/workflows/:

# ~/.takt/workflows/my-workflow.yaml
name: my-workflow
description: My custom workflow

max_iterations: 5

steps:
  - name: analyze
    agent: ~/.takt/agents/my-agents/analyzer.md
    instruction_template: |
      Analyze this request: {task}
    transitions:
      - condition: done
        next_step: implement

  - name: implement
    agent: ~/.takt/agents/default/coder.md
    instruction_template: |
      Implement based on the analysis: {previous_response}
    pass_previous_response: true
    transitions:
      - condition: done
        next_step: COMPLETE

Specifying Agents by Path

Agents are specified using file paths in workflow definitions:

# Use built-in agents
agent: ~/.takt/agents/default/coder.md
agent: ~/.takt/agents/magi/melchior.md

# Use project-local agents
agent: ./.takt/agents/my-reviewer.md

# Use absolute paths
agent: /path/to/custom/agent.md

Create custom agent prompts as Markdown files:

# ~/.takt/agents/my-agents/reviewer.md

You are a code reviewer focused on security.

## Your Role
- Check for security vulnerabilities
- Verify input validation
- Review authentication logic

## Output Format
- [REVIEWER:APPROVE] if code is secure
- [REVIEWER:REJECT] if issues found (list them)

Using /run-tasks for Batch Processing

The /run-tasks command executes all task files in .takt/tasks/ directory:

# Create task files as you think of them
echo "Add unit tests for the auth module" > .takt/tasks/001-add-tests.md
echo "Refactor the database layer" > .takt/tasks/002-refactor-db.md
echo "Update API documentation" > .takt/tasks/003-update-docs.md

# Run all pending tasks
takt /run-tasks

How it works:

  • Tasks are executed in alphabetical order (use prefixes like 001-, 002- for ordering)
  • Each task file should contain a description of what needs to be done
  • Completed tasks are moved to .takt/completed/ with execution reports
  • New tasks added during execution will be picked up dynamically

Task file format:

# .takt/tasks/add-login-feature.md

Add a login feature to the application.

Requirements:
- Username and password fields
- Form validation
- Error handling for failed attempts

This is perfect for:

  • Brainstorming sessions where you capture ideas as files
  • Breaking down large features into smaller tasks
  • Automated pipelines that generate task files

Workflow Variables

Available variables in instruction_template:

Variable Description
{task} Original user request
{iteration} Current iteration number
{max_iterations} Maximum iterations
{previous_response} Previous step's output (requires pass_previous_response: true)
{user_inputs} Additional user inputs during workflow
{git_diff} Current git diff (uncommitted changes)

API Usage

import { WorkflowEngine, loadWorkflow } from 'takt';  // npm install takt

const config = loadWorkflow('default');
if (!config) {
  throw new Error('Workflow not found');
}
const engine = new WorkflowEngine(config, process.cwd(), 'My task');

engine.on('step:complete', (step, response) => {
  console.log(`${step.name}: ${response.status}`);
});

await engine.run();

Disclaimer

This project is a personal project developed at my own pace.

  • Response times: I may not be able to respond to issues immediately
  • Development style: This project is primarily developed using "vibe coding" (AI-assisted development) - use at your own risk
  • Pull requests:
    • Small, focused PRs (bug fixes, typos, docs) are welcome
    • Large PRs, especially AI-generated bulk changes, are difficult to review

See CONTRIBUTING.md for more details.

Docker Support

Docker environment is provided for testing in other environments:

# Build Docker images
docker compose build

# Run tests in container
docker compose run --rm test

# Run lint in container
docker compose run --rm lint

# Build only (skip tests)
docker compose run --rm build

This ensures the project works correctly in a clean Node.js 20 environment.

Documentation

License

MIT - See LICENSE for details.

Description
Fork of TAKT (Agent Koordination Topology) for Gitea Agent Orchestrator
Readme MIT 6.6 MiB
Languages
TypeScript 98.3%
HTML 1.6%