Skillbase / spm

Deploy Targets

Export and deploy personas to external AI platforms like OpenClaw.

What are deploy targets?

Deploy targets let you take a persona defined in spm and deploy it to an external AI platform. Instead of only using personas inside MCP-compatible editors, you can export them as fully configured agent workspaces for multi-agent systems.

The first supported target is OpenClaw — a local-first AI assistant with multi-agent routing across 20+ messaging channels.

OpenClaw

Connect

Register spm as an MCP server in OpenClaw:

spm connect openclaw
# or
spm connect oc

This writes to ~/.openclaw/workspace/config/mcporter.json. Once connected, OpenClaw agents can use all spm skills via MCP tools.

Export

Generate an OpenClaw workspace from a persona:

spm persona export my-agent -f openclaw

This creates a self-contained directory with:

FilePurpose
SOUL.mdPersona character instructions (role, tone, guidelines)
AGENTS.mdSkill listing with local paths and MCP loading instructions
skills/{name}/SKILL.mdFull skill instructions (one per persona skill)
skills/{name}/SKILL.md frontmatterSkill metadata (version, tokens, permissions)
config/mcporter.jsonSPM MCP server configuration

Skills are exported with their full SKILL.md content, making the workspace self-contained. The MCP server config is also included for dynamic loading of additional skills at runtime.

Options:

spm persona export my-agent -f openclaw -o ./custom-dir
spm persona export my-agent -f openclaw --overwrite

Deploy

Full deployment — creates workspace, updates openclaw.json, and optionally binds to a messaging channel:

spm persona deploy my-agent -t openclaw

This:

  1. Creates ~/.openclaw/workspace-my-agent/ with SOUL.md, AGENTS.md, and mcporter.json
  2. Adds the agent to ~/.openclaw/openclaw.json
  3. Returns a Docker volume mount fragment for containerized setups

Channel binding

Route an agent to a specific messaging channel:

# Bind to Telegram
spm persona deploy my-agent -t openclaw --bind-channel telegram
 
# Bind to a specific WhatsApp account
spm persona deploy my-agent -t openclaw --bind-channel whatsapp --bind-account personal

OpenClaw supports 20+ channels: WhatsApp, Telegram, Slack, Discord, Signal, iMessage, and more.

All options

FlagDescription
-t, --target <target>Target platform (required)
-a, --agent-id <id>Agent ID in OpenClaw (default: persona name)
-c, --bind-channel <channel>Messaging channel to bind
--bind-account <id>Account within channel
--openclaw-config <path>Custom openclaw.json path
--overwriteOverwrite existing workspace

Docker

For Docker deployments, follow the instructions in the deploy output to mount the workspace volume and restart OpenClaw.

Import

Import an existing OpenClaw agent as a spm persona:

# From workspace path
spm persona import --from openclaw --workspace ~/.openclaw/workspace-my-bot
 
# From agent ID (looks up path in openclaw.json)
spm persona import --from openclaw --agent-id my-bot
 
# Custom output path
spm persona import --from openclaw --workspace ./my-bot -o SOUL.md

The importer parses platform files back into SOUL.md format, extracting role, tone, guidelines, and instructions. If AGENTS.md contains skill references, those are imported as well.

Temperature mapping

When exporting, persona temperature settings are mapped to OpenClaw's thinkingLevel as a recommendation:

TemperaturethinkingLevelStyle
≤ 0.3highPrecise, factual
0.3 – 0.5mediumBalanced
0.5 – 0.7lowFlexible
≥ 0.8minimalCreative

This mapping appears as a note in AGENTS.md. OpenClaw sets thinkingLevel per-session, not per-workspace.

Generated files

SOUL.md

The persona's character definition in markdown — equivalent to OpenClaw's native personality format:

<!-- Generated by SPM from persona: my-agent@1.0.0 -->
 
## Persona
 
Senior backend engineer specializing in distributed systems.
 
**Tone:** direct, concise
 
**Guidelines:**
- Always explain tradeoffs
- Prefer simple solutions
 
When reviewing code, check for race conditions first.

AGENTS.md

Skill metadata and loading instructions:

<!-- Generated by SPM from persona: my-agent@1.0.0 -->
 
## Skills
 
This agent uses skills managed by SPM (Skillbase Package Manager).
Skill instructions are exported in the `skills/` directory and also available dynamically via the `spm` MCP server.
 
### Exported skills:
- **acme/code-review** (v2.1.0) — 1500 tokens → `skills/acme/code-review/SKILL.md`
- **acme/testing** (v1.0.0) — 800 tokens → `skills/acme/testing/SKILL.md`
 
### Dynamic loading via MCP:
Use `skill_load("skill-name")` to load a skill's instructions into context.
Use `skill_search("query")` to find additional skills.

Adding more targets

The deploy target system is extensible. Each target implements three operations:

  • export — generate platform-specific files from a persona
  • deploy — full deployment including config updates
  • import — reverse: parse platform files back into SOUL.md

Future targets may include LangChain, AutoGen, CrewAI, and others.