indigo-cli
v0.2.3
Published
Indigo CLI - Terminal-based access to Indigo for power users
Maintainers
Readme
Indigo CLI
Terminal-based access to Indigo for power users and AI agents. Authenticate, browse signals, manage meetings, and configure MCP integration without launching the Electron app.
Table of Contents
- Installation
- Quick Start
- Commands
- MCP Integration
- Exit Codes
- Configuration
- Output Formats
- Troubleshooting
- Common Workflows
Installation
npm
npm install -g indigo-cliQuick Start
# 1. Authenticate (opens browser)
indigo auth login
# 2. Run interactive setup wizard (optional)
indigo setup
# 3. List your signals
indigo signals list
# 4. Set up Claude Desktop integration (optional)
indigo setup mcpCommands
auth - Authentication Commands
Manage authentication with your Indigo account.
auth login
Authenticate with your Indigo account via browser-based OAuth.
Syntax:
indigo auth login [options]Options:
| Option | Description |
|--------|-------------|
| --force | Force CLI-specific login even if Indigo desktop app credentials exist |
| --json | Output as JSON for scripting |
Examples:
# Standard login (opens browser)
indigo auth login
# Force new credentials even if using desktop app
indigo auth login --force
# Get login status as JSON
indigo auth login --jsonNotes:
- If you're already logged into the Indigo desktop app, the CLI will automatically use those credentials
- Use
--forceto create CLI-specific credentials separate from the desktop app
auth logout
Log out and clear stored credentials.
Syntax:
indigo auth logout [options]Options:
| Option | Description |
|--------|-------------|
| --json | Output as JSON for scripting |
Examples:
# Log out
indigo auth logout
# Log out with JSON output
indigo auth logout --jsonauth status
Display current authentication status including user info and token expiry.
Syntax:
indigo auth status [options]Options:
| Option | Description |
|--------|-------------|
| --json | Output as JSON for scripting |
Examples:
# Check authentication status
indigo auth status
# Get detailed status as JSON
indigo auth status --jsonOutput includes:
- Login status (logged in / not logged in)
- User email and ID
- Token expiry time
- Credential source (CLI or Electron desktop app)
- Storage method (system keychain or encrypted file)
account - Account Management
Manage your Indigo account.
account create
Create a new Indigo account via browser-based signup.
Syntax:
indigo account create [options]Options:
| Option | Description |
|--------|-------------|
| --json | Output as JSON for scripting |
| -e, --email <email> | Email address (development/test environments only) |
| -p, --password <password> | Password (development/test environments only) |
Examples:
# Create account via browser (standard flow)
indigo account create
# Create account in dev/test environment
indigo account create --email [email protected] --password mypassword123Notes:
- The
--emailand--passwordflags are only available in development/test environments - In production, account creation always uses the browser-based OAuth flow
- Password must be at least 8 characters
account info
Display information about your current account.
Syntax:
indigo account info [options]Options:
| Option | Description |
|--------|-------------|
| --json | Output as JSON for scripting |
Examples:
# View account info
indigo account info
# Get account info as JSON
indigo account info --jsonOutput includes:
- Email address
- Display name
- User ID
- Company (if associated)
- Credential source
signals - Signal Management
Browse and search your Indigo signals. Signals are insights extracted from your meetings, emails, and communications.
signals list
List your recent signals.
Syntax:
indigo signals list [options]Options:
| Option | Description |
|--------|-------------|
| --json | Output as JSON for scripting |
| -n, --limit <number> | Number of results to show (default: 20) |
| -t, --type <type> | Filter by signal type |
Valid signal types:
decision- Decisions made in meetings or communicationsaction- Action items identifiedaccomplishment- Accomplishments or completed itemskey_fact- Important facts or information
Examples:
# List recent signals
indigo signals list
# List 50 signals
indigo signals list --limit 50
# List only decisions
indigo signals list --type decision
# List action items as JSON
indigo signals list --type action --jsonsignals search
Search your signals by content.
Syntax:
indigo signals search <query> [options]Arguments:
| Argument | Description |
|----------|-------------|
| query | Search term (required) |
Options:
| Option | Description |
|--------|-------------|
| --json | Output as JSON for scripting |
| -n, --limit <number> | Number of results to show (default: 20) |
| -t, --type <type> | Filter by signal type |
Examples:
# Search for budget-related signals
indigo signals search "budget"
# Search for project decisions
indigo signals search "project update" --type decision
# Search with custom limit
indigo signals search "quarterly" --limit 10 --jsonsignals view
View the full details of a specific signal.
Syntax:
indigo signals view <id> [options]Arguments:
| Argument | Description |
|----------|-------------|
| id | Signal ID (24-character hexadecimal string) |
Options:
| Option | Description |
|--------|-------------|
| --json | Output as JSON for scripting |
Examples:
# View a signal by ID
indigo signals view 507f1f77bcf86cd799439011
# View signal as JSON
indigo signals view 507f1f77bcf86cd799439011 --jsonOutput includes:
- Signal type and title
- Source (meeting, email, etc.)
- Creation and update timestamps
- Related people, teams, projects
- Full content and citations
setup - Configuration and Setup
Configure Indigo CLI settings including API keys and calendar integration.
setup wizard
Run the interactive setup wizard to configure all settings.
Syntax:
indigo setup [options]
indigo setup wizard [options]Options:
| Option | Description |
|--------|-------------|
| --json | Output current status as JSON (non-interactive) |
Examples:
# Run setup wizard
indigo setup
# Check what needs to be configured
indigo setup --jsonSetup wizard covers:
- Authentication verification
- API keys configuration (BYOK - Bring Your Own Key)
- Google Calendar connection
setup status
Show current configuration status.
Syntax:
indigo setup status [options]Options:
| Option | Description |
|--------|-------------|
| --json | Output as JSON for scripting |
Examples:
# Check setup status
indigo setup status
# Get status as JSON
indigo setup status --jsonOutput includes:
- Authentication status
- Configured API key providers
- Calendar connection status
setup calendar
Connect and manage Google Calendar integration.
Syntax:
indigo setup calendar [options]Options:
| Option | Description |
|--------|-------------|
| --json | Output as JSON for scripting |
| --status | Show current calendar connection status |
| --select | Select which calendars to sync |
| --disconnect | Disconnect Google Calendar |
Examples:
# Connect Google Calendar (opens browser)
indigo setup calendar
# Check calendar connection status
indigo setup calendar --status
# Select calendars to sync
indigo setup calendar --select
# Disconnect calendar
indigo setup calendar --disconnectsetup keys
Configure API keys for AI model providers (BYOK - Bring Your Own Key).
Syntax:
indigo setup keys [options]Options:
| Option | Description |
|--------|-------------|
| --json | Output as JSON for scripting |
| --list | List configured API key providers |
| -p, --provider <provider> | Configure a specific provider |
| --remove <provider> | Remove API key for a provider |
Supported providers:
| Provider | Description |
|----------|-------------|
| openai | GPT-4, GPT-4o and other OpenAI models |
| anthropic | Claude models (Claude 3, Claude 3.5, etc.) |
| google | Gemini models |
| xai | Grok models |
Examples:
# Interactive setup for all providers
indigo setup keys
# List configured providers
indigo setup keys --list
# Configure OpenAI API key
indigo setup keys --provider openai
# Remove an API key
indigo setup keys --remove anthropic
# Get configuration as JSON
indigo setup keys --list --jsonsetup mcp
Show MCP (Model Context Protocol) connection options for Claude Desktop and other AI assistants.
Syntax:
indigo setup mcp [options]Options:
| Option | Description |
|--------|-------------|
| --json | Output as JSON for scripting and automation |
Examples:
# Show MCP connection options
indigo setup mcp
# Get MCP config as JSON (for automated setup)
indigo setup mcp --jsonConnection Options:
OAuth (Recommended) - Simply enter
https://mcp.getindigo.aiin Claude Desktop or any AI assistant. The assistant handles authentication automatically via OAuth.SSE with API Key - For programmatic integrations or custom setups. Uses a generated API key embedded in a personal SSE URL.
Config file locations:
| Platform | Path |
|----------|------|
| macOS | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Windows | %APPDATA%\Claude\claude_desktop_config.json |
| Linux | ~/.config/Claude/claude_desktop_config.json |
Setup Steps (OAuth - Recommended):
- Open Claude Desktop → Settings → Servers
- Add new server with URL:
https://mcp.getindigo.ai - Complete the OAuth sign-in when prompted
- Start using Indigo tools in Claude!
Setup Steps (SSE with API Key):
- Run
indigo setup mcpto generate your MCP configuration - Open (or create) the Claude Desktop config file at the location shown
- Add the generated JSON configuration to the file
- Restart Claude Desktop
- Look for "indigo" in the MCP servers list
Notes:
- OAuth is the recommended method - no config files needed
- SSE option requires authentication (
indigo auth loginfirst) - The MCP server allows Claude to access your Indigo signals and meetings
meetings - Meeting Management
View and search your calendar meetings. Requires Google Calendar to be connected.
meetings list
List your meetings.
Syntax:
indigo meetings list [options]Options:
| Option | Description |
|--------|-------------|
| --json | Output as JSON for scripting |
| -n, --limit <number> | Number of results to show (default: 20) |
| --upcoming | Show upcoming meetings (default) |
| --past | Show past meetings |
Examples:
# List upcoming meetings
indigo meetings list
# List past meetings
indigo meetings list --past
# List more meetings
indigo meetings list --limit 50 --jsonmeetings view
View detailed information about a specific meeting.
Syntax:
indigo meetings view <id> [options]Arguments:
| Argument | Description |
|----------|-------------|
| id | Meeting ID (24-character hexadecimal string) |
Options:
| Option | Description |
|--------|-------------|
| --json | Output as JSON for scripting |
Examples:
# View meeting details
indigo meetings view 507f1f77bcf86cd799439011
# Get meeting as JSON
indigo meetings view 507f1f77bcf86cd799439011 --jsonOutput includes:
- Meeting title and status
- Date, time, and duration
- Meeting URL
- Participants and their response status
- Description and summary (if available)
meetings search
Search meetings by title, description, or attendee.
Syntax:
indigo meetings search <query> [options]Arguments:
| Argument | Description |
|----------|-------------|
| query | Search term (required) |
Options:
| Option | Description |
|--------|-------------|
| --json | Output as JSON for scripting |
| -n, --limit <number> | Number of results to show (default: 20) |
| --upcoming | Search only upcoming meetings |
| --past | Search only past meetings |
Examples:
# Search all meetings
indigo meetings search "standup"
# Search upcoming meetings only
indigo meetings search "review" --upcoming
# Search past meetings
indigo meetings search "quarterly" --past --limit 10MCP Integration
The Indigo CLI supports MCP (Model Context Protocol) integration, allowing Claude Desktop to access your Indigo data directly.
What is MCP?
MCP (Model Context Protocol) is an open protocol that enables AI assistants like Claude to securely connect to external data sources. With the Indigo MCP server, Claude can:
- Access your signals (decisions, action items, key facts)
- Search and browse your meeting history
- Help you find information from your communications
Setting Up MCP for Claude Desktop
There are two ways to connect Indigo to Claude Desktop:
Option 1: OAuth (Recommended)
The easiest way - no config files needed:
- Open Claude Desktop → Settings → Servers
- Add new server with URL:
https://mcp.getindigo.ai - Complete the OAuth sign-in when prompted
- Start using Indigo tools in Claude!
Option 2: SSE with API Key
For programmatic integrations or custom setups:
# 1. Ensure you're logged in
indigo auth login
# 2. Generate MCP configuration
indigo setup mcpThis will output:
- Both OAuth and SSE connection options
- A JSON configuration snippet for Claude Desktop (SSE)
- The config file location for your platform
Claude Desktop Config File Locations
| Platform | Path |
| -------- | ----------------------------------------------------------------- |
| macOS | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Windows | %APPDATA%\Claude\claude_desktop_config.json |
| Linux | ~/.config/Claude/claude_desktop_config.json |
Example Configuration
OAuth Config (Recommended)
For Claude Desktop with OAuth authentication:
{
"mcpServers": {
"indigo": {
"url": "https://mcp.getindigo.ai"
}
}
}SSE Config (API Key)
For programmatic integrations using SSE with API key (generated by indigo setup mcp):
{
"mcpServers": {
"indigo": {
"type": "sse",
"url": "https://mcp.getindigo.ai/sse?apiKey=your-api-key"
}
}
}Automated Setup (JSON Mode)
For scripted or automated setup:
# Get MCP config as JSON
indigo setup mcp --json
# Example output:
# {
# "success": true,
# "data": {
# "oauth": {
# "url": "https://mcp.getindigo.ai",
# "claudeDesktopConfig": { ... },
# "description": "OAuth-based connection (recommended)..."
# },
# "sse": {
# "apiKey": "...",
# "url": "https://mcp.getindigo.ai/sse?apiKey=...",
# "claudeDesktopConfig": { ... },
# "description": "SSE with API key..."
# },
# "configPath": "~/Library/Application Support/Claude/claude_desktop_config.json",
# "platform": "macOS"
# }
# }Exit Codes
The CLI uses standardized exit codes for scripting and automation:
| Code | Name | Description |
| ---- | ----------------------- | --------------------------------------------------------------- |
| 0 | Success | Command completed successfully |
| 1 | General Error | An unexpected error occurred |
| 2 | Authentication Required | User is not authenticated; run indigo auth login |
| 3 | Not Found | Requested resource (signal, meeting) was not found |
| 4 | Configuration Error | Missing or invalid configuration (e.g., calendar not connected) |
| 5 | Validation Error | Invalid command arguments or options |
Example usage in scripts:
indigo signals list --json > signals.json
if [ $? -eq 2 ]; then
echo "Please log in first"
indigo auth login
fiConfiguration
Credential Storage
The CLI stores credentials securely using one of two methods:
System keychain (preferred) - Uses the native OS keychain:
- macOS: Keychain Access
- Windows: Credential Manager
- Linux: Secret Service API (GNOME Keyring, KWallet)
Encrypted config file (fallback) - Used when system keychain is unavailable
Config file location:
- macOS/Linux:
~/.config/indigo-cli/ - Windows:
%APPDATA%/indigo-cli/
Shared Credentials with Desktop App
If you have the Indigo desktop app installed and logged in, the CLI will automatically detect and use those credentials. To use separate CLI-specific credentials, run:
indigo auth login --forceOutput Formats
All data commands support JSON output for scripting and automation.
Human-readable output (default)
indigo signals listOutput is formatted for terminal display with tables, colors, and word wrapping.
JSON output
indigo signals list --jsonJSON output follows a consistent schema:
Success response:
{
"success": true,
"data": { ... }
}Error response:
{
"success": false,
"error": {
"message": "Error description",
"code": "ERROR_CODE"
}
}Piping to jq
# Get the first signal's title
indigo signals list --json | jq '.[0].data.title'
# Filter signals by type
indigo signals list --json | jq '[.[] | select(.insightType == "decision")]'Troubleshooting
"Authentication required" error
Problem: Commands fail with exit code 2 and "Not authenticated" message.
Solution:
# Log in to your account
indigo auth login
# Check authentication status
indigo auth statusCredentials not persisting
Problem: You need to log in every time you use the CLI.
Solution:
- Check if keytar (system keychain integration) installed correctly
- If keytar fails, credentials fall back to an encrypted config file
- Verify the config directory exists and is writable:
ls -la ~/.config/indigo-cli/
Calendar commands failing
Problem: Meeting commands fail with "Calendar not connected" error.
Solution:
# Check calendar connection status
indigo setup calendar --status
# Connect your calendar
indigo setup calendar"Invalid signal type" error
Problem: Signal filtering fails with validation error.
Solution: Use one of the valid signal types:
decisionactionaccomplishmentkey_fact
indigo signals list --type decisionInvalid ID format
Problem: Commands fail with "Invalid ID format" error.
Solution: IDs must be 24-character hexadecimal strings (MongoDB ObjectIds).
# Correct format
indigo signals view 507f1f77bcf86cd799439011
# Get IDs from list commands
indigo signals list --json | jq '.[0]._id'Browser not opening during login
Problem: Browser doesn't open automatically for OAuth.
Solution:
- Copy the URL displayed in the terminal
- Paste it manually into your browser
- Complete the login flow
- Return to the terminal
Common Workflows
First-time setup
# 1. Create account or log in
indigo auth login
# or
indigo account create
# 2. Run the setup wizard
indigo setup
# 3. Connect your calendar
indigo setup calendar
# 4. Configure API keys (optional)
indigo setup keys
# 5. Set up Claude Desktop MCP integration (optional)
indigo setup mcp
# 6. Verify everything is configured
indigo setup statusDaily workflow
# Check upcoming meetings
indigo meetings list
# Review recent signals
indigo signals list --limit 10Searching for information
# Find all decisions about a project
indigo signals search "Project Alpha" --type decision
# Find meetings with a specific person
indigo meetings search "[email protected]"
# Find action items from last month
indigo signals list --type action --limit 50Setting up Claude Desktop (MCP)
# Generate MCP configuration
indigo setup mcp
# For automated setup, use JSON output
indigo setup mcp --json | jq '.data.claudeDesktopConfig'Scripting and automation
#!/bin/bash
# Export signals to file
indigo signals list --json > signals.json
# Check if authenticated
if ! indigo auth status --json | jq -e '.data.isAuthenticated' > /dev/null; then
echo "Please log in first"
exit 1
fi
# Get upcoming meetings
indigo meetings list --json | jq '[.[] | {title: .meeting_title, time: .start_time}]'Requirements
npm installation:
- Node.js 18.0.0 or higher
Standalone binaries:
- No runtime dependencies (Node.js is bundled)
Optional (all installation methods):
- System keychain access for secure credential storage
License
MIT
