Skip to main content
Templates are starter projects that give you a working charm.yaml, source file, and dependency setup for a common agent pattern. Use a template when you want to start from a known runtime shape instead of wiring a manifest from scratch.

Create from a Template

charm init my-agent --template python
Then run:
cd my-agent
charm validate .
charm run . --input "Hello"

Template Categories

The first seven rows are CLI scaffolding templates: use charm init <dir> --template <id> with the exact IDs in each linked page (for example research-agent, not research). Run charm init --help or charm init . --interactive to see all IDs. The last three rows are configuration guides for common lifecycles and OAuth. They are not separate charm init template names—start from any scaffold above and adjust charm.yaml.
TemplateBest ForRuntime Shape
Python AgentMinimal custom Python agentsServerless
Research AgentTopic research and synthesisServerless
Code Review AgentDeveloper workflow automationServerless
Customer Support AgentSupport triage and response draftingDaemon
Data Pipeline AgentStructured processing and data workflowsServerless
Slack BotChat and workspace automationDaemon or integration-oriented
OpenClaw Skill AgentBrowser/tools-heavy agent executionFull runtime
Interactive AgentReal-time chat and streamingInteractive
Daemon AgentAlways-on background agentsDaemon
OAuth integrationAgents requiring user-authorized accountsAny lifecycle (via auth.providers)

Choosing a Template

  • Choose Python first if you are learning Charm.
  • Choose OpenClaw when the agent needs tool-rich browser or desktop-style automation.
  • Read the Interactive, Daemon, and OAuth integration guides when you need those runtime or auth shapes, then apply them to your manifest (possibly starting from python, openclaw, slack-bot, or customer-support-agent).

What Every Scaffolding Template Includes

  • charm.yaml manifest.
  • Agent entry point.
  • Dependency file.
  • Example input schema.
  • Runtime adapter configuration.
After selecting a template, review the manifest before publishing. The manifest controls how the Store renders inputs and how the runner executes your agent.