Browse sections
taito.spec
The taito.spec file is the JSON manifest that defines a Taito package. Every skill, agent, or bundle must contain a valid taito.spec file in its root directory to be packaged, distributed, and installed via the Taito CLI.
You can easily generate a basic taito.spec file in your project by running:
$ taito initExamples
1.1 Skill or Agent
{
"taitoVersion": "0.1.0",
"type": "skill",
"name": "git-commit-helper",
"version": "1.0.0",
"description": "Helps write conventional git commit messages.",
"author": {
"name": "Jane Doe",
"email": "jane@example.com"
},
"license": "MIT",
"keywords": ["git", "productivity"]
}1.2 Bundle
{
"type": "bundle",
"name": "devops-toolkit",
"version": "2.1.0",
"description": "A collection of agents and skills for DevOps workflows.",
"includes": [
"./skills/docker-deploy",
"./agents/infrastructure-agent"
]
}Fields Reference
2.1 type
Type: String | Required: Yes
The package type. Must be exactly "skill", "agent", or "bundle".
2.2 name
Type: String | Required: Yes
The unique name of the package. Must match ^[a-z0-9][a-z0-9_-]*$ and be a maximum of 128 characters.
2.3 version
Type: String | Required: No
The semantic version of the package (e.g., "1.0.0"). Must be valid semver.
2.4 taitoVersion
Type: String | Required: No
The minimum required version of the Taito CLI to run this package (e.g., "0.1.0"). Must be valid semver.
2.5 description
Type: String | Required: No A short summary of what the package does. Maximum 500 characters.
2.6 source
Type: String | Required: No The URL to the source repository or homepage.
2.7 author
Type: Object | Required: No
The author information. If provided, the name property is required. Can optionally include email and url.
2.8 license
Type: String | Required: No
The license under which the package is distributed (e.g., "MIT", "Apache-2.0").
2.9 keywords
Type: Array | Required: No
Array of strings for discoverability. Max 20 items. Each keyword must match ^[a-z0-9][a-z0-9_-]*$ and be a max of 64 characters.
2.10 includes
Type: Array | Required: Bundles Only Array of relative paths pointing to child skills/agents. See the Bundles section below.
How Bundles Work
A bundle is a special type of package designed to group multiple skills and agents together into a single distributable artifact.
Instead of containing executable logic itself, a bundle acts as a parent directory containing child packages. When a user installs a bundle, Taito reads the bundle's taito.spec file and automatically installs all the child packages referenced in the includes array.
3.1 Rules for Bundles (includes)
- The
includesfield is only valid when"type": "bundle". - Every item in the
includesarray must be a relative path pointing to a subdirectory within the bundle. (e.g.,"./agents/my-agent"). - Absolute paths (e.g.,
"/home/user/agent") are strictly prohibited. - Path traversal above the bundle's root directory using
..is strictly prohibited. - The target directory of an
includespath must contain its own validtaito.specfile (which defines it as askilloragent).