context7-cli 0.2.0

CLI client for the Context7 API — search libraries and documentation from the terminal
Documentation

context7-cli

Crates.io docs.rs License


English

What is context7-cli?

context7-cli is a native Rust binary that queries the public Context7 REST API (https://context7.com/api/v1) to search library documentation directly from your terminal — no Node.js, no Python, no extra runtime needed.

Why use it?

  1. Single binary — one file, zero runtime dependencies (no Node/Python required)
  2. Cross-platform — Linux, macOS, and Windows with identical behavior
  3. XDG-compliant storage — API keys stored securely in ~/.config/context7/config.toml with chmod 600 (or OS equivalent)
  4. Multi-key rotation — up to 17 API keys with automatic shuffle and exponential backoff retry (500ms → 1s → 2s, 3 attempts)
  5. Bilingual UI — English and Brazilian Portuguese output (v0.2.0+)
  6. Privacy-first — no telemetry, no analytics, no data collection; keys are masked in all logs and list output
  7. Structured error handling — zero unwrap() in production; every error path returns a user-friendly message
  8. Multiple output formats — colored human-readable, --json for pipes/scripts, --text for LLM context

Quick install

Linux / macOS (via Cargo):

cargo install context7-cli
context7 --help

Windows (via Cargo + rustup):

# Install Rust from https://rustup.rs first, then:
cargo install context7-cli
context7 --help

Build from source:

git clone https://github.com/daniloaguiarbr/context7-cli
cd context7-cli
cargo build --release
./target/release/context7 --help

The crate is published as context7-cli on crates.io. The installed binary is context7 (no -cli suffix).

First run

# Step 1 — Add your API key (get yours at https://context7.com)
context7 keys add ctx7sk-YOUR-KEY-HERE

# Step 2 — Verify it was stored
context7 keys list

# Step 3 — Search a library
context7 library react

# Step 4 — Fetch documentation
context7 docs /facebook/react --query "useEffect cleanup"

Core commands

# Search libraries by name
context7 library react
context7 lib axum "middleware"          # alias + semantic context
context7 search tokio "mpsc channel"   # alias + semantic context

# Fetch documentation
context7 docs /facebook/react
context7 docs /tokio-rs/tokio --query "spawn_blocking" --text
context7 docs /tokio-rs/tokio -q "spawn_blocking" --text   # -q is short for --query
context7 doc  /rust-lang/rust --query "lifetimes" --json

# Manage API keys
context7 keys add ctx7sk-...           # add a key
context7 keys list                     # list saved keys (masked)
context7 keys remove 2                 # remove by 1-based index
context7 keys clear --yes              # remove all keys
context7 keys path                     # show config file path
context7 keys export                   # export to .env format
context7 keys import .env              # import from .env file
context7 keys rotate                   # rotate to next available key

Output formats

Flag Description Best for
(none) Colored, human-readable Terminal reading
--json Pretty-printed JSON Scripts, pipes, jaq
--text Plain text (docs only) LLM context, rg pipelines
--lang en|pt Force UI language Multilingual workflows

Language selection (v0.2.0+)

# Force English output
context7 --lang en library react

# Force Portuguese output
context7 --lang pt docs /facebook/react --query "hooks"

# Permanent override via environment variable
export CONTEXT7_LANG=en
context7 library react    # always English from now on

Auto-detect order: --lang flag → CONTEXT7_LANG env var → system locale → English (default).

Full documentation

See docs/HOW_TO_USE.md for a complete step-by-step guide covering Linux, macOS, and Windows.

For LLM integration patterns, see docs/context7-skill.md and docs/context7-llm-rules.md.


Português

O que é o context7-cli?

context7-cli é um binário Rust nativo que consulta a API REST pública do Context7 (https://context7.com/api/v1) para buscar documentação de bibliotecas diretamente no terminal — sem Node.js, sem Python, sem runtime adicional.

Por que usar?

  1. Binário único — um arquivo só, zero dependências de runtime (sem Node/Python)
  2. Cross-platform — Linux, macOS e Windows com comportamento idêntico
  3. Armazenamento XDG — chaves de API salvas com segurança em ~/.config/context7/config.toml com chmod 600 (ou equivalente do OS)
  4. Rotação multi-chave — até 17 chaves de API com shuffle automático e retry com backoff exponencial (500ms → 1s → 2s, 3 tentativas)
  5. Interface bilíngue — saída em inglês e português brasileiro (v0.2.0+)
  6. Privacidade em primeiro lugar — sem telemetria, sem analytics, sem coleta de dados; chaves mascaradas em todos os logs e no output de list
  7. Tratamento estruturado de erros — zero unwrap() em produção; todo caminho de erro retorna mensagem amigável ao usuário
  8. Múltiplos formatos de saída — colorido legível para humanos, --json para pipes/scripts, --text para contexto de LLM

Instalação rápida

Linux / macOS (via Cargo):

cargo install context7-cli
context7 --help

Windows (via Cargo + rustup):

# Instale o Rust em https://rustup.rs primeiro, depois:
cargo install context7-cli
context7 --help

Build a partir do fonte:

git clone https://github.com/daniloaguiarbr/context7-cli
cd context7-cli
cargo build --release
./target/release/context7 --help

O crate está publicado no crates.io como context7-cli. O binário instalado é context7 (sem o sufixo -cli).

Primeira execução

# Passo 1 — Adicione sua chave de API (obtenha em https://context7.com)
context7 keys add ctx7sk-SUA-CHAVE-AQUI

# Passo 2 — Verifique se foi salva
context7 keys list

# Passo 3 — Busque uma biblioteca
context7 library react

# Passo 4 — Busque documentação
context7 docs /facebook/react --query "useEffect e cleanup"

Comandos principais

# Buscar bibliotecas por nome
context7 library react
context7 lib axum "middleware"          # alias + contexto semântico
context7 search tokio "canal mpsc"     # alias + contexto semântico

# Buscar documentação
context7 docs /facebook/react
context7 docs /tokio-rs/tokio --query "spawn_blocking" --text
context7 docs /tokio-rs/tokio -q "spawn_blocking" --text   # -q é alias de --query
context7 doc  /rust-lang/rust --query "lifetimes" --json

# Gerenciar chaves de API
context7 keys add ctx7sk-...           # adicionar chave
context7 keys list                     # listar chaves salvas (mascaradas)
context7 keys remove 2                 # remover por índice 1-based
context7 keys clear --yes              # remover todas as chaves
context7 keys path                     # exibir caminho do arquivo config
context7 keys export                   # exportar em formato .env
context7 keys import .env              # importar de arquivo .env
context7 keys rotate                   # rotar para a próxima chave disponível

Formatos de saída

Flag Descrição Melhor para
(nenhuma) Colorido, legível por humanos Leitura no terminal
--json JSON pretty-printed Scripts, pipes, jaq
--text Texto plano (apenas docs) Contexto de LLM, pipelines com rg
--lang en|pt Forçar idioma da interface Fluxos multilíngues

Seleção de idioma (v0.2.0+)

# Forçar saída em inglês
context7 --lang en library react

# Forçar saída em português
context7 --lang pt docs /facebook/react --query "hooks"

# Override permanente via variável de ambiente
export CONTEXT7_LANG=pt
context7 library react    # sempre em português a partir de agora

Ordem de detecção: flag --lang → variável CONTEXT7_LANG → locale do sistema → inglês (padrão).

Documentação completa

Veja docs/HOW_TO_USE.md para um guia passo a passo completo cobrindo Linux, macOS e Windows.

Para padrões de integração com LLM, veja docs/context7-skill.md e docs/context7-llm-rules.md.


License

Dual-licensed under MIT OR Apache-2.0, at your choice.

Copyright 2026 Danilo Aguiar <daniloaguiarbr@pm.me>