npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

indigo-cli

v0.2.3

Published

Indigo CLI - Terminal-based access to Indigo for power users

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

npm

npm install -g indigo-cli

Quick 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 mcp

Commands

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 --json

Notes:

  • If you're already logged into the Indigo desktop app, the CLI will automatically use those credentials
  • Use --force to 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 --json

auth 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 --json

Output 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 mypassword123

Notes:

  • The --email and --password flags 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 --json

Output 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 communications
  • action - Action items identified
  • accomplishment - Accomplishments or completed items
  • key_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 --json

signals 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 --json

signals 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 --json

Output 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 --json

Setup wizard covers:

  1. Authentication verification
  2. API keys configuration (BYOK - Bring Your Own Key)
  3. 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 --json

Output 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 --disconnect

setup 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 --json

setup 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 --json

Connection Options:

  1. OAuth (Recommended) - Simply enter https://mcp.getindigo.ai in Claude Desktop or any AI assistant. The assistant handles authentication automatically via OAuth.

  2. 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):

  1. Open Claude Desktop → Settings → Servers
  2. Add new server with URL: https://mcp.getindigo.ai
  3. Complete the OAuth sign-in when prompted
  4. Start using Indigo tools in Claude!

Setup Steps (SSE with API Key):

  1. Run indigo setup mcp to generate your MCP configuration
  2. Open (or create) the Claude Desktop config file at the location shown
  3. Add the generated JSON configuration to the file
  4. Restart Claude Desktop
  5. Look for "indigo" in the MCP servers list

Notes:

  • OAuth is the recommended method - no config files needed
  • SSE option requires authentication (indigo auth login first)
  • 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 --json

meetings 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 --json

Output 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 10

MCP 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:

  1. Open Claude Desktop → Settings → Servers
  2. Add new server with URL: https://mcp.getindigo.ai
  3. Complete the OAuth sign-in when prompted
  4. 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 mcp

This 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
fi

Configuration

Credential Storage

The CLI stores credentials securely using one of two methods:

  1. System keychain (preferred) - Uses the native OS keychain:

    • macOS: Keychain Access
    • Windows: Credential Manager
    • Linux: Secret Service API (GNOME Keyring, KWallet)
  2. 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 --force

Output Formats

All data commands support JSON output for scripting and automation.

Human-readable output (default)

indigo signals list

Output is formatted for terminal display with tables, colors, and word wrapping.

JSON output

indigo signals list --json

JSON 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 status

Credentials not persisting

Problem: You need to log in every time you use the CLI.

Solution:

  1. Check if keytar (system keychain integration) installed correctly
  2. If keytar fails, credentials fall back to an encrypted config file
  3. 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:

  • decision
  • action
  • accomplishment
  • key_fact
indigo signals list --type decision

Invalid 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:

  1. Copy the URL displayed in the terminal
  2. Paste it manually into your browser
  3. Complete the login flow
  4. 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 status

Daily workflow

# Check upcoming meetings
indigo meetings list

# Review recent signals
indigo signals list --limit 10

Searching 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 50

Setting 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