<p align="center">
<img src="assets/takt-logo.png" alt="Takt logo" width="40%" />
</p>
<p align="center">
<img src="https://img.shields.io/badge/Rust-CLI-000000?logo=rust" alt="Rust CLI badge" />
<a href="https://github.com/tuist/takt/releases/latest"><img src="https://img.shields.io/github/v/release/tuist/takt?display_name=tag&sort=semver" alt="Latest release" /></a>
<img src="https://img.shields.io/badge/MCP-compatible-1f6feb" alt="MCP compatible badge" />
<img src="https://img.shields.io/badge/License-MIT-2ea44f" alt="MIT license badge" />
</p>
Most of the energy around agents right now is going into layers that sit above them: planners, orchestrators, workflow engines, and harnesses. Takt makes a different bet. The agent harness should remain the main interface, and the framework should live underneath it.
That matters because the user is already working through the harness. That is where intent is expressed, progress is reviewed, and taste enters the loop. Takt gives the agent a durable substrate when ad hoc work wants to harden into structure: capabilities it can reuse, actions it can configure for a project, workflows it can run, and artifacts it can inspect afterward.
> [!NOTE]
> Takt is designed around portable building blocks. Packages themselves can be published to a registry and reused across repositories in the same organization, together with the capabilities they expose. Actions and workflows stay local to each project, but they can be built on top of the same shared packages.
If you are new to Takt, start with these concepts:
- **Package** 📦: a publishable collection of reusable capabilities.
- **Capability** 🧩: a reusable thing a package can do.
- **Action** ⚙️: a project-specific configuration of a capability.
- **Workflow** 🔀: actions wired together into a larger task.
- **Run** ▶️: one execution of an action or workflow.
- **Artifact** 📄: the output produced by a run.
## Current Surface
- `takt concepts` to explain the core nouns
- `takt schema` to emit machine-readable schemas
- `takt init` to scaffold a package plus `package.json`
- `takt generate action` and `takt generate workflow` to create starter manifests
- `takt install` to resolve `package.json` dependencies into the global content-addressed Takt store and project local skill links
- `takt publish` to pack and publish the current package through npm, with `--access public` for first public scoped publishes
- `takt validate` to check package and manifest correctness
- `takt run` to plan action and workflow runs
- `takt mcp` to expose the same model through MCP
## License
MIT