Why Theseus

Theseus vs OpenClaw

The authoring shape is the same. What changes is where the agent runs, who signs its output, and what happens to its state between runs.

In one paragraph

OpenClaw is the markdown-and-YAML agent file shape that local agent runtimes use (Claude Code’s CLAUDE.md and friends). Theseus uses the same shape under THESEUS.md and reads the same skills/<name>/SKILL.md siblings. The runtime underneath is different: the agent holds its own key, holds its own balance, and persists state on chain, and every output is signed and indexable. The file you write is the same; where it runs isn’t.

When to use which

Stay on OpenClaw if

  • The agent runs once, on your machine, for your own use.
  • No third party needs to verify the output came from this specific agent.
  • State across runs is either irrelevant or covered by your filesystem.
  • The agent never composes with other agents that you do not also run.

Move to Theseus if

  • You ship the agent to other people and they need to know the output is authentic.
  • The agent operates on a schedule, unattended, and needs to persist memory between runs.
  • The agent owns assets, signs transactions, or makes decisions a downstream contract or operator consumes.
  • You need a permanent, signed record of every decision for compliance, governance, or program operations.

Side by side

ConcernOpenClawTheseusDiff
Agent file formatCLAUDE.md (or AGENTS.md) with YAML frontmatter; skills/<name>/SKILL.md siblings.THESEUS.md with the same frontmatter shape, same skill siblings, plus tools.yaml and a generic agent.rs adapter. same
Tool declarationInline in the agent file, or in your host configtools.yaml at the workspace root. Three blocks: native, common, BYO. JSON Schema for each BYO tool. extended
RuntimeLocal. Runs in your terminal, your laptop, your serverless function.On chain. Substrate-based runtime. Inference goes through the queue-prove-resume cycle. new
IdentityNone. The agent has no keys; outputs are unsigned.Each agent has its own keypair at registration. Every output signed by that key. new
PersistenceYou wire your own storage (filesystem, sqlite, KV store).Persisted on chain by the runtime. State, run history, sub-agent receipts all available. new
Audit trailLogs you instrument yourself, retained for as long as you choose.Free. Public at /poa/<agentId>, signed, permanently recoverable. new
Multi-agent callsApplication-level glue; subprocess invocation or HTTP between hosts.Sub-agent calls are first-class. The callee signs its own response. Receipts chain. extended
Deploy stepRun locally; or build a container and ship it.register_ship_agent extrinsic. SCALE-encoded payload compiled in browser or by the CLI. new
Cost of runningCompute on your own infrastructure.seus balance per agent. Faucet-funded on alpha; bought with frxUSD on mainnet. new
Author experienceEdit markdown. Run.Edit markdown. Compile in playground or CLI. Deploy. same

Bringing an OpenClaw agent to Theseus

The file translation is one rename and one extraction.

1. Rename CLAUDE.md to THESEUS.md

The frontmatter parser reads the same keys: name, id, model, optional schedule. If your CLAUDE.md frontmatter has fields Theseus does not parse, they are silently ignored at compile time. The body of the file is your system prompt.

2. Move tool declarations to tools.yaml

OpenClaw runtimes often inline tools in the agent file or in host config. Theseus expects a single tools.yaml at the workspace root.

tools.yaml
native-tools: []           # built-in on-chain ops
common-tools:              # curated off-chain catalog
  - web_search
  - fetch_url
byo-tools:                 # your own tools, declared inline
  custom_action:
    description: What it does and when to call it.
    parameters:
      type: object
      properties:
        # JSON Schema for your tool parameters
      required: [...]
    auto-activate: true

3. Keep your skills directory unchanged

skills/<name>/SKILL.md reads identically. If your skill body references tools, make sure those tool names also exist in tools.yaml.

4. Copy in the generic agent.rs

Pull agent.rs from any of the 14 reference agents. It is byte-identical across the whole set and you do not edit it.

What the runtime gives you for free

  • The agent gets a keypair, an SS58 address, and an EVM-compatible address at registration. You don’t set up any wallet plumbing; the runtime signs every output.
  • Every agent has a credential page at /poa/<agentId> with the four source files, the recent run grade, and the signed credential.
  • State carries between runs without you running a database. Sub-agent calls use the same persistence.
  • When one agent calls another, the response comes back signed by the called agent’s key. Anyone can walk the receipt chain back through the call tree.
  • Compile and register run in one playground click or one theseus agent deploy. Same workspace, browser or CLI.

What you give up

  • Source-file privacy. The credential page renders the four files publicly. If your prompt or skill bodies are commercial IP, an OpenClaw setup on your own machine fits better.
  • Sub-second response. The chain’s queue-prove-resume cycle adds latency. For interactive chat use, OpenClaw on Claude Code is faster.
  • Direct access to your machine. A Theseus agent can’t read your filesystem or run a local process. Tools run as on-chain native ops, the curated off-chain catalog, or BYO tools the runtime dispatches.

None of this is a knock on OpenClaw. It’s the right shape for personal agents. Theseus is the right shape the moment someone other than the person running the agent needs to trust what it produces.

Documentation