Craft CLI Skill
Interact with Craft Documents via the craft CLI tool. Fast, token-efficient, LLM-ready.
Installation
The craft CLI binary should be installed at /usr/local/bin/craft.
If not installed:
curl -L https://github.com/nerveband/craft-cli/releases/download/v1.0.0/craft-darwin-arm64 -o craft
chmod +x craft
sudo mv craft /usr/local/bin/Configuration
Two Craft spaces are available:
wavedepth Space (Business)
~/clawd/skills/craft-cli/craft config set-api https://connect.craft.do/links/5VruASgpXo0/api/v1Personal Space
~/clawd/skills/craft-cli/craft config set-api https://connect.craft.do/links/HHRuPxZZTJ6/api/v1Quick Switch (Helper Script)
# Switch to wavedepth space
~/clawd/skills/craft-cli/craft-helper.sh wavedepth
# Switch to personal space
~/clawd/skills/craft-cli/craft-helper.sh personal
# Check current space
~/clawd/skills/craft-cli/craft-helper.sh currentCheck current configuration:
~/clawd/skills/craft-cli/craft config get-apiCommands
List Documents
# JSON format (default - LLM-friendly)
~/clawd/skills/craft-cli/craft list
# Human-readable table
~/clawd/skills/craft-cli/craft list --format table
# Markdown format
~/clawd/skills/craft-cli/craft list --format markdownSearch Documents
# Search for documents
~/clawd/skills/craft-cli/craft search "query terms"
# With table output
~/clawd/skills/craft-cli/craft search "query" --format tableGet Document
# Get document by ID (JSON)
~/clawd/skills/craft-cli/craft get <document-id>
# Save to file
~/clawd/skills/craft-cli/craft get <document-id> --output document.md
# Different format
~/clawd/skills/craft-cli/craft get <document-id> --format markdownCreate Document
# Create with title only
~/clawd/skills/craft-cli/craft create --title "My New Document"
# Create from file
~/clawd/skills/craft-cli/craft create --title "My Document" --file content.md
# Create with inline markdown
~/clawd/skills/craft-cli/craft create --title "Quick Note" --markdown "# Hello\
This is content"
# Create as child of another document
~/clawd/skills/craft-cli/craft create --title "Child Doc" --parent <parent-id>Update Document
# Update title
~/clawd/skills/craft-cli/craft update <document-id> --title "New Title"
# Update from file
~/clawd/skills/craft-cli/craft update <document-id> --file updated-content.md
# Update with inline markdown
~/clawd/skills/craft-cli/craft update <document-id> --markdown "# Updated\
New content"
# Update both title and content
~/clawd/skills/craft-cli/craft update <document-id> --title "New Title" --file content.mdDelete Document
~/clawd/skills/craft-cli/craft delete <document-id>Info Commands
# Show API info and recent documents
~/clawd/skills/craft-cli/craft info
# List all available documents
~/clawd/skills/craft-cli/craft docsVersion
~/clawd/skills/craft-cli/craft versionOutput Formats
- json (default): Machine-readable JSON, ideal for LLMs and scripts
- table: Human-readable table format
- markdown: Markdown-formatted output
Set default format in config or use --format flag per command.
API URL Override
Override the configured API URL for any command:
~/clawd/skills/craft-cli/craft list --api-url https://connect.craft.do/links/ANOTHER_LINK/api/v1Error Handling
The CLI provides clear error messages with exit codes:
- Exit Code 0: Success
- Exit Code 1: User error (invalid input, missing arguments)
- Exit Code 2: API error (server-side issues)
- Exit Code 3: Configuration error
Common errors:
authentication failed. Check API URL- Invalid/unauthorized API URLresource not found- Document ID doesn't existrate limit exceeded. Retry later- Too many requestsno API URL configured. Run 'craft config set-api <url>' first- Missing config
Usage Examples
Workflow: List and Search
# List all documents in wavedepth space
~/clawd/skills/craft-cli/craft config set-api https://connect.craft.do/links/5VruASgpXo0/api/v1
~/clawd/skills/craft-cli/craft list --format table
# Search for specific documents
~/clawd/skills/craft-cli/craft search "proposal" --format tableWorkflow: Create and Update
# Create a new document
~/clawd/skills/craft-cli/craft create --title "Project Notes" --markdown "# Initial notes\
\
Start here."
# Get the document ID from output, then update
~/clawd/skills/craft-cli/craft update <doc-id> --title "Updated Project Notes"
# Verify the update
~/clawd/skills/craft-cli/craft get <doc-id> --format markdownWorkflow: Export Document
# Get a specific document and save to file
~/clawd/skills/craft-cli/craft get <doc-id> --output exported-notes.mdLLM Integration
# Get all documents as JSON (pipe to processing)
~/clawd/skills/craft-cli/craft list | jq '.[] | {id, title}'
# Search and extract specific fields
~/clawd/skills/craft-cli/craft search "meeting" | jq '.[].title'Tips
- Default to JSON format for LLM consumption (it's the default)
- Use table format when showing results to humans
- Check configuration before operations:
craft config get-api - Switch spaces easily with
craft config set-api <url> - Override API URL temporarily with
--api-urlflag instead of changing config
GitHub Repository
Source code and documentation: https://github.com/nerveband/craft-cli
Version
Current version: 1.6.0