CLI interna da Linkana. Consumida pelo Cowork (Claude) em nome dos times de
CS/Onboarding para parametrizar buyers em massa, sem UI e sem pedir scripts à
engenharia. Fala com o backend Rails via format.json.
Inspiração:
fizzy-cli/fizzy-sdk. Verdocs/references/fizzy-reference.md.
Esqueleto + doctor + autenticação via PAT (auth, whoami) + suppliers
(supplier list|show). Mais comandos de recurso vêm depois.
Via Homebrew (macOS; cask no tap da linkanalabs):
brew install linkanalabs/tap/lk
lk doctorO cask é atualizado automaticamente pelo GoReleaser a
cada release. Para atualizar: brew upgrade lk.
Outras formas (Linux ou sem brew)
# Instalador (detecta OS/arch, baixa do último release, verifica checksum,
# instala em ~/.local/bin/lk — override com LK_BIN_DIR)
git clone https://github.com/linkanalabs/cli && cd cli && ./scripts/install.sh
# Build a partir do código (precisa de Go 1.26+)
git clone https://github.com/linkanalabs/cli && cd cli && make build && ./lk doctor
# Ou baixe o tar.gz da sua plataforma direto dos releases:
# https://github.com/linkanalabs/cli/releases- Go 1.26+ (apenas para build a partir do código)
make build # gera ./lk
./lk version
./lk doctorSaída é JSON por padrão (machine-readable). Use --format styled para texto
legível no terminal.
| Fonte | Como |
|---|---|
| Arquivo | ~/.config/lk/config.yml (base_url: ...), respeita XDG_CONFIG_HOME |
| Env | LK_API_URL sobrepõe o arquivo |
| Default | http://localhost:3000 |
| Comando | O que faz |
|---|---|
lk version |
versão do binário |
lk doctor |
checks: version, runtime, config, filesystem, reachability (GET /up) e autenticação (GET /my/identity.json, pula se sem token ou backend inalcançável) |
lk auth login |
guarda um PAT (--token, env LK_TOKEN ou prompt no stdin) para o base_url ativo |
lk auth status |
mostra se há token guardado e a origem (env/keychain/arquivo), sem revelar o segredo |
lk auth logout |
apaga o token guardado do base_url ativo |
lk whoami |
mostra a identidade autenticada (GET /my/identity.json) |
lk supplier list |
lista suppliers (GET /srm/suppliers); JSON é um array bare |
lk supplier show <id> |
mostra um supplier (GET /srm/suppliers/<id>/panel) |
lk --help |
ajuda |
lk auth login --token lkn_xxx_yyy # ou: LK_TOKEN=lkn_... lk auth login
lk whoami # confirma a identidade
lk auth status
lk auth logoutO token é guardado no keychain do SO (via go-keyring), com fallback para um
arquivo atômico 0600 em ~/.config/lk/tokens/ (respeita XDG_CONFIG_HOME),
sempre por base_url. A env LK_TOKEN sobrepõe o que estiver guardado;
LK_NO_KEYRING força o fallback de arquivo (útil em CI/headless).
make test # testes com -race
make cover # gate de cobertura ≥95%
make lint # golangci-lint
make dev # lk doctor contra localhost:3000Regras do repo em CLAUDE.md. Não abra PR sem make test verde e cobertura ≥95%.