crm-cli
Um CRM pessoal local-first para o terminal — gerencie contatos, negócios, interações e tarefas a partir do Claude com 18 ferramentas integradas, tudo armazenado em um arquivo SQLite local.
Documentação
crm — seus contatos, no seu terminal.

Um CRM pessoal local-first que vive no seu terminal. Gerencie contatos, organizações, interações, negócios e tarefas — tudo pela linha de comando. Inclui um servidor MCP integrado para que agentes de IA como o Claude possam ler e atualizar seu CRM diretamente.
Binário estático único. Banco de dados SQLite. Sem nuvem. Sem contas. Seus dados permanecem na sua máquina.
Recursos
- Pessoas e Organizações — contatos com perfis completos, vinculados a empresas
- Registro de Interações — acompanhe ligações, e-mails, reuniões, anotações e mensagens
- Negócios e Pipeline — oportunidades de vendas com etapas, valores e visualização de pipeline
- Tarefas — acompanhamentos com datas de vencimento, prioridades e rastreamento de conclusão
- Tags — etiquetas em qualquer entidade para organização flexível
- Relacionamentos — vínculos entre pessoas (colega, mentor, indicado por, …)
- Pesquisa de Texto Completo — encontre qualquer coisa em todas as entidades instantaneamente
- Briefing de Contexto — um comando para obter tudo sobre uma pessoa antes de uma reunião
- Pronto para IA — servidor MCP integrado para Claude e outros agentes de IA
- Múltiplos Formatos de Saída — tabela, JSON, CSV, TSV — encaminhe para qualquer ferramenta
- Zero Dependências — binário único, SQLite em Go puro, roda em qualquer lugar
Instalação
# Homebrew (macOS/Linux)
brew install jdanielnd/tap/crm
# Go
go install github.com/jdanielnd/crm-cli/cmd/crm@latest
# Or download a binary from GitHub Releases
# https://github.com/jdanielnd/crm-cli/releases
Início Rápido
# Add a company
crm org add "Acme Corp" --domain acme.com
# Add a contact and link them to the org
crm person add "Jane Smith" --email jane@example.com --org 1
# Log a call
crm log call 1 --subject "Intro call"
# Get a full briefing before your next meeting
crm context 1
# See your dashboard
crm status
Comandos
Pessoas
crm person add "Jane Smith" --email jane@example.com --phone 555-1234 --org 1
crm person list # all contacts
crm person list --tag vip --limit 10 # filtered
crm person show 1 # full details
crm person edit 1 --title "CTO" --company "Acme Corp"
crm person delete 1 # soft-delete (recoverable)
Organizações
crm org add "Acme Corp" --domain acme.com --industry SaaS
crm org list
crm org show 1 --with-people # show org + its members
crm org edit 1 --domain acme.io
crm org delete 1
Interações
crm log call 1 --subject "Discussed roadmap" --content "Agreed on Q2 timeline"
crm log email 1 --subject "Follow-up" --direction outbound
crm log meeting 1 2 --subject "Product demo" --at "2026-03-05 14:00"
crm log note 1 --subject "Quick check-in" --content "Seemed interested"
crm log list --person 1 --limit 5 # recent interactions with person
Negócios
crm deal add "Website Redesign" --value 15000 --person 1 --stage proposal
crm deal list --open # exclude won/lost
crm deal list --stage proposal
crm deal show 1
crm deal edit 1 --stage won --closed-at 2026-03-15
crm deal delete 1
crm deal pipeline # summary by stage
Tarefas
crm task add "Follow up on proposal" --person 1 --due 2026-03-14 --priority high
crm task list # open tasks
crm task list --overdue # past due
crm task list --all # include completed
crm task show 1
crm task edit 1 --priority medium
crm task done 1 # mark completed
crm task delete 1
Tags
crm tag apply person 1 "vip"
crm tag apply deal 1 "q2"
crm tag show person 1 # tags on a person
crm tag remove person 1 "vip"
crm tag list # all tags
crm tag delete "old-tag" # remove tag entirely
Relacionamentos
crm person relate 1 2 --type colleague --notes "Met at ReactConf"
crm person relationships 1 # list all relationships
crm person unrelate 1 # remove by relationship ID
Tipos de relacionamento: colleague, friend, manager, mentor, referred-by
Pesquisa
crm search "jane" # searches people, orgs, interactions, deals
crm search "roadmap" --type interaction # filter by entity type
Briefing de Contexto
crm context 1 # full briefing by person ID
crm context "Jane Smith" # or by name
Retorna perfil da pessoa, organização, interações recentes, negócios abertos, tarefas pendentes, relacionamentos e tags — tudo o que você precisa antes de uma reunião.
Painel
crm status
Mostra contagens de contatos/orgs, negócios abertos com valor total, contagens de tarefas, itens atrasados, detalhamento do pipeline e atividade recente.
Formatos de Saída
Cada comando suporta --format / -f:
crm person list # table (default in TTY)
crm person list -f json # JSON (default when piped)
crm person list -f csv # CSV
crm person list -f tsv # TSV
Use -q / --quiet para saída mínima (apenas IDs), útil para scripts:
crm person list --tag vip -q | xargs -I{} crm tag apply person {} "priority"
Pipes e Composição
crm segue convenções Unix — dados para stdout, mensagens para stderr, códigos de saída estruturados — então funciona bem com outras ferramentas:
# Bulk tag everyone at an org
crm person list -f json | jq '.[] | select(.org_id == 1) | .id' | xargs -I{} crm tag apply person {} "acme-team"
# Interactive selection with fzf
crm person list -f tsv | fzf | cut -f1 | xargs crm person show
# Export contacts to CSV
crm person list -f csv > contacts.csv
# Overdue task notifications
crm task list --overdue -f json | jq -r '.[] | "OVERDUE: \(.title)"'
Códigos de saída: 0 sucesso, 1 erro, 2 uso, 3 não encontrado, 4 conflito, 10 erro de banco de dados.
Integração com IA (Servidor MCP)
crm inclui um servidor MCP integrado para que agentes de IA possam consultar e atualizar seu CRM por meio de um protocolo estruturado.
Claude Code
claude mcp add crm -- crm mcp serve
Em seguida, copie AGENT.md para o seu projeto como CLAUDE.md para que o Claude saiba como usar o CRM de forma eficaz.
Claude Desktop (macOS)
-
Abra o arquivo de configuração em
~/Library/Application Support/Claude/claude_desktop_config.json -
Adicione o servidor CRM (se o arquivo já tiver outros servidores, adicione a entrada
"crm"dentro do objetomcpServersexistente):
{
"mcpServers": {
"crm": {
"command": "/opt/homebrew/bin/crm",
"args": ["mcp", "serve"]
}
}
}
Nota: Use o caminho completo para o binário. O Homebrew em Apple Silicon instala em
/opt/homebrew/bin/crm, em Macs Intel em/usr/local/bin/crm. Executewhich crmpara encontrar o seu.
-
Reinicie o Claude Desktop
-
Crie um novo Projeto, clique nas configurações do projeto e cole o conteúdo de
AGENT.mdnas instruções do projeto. Isso ensina ao Claude quando registrar interações, como manter resumos de contatos, convenções de tags e muito mais.
Ferramentas Disponíveis
| Ferramenta | Descrição |
|---|---|
crm_person_search | Buscar pessoas por nome, e-mail, tag, org |
crm_person_get | Obter detalhes completos de uma pessoa |
crm_person_create | Criar uma nova pessoa |
crm_person_update | Atualizar campos de uma pessoa |
crm_person_delete | Excluir (arquivar) uma pessoa |
crm_person_relate | Criar relacionamento entre pessoas |
crm_org_search | Buscar organizações |
crm_org_get | Obter detalhes da org com membros |
crm_interaction_log | Registrar uma ligação, e-mail, reunião ou anotação |
crm_interaction_list | Listar interações de uma pessoa |
crm_search | Pesquisa de texto completo entre entidades |
crm_context | Briefing completo da pessoa |
crm_deal_create | Criar um negócio |
crm_deal_update | Atualizar etapa/campos do negócio |
crm_task_create | Criar uma tarefa |
crm_task_list | Listar tarefas abertas |
crm_tag_apply | Aplicar uma tag |
crm_stats | Estatísticas resumidas do CRM |
Exemplo de Fluxo de Trabalho com IA
Após uma reunião, diga ao Claude:
"Acabei de ter uma ótima reunião com a Jane. Combinamos o cronograma, ela vai assinar na próxima semana."
O Claude pode:
- Registrar a interação com
crm_interaction_log - Atualizar a etapa do negócio com
crm_deal_update - Criar uma tarefa de acompanhamento com
crm_task_create - Atualizar o resumo da Jane com
crm_person_update
O campo summary nos contatos funciona como um dossiê vivo que os agentes de IA mantêm — lendo-o antes das reuniões para contexto, atualizando-o após interações com novos fatos e preferências.
Configuração
O banco de dados fica em ~/.crm/crm.db por padrão. Substitua com:
# Flag (highest priority)
crm --db /path/to/crm.db person list
# Environment variable
export CRM_DB=/path/to/crm.db
O banco de dados e o diretório são criados automaticamente no primeiro uso.
Sincronização com iCloud (macOS)
Aponte seu banco de dados para o iCloud Drive para backup automático entre máquinas:
export CRM_DB="$HOME/Library/Mobile Documents/com~apple~CloudDocs/crm/crm.db"
O modo WAL do SQLite lida bem com leituras concorrentes, mas evite gravar de duas máquinas simultaneamente.
Compilando a partir do Código-Fonte
git clone https://github.com/jdanielnd/crm-cli.git
cd crm-cli
go build -o crm ./cmd/crm
go test ./...
Requer Go 1.23+. Sem CGO — compila em qualquer lugar onde o Go roda.
Stack Tecnológica
| Componente | Escolha |
|---|---|
| Linguagem | Go |
| Banco de dados | SQLite via modernc.org/sqlite (Go puro, sem CGO) |
| CLI | Cobra |
| MCP | mcp-go |
| Pesquisa | SQLite FTS5 |
Licença
MIT