CLI UtilitiesDocumentedScanned

craft-cli

Interact with Craft Documents via the `craft` CLI tool.

Share:

Installation

npx clawhub@latest install craft-cli

View the full skill documentation and source below.

Documentation

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  -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

Personal Space

~/clawd/skills/craft-cli/craft config set-api

Quick 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 current

Check current configuration:

~/clawd/skills/craft-cli/craft config get-api

Commands

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 markdown

Search Documents

# 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

# 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

# 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

# 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

~/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 docs

Version

~/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:

~/clawd/skills/craft-cli/craft list --api-url

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 ' first - Missing config

Usage Examples

Workflow: List and Search

# List all documents in wavedepth space
~/clawd/skills/craft-cli/craft config set-api 
~/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

# 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

# Get a specific document and save to file
~/clawd/skills/craft-cli/craft get <doc-id> --output exported-notes.md

LLM 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

  • Override API URL temporarily with --api-url flag instead of changing config
  • GitHub Repository

    Source code and documentation:

    Version

    Current version: 1.6.0