Skip to main content

Command-Line Interface

Ori with terminal

Manage Orient's schedulers, webhooks, and agents from the terminal.

Overview​

The Orient CLI provides a command-line interface for power users who prefer terminal-based workflows. While most users interact with Orient through WhatsApp, Slack, or the dashboard, the CLI offers direct database access for automation and scripting.

Use the CLI for:

  • Bulk operations on schedulers and webhooks
  • Scripting and automation workflows
  • Remote server management via SSH tunneling
  • DevOps and infrastructure-as-code scenarios

Installation​

# Navigate to CLI package
cd packages/cli

# Install dependencies
pnpm install

# Build the CLI
pnpm build

# Optional: Link globally
npm link

After linking, you can use the orient command from anywhere.

Quick Start​

Initialize Configuration​

# Create .orientrc configuration file
orient config init

# View current configuration
orient config list

Common Commands​

List Scheduled Jobs​

# List all jobs
orient scheduler list

# Filter by provider
orient scheduler list --provider whatsapp

# Show only enabled jobs
orient scheduler list --enabled

Create a Daily Reminder​

orient scheduler create \
--name "daily-standup" \
--type cron \
--cron "0 9 * * 1-5" \
--timezone "Asia/Jerusalem" \
--provider slack \
--target "#standup" \
--message "🌅 Daily standup starts in 10 minutes!"

Manage Webhooks​

# List webhooks
orient webhook list

# Create GitHub webhook
orient webhook create \
--name "github-prs" \
--source github \
--event-filter "pull_request" \
--provider slack \
--target "#code-reviews"

# View webhook details
orient webhook get <webhook-id> --show-token

Environment Configuration​

The CLI supports multiple environments (local, production) via .orientrc:

{
"environments": {
"local": {
"type": "direct",
"databaseUrl": "postgresql://orient:password@localhost:5432/whatsapp_bot_0"
},
"production": {
"type": "ssh",
"host": "your-server.example.com",
"databaseUrl": "postgresql://orient:password@localhost:5432/whatsapp_bot_0"
}
},
"defaultEnvironment": "local"
}

Switch environments with --env:

orient scheduler list --env production

Available Command Groups​

Command GroupDescription
schedulerManage scheduled jobs and reminders
webhookConfigure webhooks for external events
agentView and manage AI agent configurations
configInitialize and manage CLI configuration

Output Formats​

All commands support two output modes:

  • Table (default): Human-readable with color indicators
  • JSON: Machine-readable for scripting with --json flag
# JSON output for scripting
orient scheduler list --json | jq '.[] | select(.enabled == true)'

Common Workflows​

Daily Standup Setup​

# 1. Initialize config
orient config init

# 2. Create weekday reminder
orient scheduler create \
--name "daily-standup" \
--type cron \
--cron "0 9 * * 1-5" \
--provider slack \
--target "#standup" \
--message "Good morning! Standup in 10 minutes."

# 3. Verify
orient scheduler list

GitHub Notifications​

# Create webhook for PR notifications
orient webhook create \
--name "github-prs" \
--source github \
--event-filter "pull_request" \
--provider slack \
--target "#code-reviews"

# Copy the webhook URL and token
# Configure in GitHub: Settings → Webhooks → Add webhook

Tips​

  1. Use aliases: scheduler → sched, webhook → wh
  2. JSON + jq: Combine --json with jq for powerful filtering
  3. Verbose mode: Add --verbose for detailed error information
  4. Help text: Run orient <command> --help for usage details

Full Documentation​

For comprehensive documentation covering all 22 commands, advanced workflows, troubleshooting, and API details, see the CLI README.

Next Steps​