Introduction

CLI Introduction

Control Contextium from the command line with the official CLI tool.

What is the Contextium CLI?

The Contextium CLI is a command-line tool for:

  • Creating and editing files
  • Managing projects and folders
  • Viewing version history
  • Adding comments
  • Searching documentation
  • Bulk operations
  • CI/CD integration

Perfect for:

  • Developers who prefer terminal workflows
  • Automated documentation updates
  • CI/CD pipelines
  • Scripting and automation
  • Bulk content management

Requirements

Plan Requirements

CLI access requires:

  • Professional plan or higher
  • Starter plan does not include CLI access

System Requirements

  • macOS, Linux, or Windows
  • Node.js 18+ (or download standalone binary)
  • Terminal or command prompt

Installation

Install via npm

npm install -g @contextium/cli

Verify installation:

doxhub --version

Install via Homebrew (macOS/Linux)

brew install doxhub/tap/doxhub

Download Binary

Download standalone binaries from releases page:

  • macOS: contextium-macos
  • Linux: contextium-linux
  • Windows: contextium-windows.exe

Make executable and add to PATH:

chmod +x contextium-macos sudo mv contextium-macos /usr/local/bin/doxhub

Authentication

Login

Authenticate with your Contextium account:

doxhub login

Opens browser for authentication, then saves credentials locally.

Using API Key

Authenticate with API key:

doxhub login --api-key YOUR_API_KEY

Or set environment variable:

export DOXHUB_API_KEY="your_api_key" doxhub files list

Check Authentication

Verify you're logged in:

doxhub whoami

Output:

Logged in as: john@example.com
Workspace: My Workspace (my-workspace)
Plan: Professional

Logout

doxhub logout

Quick Start

List Files

doxhub files list

Create a File

doxhub files create "Getting Started" \ --content "# Getting Started\n\nWelcome to our docs." \ --project "api-docs"

View a File

doxhub files get "Getting Started"

Edit a File

doxhub files edit "Getting Started"

Opens file in your default editor.

Search Files

doxhub search "authentication"

Command Structure

Commands follow this pattern:

doxhub <resource> <action> [arguments] [options]

Examples:

doxhub files create "My File" doxhub projects list doxhub comments add "Great doc!" --file "Getting Started"

Core Commands

Files

# List files doxhub files list # Create file doxhub files create "File Name" --content "Content" # Get file content doxhub files get "File Name" # Edit file doxhub files edit "File Name" # Delete file doxhub files delete "File Name" # Move file doxhub files move "File Name" --project "new-project"

Projects

# List projects doxhub projects list # Create project doxhub projects create "Project Name" # View project doxhub projects get "Project Name" # Delete project doxhub projects delete "Project Name"
# Search by name doxhub search "query" # Search with filters doxhub search "query" --project "api-docs" --tag "published" # Full-text search (Business plan+) doxhub search "query" --content

Comments

# List comments on file doxhub comments list --file "File Name" # Add comment doxhub comments add "Great documentation!" --file "File Name" # Reply to comment doxhub comments reply COMMENT_ID "Thanks!"
--type replace \ --line-start 10 \ --line-end 12 \ --content "Updated content" \ --reason "Fix outdated info"

Version History

# View version history doxhub versions list --file "File Name" # Get specific version doxhub versions get VERSION_ID # Revert to version doxhub versions revert VERSION_ID

Global Options

Available on all commands:

# Specify workspace doxhub files list --workspace my-workspace # JSON output doxhub files list --json # Verbose output doxhub files list --verbose # Help doxhub files --help

Output Formats

Human-Readable (Default)

doxhub files list

Output:

Files in My Workspace:

  Getting Started       api-docs    Updated 2 hours ago
  Authentication        api-docs    Updated 3 days ago
  Rate Limiting         api-docs    Updated 1 week ago

Total: 3 files

JSON

doxhub files list --json

Output:

[ { "id": "file_123", "name": "Getting Started", "project": "api-docs", "updated_at": "2024-01-20T14:22:00Z" } ]

Perfect for scripting and automation.

Configuration

Config File

CLI configuration stored in ~/.doxhub/config.json:

{ "default_workspace": "my-workspace", "editor": "vim", "output_format": "table" }

Set Config

# Set default workspace doxhub config set default_workspace my-workspace # Set default editor doxhub config set editor nano # Set output format doxhub config set output_format json

View Config

doxhub config list

Scripting & Automation

Bash Script Example

#!/bin/bash # Create daily changelog entry DATE=$(date +%Y-%m-%d) doxhub files create "Changelog $DATE" \ --project "changelogs" \ --content "# Changelog $DATE\n\n## Added\n- Feature X\n\n## Fixed\n- Bug Y" echo "Changelog created for $DATE"

CI/CD Integration

GitHub Actions:

name: Update Docs on: [push] jobs: update-docs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Install Contextium CLI run: npm install -g @contextium/cli - name: Update documentation env: DOXHUB_API_KEY: ${{ secrets.DOXHUB_API_KEY }} run: | doxhub files create "API Docs" \ --content "$(cat docs/api.md)" \ --project "api-documentation"

Python Script Example

import subprocess import json # Get files as JSON result = subprocess.run( ['doxhub', 'files', 'list', '--json'], capture_output=True, text=True ) files = json.loads(result.stdout) for file in files: print(f"File: {file['name']}, Updated: {file['updated_at']}")

Bulk Operations

Bulk File Creation

# Create multiple files from directory for file in docs/*.md; do doxhub files create "$(basename $file .md)" \ --content "$(cat $file)" \ --project "api-docs" done

Bulk Tagging

# Tag all API documentation files doxhub files list --project "api-docs" --json | \ jq -r '.[].id' | \ while read file_id; do doxhub tags add "category:api" --file-id $file_id done

Keyboard Shortcuts

When using interactive mode:

  • / - Navigate options
  • Space - Select
  • Enter - Confirm
  • Esc - Cancel
  • Ctrl+C - Exit

Troubleshooting

Command Not Found

doxhub: command not found

Solution:

  • Verify installation: which doxhub
  • Add to PATH: export PATH="$PATH:/usr/local/bin"
  • Reinstall: npm install -g @contextium/cli

Authentication Errors

Error: Not authenticated

Solution:

  • Login: doxhub login
  • Check API key: echo $DOXHUB_API_KEY
  • Verify key is valid: doxhub whoami

Permission Errors

Error: Insufficient permissions

Solution:

  • Check your workspace role
  • Verify API key permissions
  • Ensure you have Editor or Admin role

Best Practices

Use API Keys for Automation

  • Create dedicated API key for CLI
  • Use Read permission for read-only scripts
  • Store key in environment variable
  • Rotate keys every 90 days

Version Control CLI Scripts

  • Commit scripts to git
  • Don't commit API keys
  • Use environment variables
  • Document script usage

Error Handling

#!/bin/bash if ! doxhub files create "My File" --content "Content"; then echo "Failed to create file" exit 1 fi echo "File created successfully"

Next Steps