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:
bash
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)
bash
~/clawd/skills/craft-cli/craft config set-api https://connect.craft.do/links/5VruASgpXo0/api/v1
Personal Space
bash
~/clawd/skills/craft-cli/craft config set-api https://connect.craft.do/links/HHRuPxZZTJ6/api/v1
Quick Switch (Helper Script)
bash
# 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 current
Check current configuration:
bash
~/clawd/skills/craft-cli/craft config get-api
Commands
List Documents
bash
# 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 markdown
Search Documents
bash
# Search for documents ~/clawd/skills/craft-cli/craft search "query terms" # With table output ~/clawd/skills/craft-cli/craft search "query" --format table
Get Document
bash
# 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 markdown
Create Document
bash
# 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\nThis is content" # Create as child of another document ~/clawd/skills/craft-cli/craft create --title "Child Doc" --parent <parent-id>
Update Document
bash
# 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\nNew content" # Update both title and content ~/clawd/skills/craft-cli/craft update <document-id> --title "New Title" --file content.md
Delete Document
bash
~/clawd/skills/craft-cli/craft delete <document-id>
Info Commands
bash
# Show API info and recent documents ~/clawd/skills/craft-cli/craft info # List all available documents ~/clawd/skills/craft-cli/craft docs
Version
bash
~/clawd/skills/craft-cli/craft version
Output 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:
bash
~/clawd/skills/craft-cli/craft list --api-url https://connect.craft.do/links/ANOTHER_LINK/api/v1
Error 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 URL - •
resource not found- Document ID doesn't exist - •
rate limit exceeded. Retry later- Too many requests - •
no API URL configured. Run 'craft config set-api <url>' first- Missing config
Usage Examples
Workflow: List and Search
bash
# 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 table
Workflow: Create and Update
bash
# Create a new document ~/clawd/skills/craft-cli/craft create --title "Project Notes" --markdown "# Initial notes\n\nStart 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 markdown
Workflow: Export Document
bash
# Get a specific document and save to file ~/clawd/skills/craft-cli/craft get <doc-id> --output exported-notes.md
LLM Integration
bash
# 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