theta: a humble approach to harness agnostic configuration
theta is a Rust CLI that manages agent configurations by reading a theta.toml file, resolving, locking, materializing, and casting them to any supported harness (e.g., Claude Code, Codex CLI, GitHub Copilot, Cursor). It works like a package manager for agent harness resources. Installation is straightforward, and it supports adding rules, tools, skills, and subagents, with validation and casting commands. The project is heavily inspired by uv and is the canonical implementation of the theta-spec.
Article intelligence
Key points
- theta is a Rust CLI for managing agent configurations
- Supports multiple harnesses: Claude Code, Codex CLI, GitHub Copilot, Cursor, and more
- Provides commands like init, add, check, cast, acting like a package manager
- Canonical implementation of the theta-spec, inspired by uv
Why it matters
This matters because theta is a Rust CLI for managing agent configurations.
Technical impact
May affect model selection, inference cost, product capability, and evaluation benchmarks.
Notifications You must be signed in to change notification settings
Fork 0
Star 4
BranchesTags
Open more actions menu
Folders and files
NameName
Last commit message
Last commit date
Latest commit
History
11 Commits
11 Commits
.github/workflows
.github/workflows
assets
assets
crates
crates
docs
docs
scripts
scripts
test
test
.gitattributes
.gitattributes
.gitignore
.gitignore
Cargo.lock
Cargo.lock
Cargo.toml
Cargo.toml
README.md
README.md
STYLE.md
STYLE.md
_typos.toml
_typos.toml
deny.toml
deny.toml
justfile
justfile
lefthook.yml
lefthook.yml
mkdocs.yml
mkdocs.yml
pyproject.toml
pyproject.toml
uv.lock
uv.lock
Repository files navigation
Rust CLI for managing agent configurations defined by theta-spec.
Installation
curl -sfL https://raw.githubusercontent.com/tamarillo-ai/theta/main/scripts/install.sh | bash
Quick start
theta init # scaffold theta.toml theta add rule python-types # add a rule theta add tool fetch --command "uvx mcp-server-fetch" # MCP tool (stdio) theta add tool context7 --command "npx -y @upstash/context7-mcp@latest" # another MCP tool theta add skill vercel-labs/agent-skills/skills/web-design-guidelines@main # skill from GitHub theta check # validate everything theta cast to claude-code # --> CLAUDE.md + .mcp.json + .claude/
What it does
theta reads theta.toml and resolves, locks, materializes, and casts agent configurations to any supported harness by solving resources in a common .theta/ folder. Like a package manager but for agent harness resources.
Create from harnesses
Natively supported harnesses include:
Claude Code
Codex CLI
GitHub Copilot
Cursor
cd /path/to/your/project theta cast from claude-code
Commands
Group Commands
Lifecycle init, check, lock, sync, cast to, cast from, tree
Dependencies add rule/system/tool/skill/subagent, rm rule/system/tool/skill/subagent
Inspection describe, list rules/tools/skills/subagents
System store register skill/rule/agent, list store, rm store, init --from
Documentation
Full docs: theta, and it is more than recommended to read theta-spec first, given that this is the standard that theta implements against.
Getting started
Concepts — manifest, sources, locking, casting, system store
CLI reference — every verb, every flag
Settings — environment variables, directory overrides
Or alternatively build the docs locally:
uv run mkdocs serve --livereload
Regenerate CLI reference from clap definitions:
just gen-cli-docs
Contributing
Prerequisites
Rust stable toolchain (see rust-version in Cargo.toml for MSRV)
just — task runner (cargo install just)
lefthook — git hooks (installation guide)
All other dev tools (nextest, deny, shear, typos) are installed via just install-tools.
Setup
git clone [email protected]:tamarillo-ai/theta.git cd theta just setup # installs dev tools, hooks, fetches deps
Common tasks
just --list # see all available recipes just test # local tests (no network) just test-online # tests including live registries just check # run all CI checks locally just gen-cli-docs # regenerate docs/reference/cli.md just fmt # format all code
Conventions
See STYLE.md for documentation style
clippy::pedantic is enabled workspace-wide — check [workspace.lints.clippy] in Cargo.toml for allowed lints
Hypertextuality with theta-spec
theta is the canonical implementation of theta-spec. Behavioral changes in theta SHOULD be accompanied by a respective change in theta-spec. Hotfixes, refactors, and non-protocol changes MAY be pushed without a change in theta-spec. Version-modification-triggering changes MUST follow from a TEP.
Acknowledgments
theta's architecture is heavily inspired by uv by astral. Direct signals of devotion, admiration, and almost plagiarism include:
Settings cascade — CLI flag > env var > default, inspired by uv-settings (cited in source)
Git fetch and cache — 3-tier layout (db/checkouts/locks), system git CLI, url digest keying — derived from uv-git
Lock file design — deterministic manifest hash, content hashing with sha256: prefix, staleness detection, and others
toml_edit for formatting preservation — same approach as uv's pyproject_mut
Materialization lifecycle — .theta/ mirrors uv's .venv/: lock --> materialize --> verify consistency --> cleanup orphans
Output stack — owo-colors + anstream + fs-err + indicatif
See also
theta-spec — the standard
Agent Skills spec — skill packaging format
MCP — tool protocol
uv — architectural reference
About
canonical implementation of the theta-spec
Resources
Readme
Uh oh!
There was an error while loading. Please reload this page.
Activity
Custom properties
Stars
4 stars
Watchers
0 watching
Forks
0 forks
Report repository
Releases 2
v0.1.1
Latest
May 26, 2026
+ 1 release
Packages 0
Uh oh!
There was an error while loading. Please reload this page.
Contributors
Uh oh!
There was an error while loading. Please reload this page.
Languages
Rust 99.2%
Other 0.8%