Skip to content

Sidekick Workflows & Examples

  1. Validate that the pack is available:
pnpm pack:validate --id sidekick
  1. Initialize workspace-local storage:

    tool: sidekick:init
    input: {}
  2. Confirm the pack state:

    tool: sidekick:status
    input: {}
tool: task:create
input: { "title": "Review docs", "priority": "P1", "tags": ["docs"] }
tool: task:update
input: { "id": "<task-id>", "description": "Check final Sidekick surface", "due_at": "2026-03-31T00:00:00Z" }
tool: task:cancel
input: { "id": "<task-id>", "dry_run": true }

Use dry_run first when you want to preview a destructive task transition without persistence.

Store, update, and recall workspace memory

Section titled “Store, update, and recall workspace memory”
tool: memory:store
input: { "type": "note", "content": "Sidekick pack validated", "tags": ["smoke-test"] }
tool: memory:update
input: { "id": "<memory-id>", "type": "snippet", "content": "task:cancel requires approval when executed for real" }
tool: memory:recall
input: { "query": "approval", "type": "snippet" }

Create, stop, and inspect a plan-only routine

Section titled “Create, stop, and inspect a plan-only routine”
tool: routine:create
input: {
  "name": "daily-review",
  "steps": [
    { "tool": "task:list", "input": { "status": "pending" } },
    { "tool": "sidekick:status", "input": {} }
  ]
}
tool: routine:run
input: { "id": "<routine-id>" }

routine:run returns the ordered plan. It does not execute the steps.

tool: routine:update
input: { "id": "<routine-id>", "enabled": false }

Use routine:update with enabled: false when a chat client needs to stop a routine without deleting it.

tool: channel:send
input: { "channel": "alerts", "content": "Docs workflow example" }
tool: channel:list
input: {}

channel:list returns local channel records with stable metadata such as message_count and last_message_at.

Write-capable and destructive tools support dry_run. Use it when you want validation and preview without persistence:

tool: task:create
input: { "title": "Draft only", "priority": "P2", "dry_run": true }

The response should include dry_run: true, and task:list should not show a persisted task.

When Sidekick runs through the kernel runtime, these tools are paused by policy evaluation until the host resolves approval:

  • task:cancel
  • memory:forget
  • channel:delete
  • routine:delete

Expect the first real execution attempt to return APPROVAL_REQUIRED. After approval resolution, the tool call proceeds and the audit trail records the final delete or cancel transition.

tool: sidekick:export
input: { "include_audit": true }

Use export when you need a full snapshot of Sidekick-managed state for debugging, review, or handoff.