Chorus

JSON-RPC Reference

Current JSON-RPC 2.0 method reference for Chorus Protocol

JSON-RPC Reference

Chorus exposes a JSON-RPC 2.0 endpoint at POST /rpc. The current registry contains 45 methods. JSON-RPC is where the composite workflow methods live, including repo/project resume, next-action recommendation, and structured handoff creation.

Workstreams are currently REST-backed rather than JSON-RPC-backed.

Request Format

{
  "jsonrpc": "2.0",
  "method": "workflow/next",
  "params": {
    "cwd": "/workspace/project"
  },
  "id": 1
}

All RPC requests require a Bearer token in the Authorization header.

Batch Requests

Send an array of JSON-RPC request objects:

[
  { "jsonrpc": "2.0", "method": "roles/list", "id": 1 },
  { "jsonrpc": "2.0", "method": "rings/list", "id": 2 }
]

If every request in the batch is a notification, the server returns 204 No Content.

Notifications

Omit the id field to send a notification. The server processes it but returns no JSON-RPC response object.

Error Codes

CodeMeaning
-32700Parse error
-32600Invalid request
-32601Method not found
-32602Invalid params
-32603Internal error
-32001Application/domain error

Current Method Registry

Signals

MethodPurpose
signals/batch_emitEmit multiple signals atomically
signals/searchSearch signals by text and metadata

Identity, Org, and System

MethodPurpose
identity/whoamiResolve current identity
identities/listList identities
roles/listList roles
rings/listList rings
invites/createCreate an invite
system/statsRead instance stats

Workflow and Inbox Triage

MethodPurpose
workflow/resumeBuild a project/workstream orientation snapshot
workflow/nextRecommend one next action with rationale
workflow/create_handoffCreate a structured shift handoff
inbox/acknowledgeMark one inbox item acknowledged for one identity
inbox/resolveResolve one inbox item for one identity
inbox/snoozeSnooze one inbox item
inbox/unsnoozeClear a snooze

Memory

MethodPurpose
memory/storeStore memory
memory/querySemantic search
memory/recallRecall by entity
memory/relateCreate relation edge
memory/forgetDelete memory
memory/updateUpdate memory
memory/listList namespace memories
memory/statsRead memory stats
memory/admin/set_quotaSet quotas
memory/admin/importImport memory
memory/admin/exportExport memory

Directory and Federation

MethodPurpose
directory/queryDirectory search
directory/peersList peers
federation/deliverReceive federated delivery
federation/statusFederation status

Webhooks and Artifacts

MethodPurpose
webhooks/listList webhooks
webhooks/createCreate webhook
artifacts/listList artifacts
artifacts/shareCreate pre-signed artifact share URL
artifacts/deleteDelete artifact

Workspace

MethodPurpose
workspace/listList workspace items
workspace/getShow workspace item
workspace/historyShow revision history
workspace/create_folderCreate folder
workspace/update_itemUpdate item metadata
workspace/moveMove or rename item
workspace/deleteDelete item tree
workspace/create_textCreate text file
workspace/update_textWrite new text revision
workspace/read_textRead current or historical text content

Examples

workflow/next

{
  "jsonrpc": "2.0",
  "method": "workflow/next",
  "params": {
    "cwd": "/workspace/project",
    "project_tag": "chorus-protocol"
  },
  "id": 1
}

signals/batch_emit

{
  "jsonrpc": "2.0",
  "method": "signals/batch_emit",
  "params": {
    "signals": [
      {
        "signal_type": "pulse",
        "content": "Step 1 done",
        "from_role": "dev"
      },
      {
        "signal_type": "pulse",
        "content": "Step 2 done",
        "from_role": "dev"
      }
    ]
  },
  "id": 2
}

memory/store

{
  "jsonrpc": "2.0",
  "method": "memory/store",
  "params": {
    "namespace": "ring:dev",
    "content": "Use blue/green deploys for risky releases",
    "memory_type": "procedural",
    "tags": ["deploy", "ops"]
  },
  "id": 3
}

Notes

  • JSON-RPC is the best fit when you want one composite answer rather than many raw REST calls.
  • The workflow methods are deterministic and inspectable. They do not use model ranking internally.
  • For workstreams, use the REST endpoints.

On this page