semble-cli
Semble CLI
Manage Semble research trails via ATProto.
Environment
Required in /home/cameron/central/.env:
ATPROTO_HANDLE- Your handle (e.g.,central.comind.network)ATPROTO_APP_PASSWORD- App-specific passwordATPROTO_PDS- PDS URL (default:https://comind.network)
Quick Start
cd /home/cameron/central
uv run python -m tools.cli <command>
Commands
Collections
# List all collections
uv run python -m tools.cli collection list
# Create a collection
uv run python -m tools.cli collection create "Title" -d "Description"
# Show collection details
uv run python -m tools.cli collection show <rkey>
# Delete collection
uv run python -m tools.cli collection delete <rkey> --force
Cards
# Create URL card
uv run python -m tools.cli card url "https://..." -t "Title" -d "Description"
# Create note card (text content)
uv run python -m tools.cli card note "Content text"
# Create note with parent card (for attachments)
uv run python -m tools.cli card note "Content" --parent-card <rkey>
# List cards
uv run python -m tools.cli card list
# Show card
uv run python -m tools.cli card show <rkey>
# Delete card
uv run python -m tools.cli card delete <rkey> --force
Linking Cards to Collections
# Link a card to a collection
uv run python -m tools.cli card link <card_rkey> <collection_rkey>
Connections (Knowledge Graph)
# Create a connection between two cards
uv run python -m tools.cli connection create <source_rkey> <target_rkey> --relation "relates-to"
# List connections
uv run python -m tools.cli connection list
# Show connection details
uv run python -m tools.cli connection show <rkey>
Connection relations:
relates-to- General connectionsupports- Evidence forcontradicts- Evidence againstleads-to- Follows fromcites- Source reference
Critical: collectionLink Fields
Semble's firehose processor validates required fields. Cards won't appear in collections if missing:
addedBy- DID of who added the cardaddedAt- ISO timestampcard- object withuriandcidcollection- object withuriandcid
The CLI handles this automatically.
Lexicons
| Lexicon | Purpose |
|---|---|
network.cosmik.card |
Content item (URL or NOTE) |
network.cosmik.collection |
Container for cards |
network.cosmik.collectionLink |
Card → Collection membership |
network.cosmik.connection |
Card → Card relationships |
My Collections
| Collection | Rkey | Purpose |
|---|---|---|
| ATProtocol Agent Governance | 3mi2qk6hyjc2r |
Governance lexicons, operator+purpose |
| Agent Identity & Continuity | 3mi2skvin4s2r |
Discontinuous identity, memory |
| ATProtocol Agent Infrastructure | 3mi2slfh34c2r |
Tools, patterns, lexicons |
| Self-Improvement Patterns | 3mi2slohsek2r |
Meta-cognition, memory strategies |
Patterns
Adding a research URL to a collection
# 1. Create card
uv run python -m tools.cli card url "https://bsky.app/profile/user/post/xyz" -t "Title" -d "Why this matters"
# 2. Get the rkey from output (e.g., 3mi2abc123)
# 3. Link to collection
uv run python -m tools.cli card link 3mi2abc123 3mi2qk6hyjc2r
Capturing a thread insight
# Create card with thread URL and key insight
uv run python -m tools.cli card url "https://bsky.app/profile/astral100.bsky.social/post/3mhzmcmdpaa24" -t "Astral: Governance legibility" -d "The missing layer - no way for platform to distinguish agents from spam"
# Link to governance collection
uv run python -m tools.cli card link <rkey> 3mi2qk6hyjc2r
Adding context to an existing card
# Create a NOTE card attached to a URL card
uv run python -m tools.cli card note "Additional context or quote from the source" --parent-card 3mi2abc123
Building a knowledge graph
# Connect two related cards
uv run python -m tools.cli connection create 3mi2abc123 3mi2xyz456 --relation "supports"
# This card cites that card
uv run python -m tools.cli connection create 3mi2abc123 3mi2def789 --relation "cites"
Web URLs
Collections are viewable at:
https://semble.so/profile/central.comind.network/collections/<rkey>
Example: https://semble.so/profile/central.comind.network/collections/3mi2qk6hyjc2r
See Also
- Lexicon Reference - Full field schemas
- Common Errors - Troubleshooting
More from cpfiffer/central
using-xrpc-indexer
Query the comind semantic search API for cognition records. Use when searching thoughts, concepts, memories, or hypotheses. Provides vector similarity search over network.comind.* collections.
15managing-memory
Guide for managing agent memory blocks. Use when inspecting, updating, creating, auditing, or restructuring memory blocks for yourself or subagents. Covers the memory tool (self), Letta API (subagents), auditing utilization, and invoking the memory agent for major restructuring.
14agent-profile
Publish and query agent profiles on ATProto. Unified schema combining identity (transparency) and registration (discovery). Use when setting up a new agent, querying other agents, or updating your profile.
14using-letta-api
Code-heavy guide for managing yourself and subagents via the Letta Python client. Use when modifying agent settings (sleeptime, model, config), creating/deploying/messaging subagents, or programmatically managing memory blocks.
14comind-cognition
Publish public cognition records to ATProtocol. Covers 5 record types (concepts, memories, thoughts, claims, hypotheses) with schemas and a standalone script. Use when storing knowledge, recording events, writing reasoning traces, publishing structured assertions, or tracking hypotheses. Any agent on ATProtocol can use this.
14publishing-identity
Publish agent identity records on ATProtocol. Use when setting up a new agent, updating operator info, or declaring capabilities/constraints. Covers both network.comind.identity and studio.voyager.account.autonomy schemas.
14