Skip to main content

Command-line interface for ToothFairy AI API

Project description

ToothFairy AI CLI Tools

Command-line interfaces for interacting with ToothFairy AI agents. Available in both Python and Node.js versions with identical functionality.

Quick access: Use either tf or toothfairy commands!

📦 Installation

Python CLI (PyPI)

pip install toothfairy-cli

Node.js CLI (npm)

npm install -g @toothfairyai/cli

Both packages provide the same commands: toothfairy and tf

🚀 Getting Started

1. Configure your credentials

tf configure --api-key YOUR_KEY --workspace-id YOUR_WORKSPACE

2. Send a message to an agent

tf send "Hello, I need help" --agent-id YOUR_AGENT_ID

3. Search the knowledge hub

tf search "AI configuration help"

4. Explore your workspace

tf chats                    # List all conversations
tf config-show              # View current settings

✨ Features

  • 💬 Agent Communication: Send messages to ToothFairy AI agents
  • 🔍 Knowledge Hub Search: Search documents with advanced filtering
  • 📋 Chat Management: List and view chat conversations
  • ⚙️ Configuration: Flexible credential and settings management
  • 🎨 Rich Output: Beautiful terminal interface with colors and tables
  • 📊 Multiple Formats: JSON and text output for both interactive and scripted use
  • 🔐 Secure: Safe credential storage and validation
  • 📱 Cross-Platform: Works on Windows, macOS, and Linux

💬 Agent Communication Examples

Use Case Command
Simple message tf send "What are your hours?" --agent-id "info-agent"
With customer info tf send "Schedule appointment" --agent-id "scheduler" --customer-info '{"name": "John"}'
Verbose output tf send "Hello" --agent-id "agent-123" --verbose
JSON for scripting tf send "Help" --agent-id "agent-123" --output json

Advanced Agent Communication

# Send message with detailed customer information
tf send "Check my insurance coverage" \
  --agent-id "insurance-agent" \
  --customer-info '{
    "name": "Sarah Johnson",
    "dateOfBirth": "1985-03-15",
    "insurance": {
      "provider": "BlueCross BlueShield",
      "policyNumber": "BC123456789"
    }
  }'

🔍 Knowledge Hub Search Examples

Use Case Command
Basic search tf search "AI agent configuration"
Filter by status tf search "machine learning" --status published
Limit results tf search "troubleshooting" --top-k 3
Topic filtering tf search "automation" --topics "topic_123,topic_456"
Specific document tf search "settings" --document-id "doc_550..."
Verbose details tf search "deployment" --verbose
JSON output tf search "API docs" --output json

Search Filtering Guide

Knowledge Hub search supports powerful filtering options:

  • --status: Filter documents by 'published' or 'suspended' status
  • --topics: Use topic IDs from ToothFairyAI (comma-separated)
  • --document-id: Search within a specific document
  • --top-k: Control number of results (1-50)
  • --verbose: Show relevance scores and metadata

📋 Workspace Management Examples

Use Case Command
List all chats tf chats
View chat details tf chat CHAT_ID
Show config tf config-show
Detailed help tf help-guide

⚙️ Configuration

Both CLIs support multiple configuration methods (in order of priority):

Configuration Methods

Method Description Example
Environment Set environment variables export TF_API_KEY=your_key
Config file Use ~/.toothfairy/config.yml api_key: your_key
workspace_id: your_workspace
CLI arguments Pass config file path tf --config /path/to/config.yml send ...

Setting up configuration

Interactive Configuration

tf configure \
  --api-key "your-api-key" \
  --workspace-id "your-workspace-id"

# View current configuration
tf config-show

Environment Variables

# Required
export TF_API_KEY="your-api-key"
export TF_WORKSPACE_ID="your-workspace-id"

# Optional (defaults to production)
export TF_BASE_URL="https://api.toothfairyai.com"
export TF_AI_URL="https://ai.toothfairyai.com"

Config File Format

Create ~/.toothfairy/config.yml:

# Required
api_key: "your-api-key"
workspace_id: "your-workspace-id"

# Optional (defaults to production)
base_url: "https://api.toothfairyai.com"
ai_url: "https://ai.toothfairyai.com"

📊 Output Formats

Both CLIs support --output or -o flag:

  • text (default): Pretty formatted tables and panels
  • json: Raw JSON output for scripting
# Get JSON output for scripting
tf send "Hello" --agent-id "agent-123" --output json | jq '.agentResponse.contents.content'

# Search with JSON output
tf search "documentation" --output json | jq '.[].title'

🔧 Command Reference

Global Options

  • --config, -c: Path to configuration file
  • --verbose, -v: Enable verbose logging and API debugging

Commands

configure

Set up CLI credentials and configuration.

Options:

  • --api-key: API key (required)
  • --workspace-id: Workspace ID (required)
  • --base-url: ToothFairy API base URL (optional)
  • --ai-url: ToothFairy AI URL (optional)
  • --config-path: Custom path to save config file

send <message>

Send a message to a ToothFairy AI agent.

Arguments:

  • message: The message text to send

