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
# 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 optionsSpace- SelectEnter- ConfirmEsc- CancelCtrl+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"