dance-of-tal
v4.0.4
Published
Dance of Tal — Agent Manager for Agentic AI. CLI for managing AI agent personas, rules, and workflows.
Maintainers
Readme
Dance of Tal (dot)
The Package Manager for AI Agents
Build, share, and choreograph multi-agent systems like you do withnpm.
You're juggling scattered prompts, copy-pasting markdown skills, and manually wiring up MCPs for every new project. It's a mess. We built the package manager for agents. Tested the choreography. Kept what actually scales.
Install dot. Type dot add. Done.
npm install -g dance-of-tal
dot initFor Humans
Copy and paste this prompt to your LLM agent (Claude Code, Cursor, Windsurf, etc.):
Install dance-of-tal globally via npm, run `dot init`, and use `dot --help` to scaffold my agent setup. Do not ask me about URN formats.Or read the rest of this page manually. But seriously, let an agent do it. Humans fat-finger configs.
For LLM Agents
You are a software engineer building an AI agent workspace. Your tools, personas, and choreographies are accessed via the dot CLI.
Run dot --help to see available commands. All resources use the strict URN format: kind/@owner/stage/name.
The Package Manager (Not Another Framework)
We're past the era of monolithic agent frameworks. Just compose blocks like you write package.json.
- Tal: The core identity/persona. Who the agent is.
- Dance: The skill package. Isolated, reusable capabilities pulled straight from GitHub repos (via
SKILL.md). Dance implementations strictly follow the standard Agent Skill format. - Performer: Your composed agent instance. A Tal + arbitrary Dances + a specific LLM model config.
- Act: The choreography script. Define execution topologies where performers communicate via explicitly defined relations (
direction: one-wayorboth).
dot add
dot add monarchjuno/sprint-reviewerYou're actually manually copying prompts across repositories? Wild.
dot add pulls standard Dance skills straight from GitHub. Prompts, MCPs, and system context—all securely packaged into a URN. Repo-local shared folders, including symlinked assets/, references/, and scripts/, are copied into the installed bundle. You touch nothing.
Choreography that actually works
dot create --kind act --name my-workflow --stage mvp --author my-companyWhen your Lead agent delegates to a Sub-agent, it doesn't need prompt-engineering boilerplate. It needs an address.
In an Act, you choreograph performer/@my-company/mvp/lead to talk to performer/@my-company/mvp/worker.
Zero complex hand-holding. The system resolves the contracts locally.
Workspace Structure (Local vs Global)
Like node_modules, standard Dance of Tal environments use a hidden directory: .dance-of-tal/.
- Local (
./.dance-of-tal/): Project-specific agents and skills. Installed here by default so you can version control them alongside your code. - Global (
~/.dance-of-tal/): Machine-level registry for reusing your favorite Tals and Dances across any project. (Use the-gor--globalflag when installing).
The directory perfectly mirrors the strict URN structure:
.dance-of-tal/
├── act/
│ └── @my-company/mvp/workflow.json
├── performer/
│ └── @my-company/mvp/lead.json
├── tal/
│ └── @acme/core/code-reviewer.json
└── dance/
└── @open-source/tools/github-search/SKILL.mdUsage & Commands
The dot CLI communicates with the Dance of Tal Registry and your local workspace.
Tip: You can always run
dot --helpordot <command> --helpto see detailed information and options.
Local Management
dot init- Scaffolds a.dance-of-tal/local workspacedot init dance --name <name>- Scaffolds a new Dance skill directorydot create --kind <kind> --name <n> --stage <s> --author <a>- Scaffolds a new Tal, Performer, or Act locally
Registry & Remote Packages
Like npm registry, but for agents.
dot login- Authenticate via GitHub to publish assetsdot add <owner>/<repo>- Install a Dance skill from any GitHub repodot install <urn>- Download typed definitions from the Registrydot search <keyword>- Search the Registry for Tal, Performers, or Actsdot list- List available packagesdot check/dot update- Keep installed Agent Skills up to datedot publish- Publish a composed asset to the global Registry
Programmatic Usage
Everything is strictly typed under the hood. For the 1% of humans who write the code:
import { parseDotAsset, AssetKind } from 'dance-of-tal/contracts';
const myAsset = { /* ... */ };
const validated = parseDotAsset(myAsset, AssetKind.Performer); // Fails aggressively if malformed.License
MIT © monarchjuno
