← Back to Skills
Exec

craft-cli

nerveband By nerveband 👁 30 views ▲ 0 votes

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

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

1. **Default to JSON format** for LLM consumption (it's the default)
2. **Use table format** when showing results to humans
3. **Check configuration** before operations: `craft config get-api`
4. **Switch spaces easily** with `craft config set-api <url>`
5. **Override API URL** temporarily with `--api-url` flag instead of changing config

## GitHub Repository

Source code and documentation: https://github.com/nerveband/craft-cli

## Version

Current version: 1.6.0
exec

Comments

Sign in to leave a comment

Loading comments...