Options:

  • --agent-id: Agent ID to send message to (required)
  • --phone-number: Phone number for SMS channel (optional)
  • --customer-id: Customer ID (optional)
  • --provider-id: SMS provider ID (optional)
  • --customer-info: Customer info as JSON string (optional)
  • --output, -o: Output format (json|text)
  • --verbose, -v: Show detailed response information

search <query>

Search for documents in the knowledge hub.

Arguments:

  • query: The search query text

Options:

  • --top-k, -k: Number of documents to retrieve (1-50, default: 10)
  • --status: Filter by document status (published|suspended)
  • --document-id: Search within specific document ID
  • --topics: Comma-separated topic IDs to filter by
  • --output, -o: Output format (json|text)
  • --verbose, -v: Show detailed search information

chats

List all chats in the workspace.

Options:

  • --output, -o: Output format (json|text)

chat <chat-id>

Get details of a specific chat.

Arguments:

  • chat-id: The chat ID to retrieve

Options:

  • --output, -o: Output format (json|text)

config-show

Display current configuration (with masked API key).

help-guide

Show detailed help with examples, common issues, and pro tips.

💡 Usage Examples

Basic Workflow

# Configure once
tf configure --api-key "tf-key-abc123" --workspace-id "workspace-456"

# Send messages to agents
tf send "I'd like to schedule a session" --agent-id "my-scheduler"

# Search for relevant information
tf search "appointment scheduling help"

# Manage conversations
tf chats
tf chat chat-abc123

Scripting Examples

#!/bin/bash

# Send message and extract agent response
RESPONSE=$(tf send "What are your hours?" \
  --agent-id "info-agent" \
  --output json)

# Extract the agent's text response
AGENT_TEXT=$(echo "$RESPONSE" | jq -r '.agentResponse.contents.content')
echo "Agent said: $AGENT_TEXT"

# Search documents and extract relevant content
SEARCH_RESULTS=$(tf search "office hours" --output json)
TOP_RESULT=$(echo "$SEARCH_RESULTS" | jq -r '.[0].raw_text')
echo "Found documentation: $TOP_RESULT"

# Get chat ID for follow-up
CHAT_ID=$(echo "$RESPONSE" | jq -r '.chatId')
echo "Chat ID: $CHAT_ID"

⚠️ Common Issues & Solutions

Issue Solution
Configuration incomplete Run: tf configure --api-key YOUR_KEY --workspace-id YOUR_WORKSPACE
No text response found Use --verbose flag to see full response details
Agent not responding Check agent-id is correct and agent is active
Network errors Verify API endpoints are accessible and credentials are valid

🐛 Troubleshooting

Debug Mode

Use the --verbose flag to see detailed API request/response information:

tf --verbose send "test message" --agent-id "agent-123"
tf search "test" --verbose

Configuration Issues

  1. Check current configuration:

    tf config-show
    
  2. Verify credentials:

    tf configure --api-key YOUR_KEY --workspace-id YOUR_WORKSPACE
    
  3. Test connection:

    tf chats --verbose
    

📖 More Help

  • Command-specific help: tf COMMAND --help
  • Detailed examples: tf help-guide
  • Verbose debugging: Use --verbose flag
  • JSON output: Use --output json for machine-readable output
  • Configuration priority: Environment variables → ~/.toothfairy/config.yml → CLI args

✨ Pro Tips

💾 Save time: Configure once with tf configure, then just use tf send and tf search

🔍 Debug issues: Use --verbose to see full API responses and troubleshoot

📝 Scripting: Use --output json and tools like jq to parse responses

Quick tests: Only --agent-id is required for send, only query for search

🎯 Better search: Use --status, --topics, and --document-id for targeted results

🔧 Multiple environments: Use different config files with --config flag

📄 License

MIT License - see LICENSE file for details.

🔗 Links

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

toothfairy_cli-1.0.2.tar.gz (22.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

toothfairy_cli-1.0.2-py3-none-any.whl (19.5 kB view details)

Uploaded Python 3

File details

Details for the file toothfairy_cli-1.0.2.tar.gz.

File metadata

  • Download URL: toothfairy_cli-1.0.2.tar.gz
  • Upload date:
  • Size: 22.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.1

File hashes

Hashes for toothfairy_cli-1.0.2.tar.gz
Algorithm Hash digest
SHA256 b5584b666a4ffba6945776257e659f561e3afeb952f4c7b0e2dc5e2b6f751088
MD5 5131bff8c03037ebbce6f369753d222a
BLAKE2b-256 db9cbcc20374401c357da20c492e517c38c00e282052222c5ba84cf846bd27e7

See more details on using hashes here.

File details

Details for the file toothfairy_cli-1.0.2-py3-none-any.whl.

File metadata

  • Download URL: toothfairy_cli-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 19.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.1

File hashes

Hashes for toothfairy_cli-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 6e127804965cbd7f29a7dcab4d361876553b4942b364cc5ccdede10580dbc950
MD5 6faa8e9e13197791c034d49a02c6f3f2
BLAKE2b-256 84da61e7567a231cf0070d5adc4e91354d361408b1e75900dbfc27f16525f32b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page