Versao do shortcoder com estetica (Bulletin Board System) classica dos anos 90.
Linux (x86_64) e macOS (Apple Silicon):
curl -fsSL https://raw.githubusercontent.com/peder1981/shortcoder/master/install.sh | bashInstala em ~/.local/bin/shortcoder.
Windows: baixe e execute shortcoder-windows-amd64-setup.exe na
página de releases — instalador
NSIS que copia o binário para %LOCALAPPDATA%\Programs\shortcoder, cria atalho no Menu
Iniciar e adiciona ao PATH do usuário (abra um terminal novo depois de instalar). O
instalador não é assinado digitalmente, então o SmartScreen do Windows vai avisar na
primeira execução — clique em "Mais informações" → "Executar assim mesmo".
| Plataforma | Arquitetura | Asset |
|---|---|---|
| Linux | amd64 | shortcoder-linux-amd64.tar.gz |
| macOS | arm64 (Apple Silicon) | shortcoder-macos-arm64.tar.gz |
| Windows | amd64 | shortcoder-windows-amd64-setup.exe (instalador) ou shortcoder-windows-amd64.zip (binário avulso) |
Cada release traz um checksums.txt (SHA-256) para conferir a integridade do download.
- ASCII Art no header com o nome "SHORTCODER"
- Cores vintage: amarelo (#FFFF00), ciano, verde, magenta
- Caixas delimitadas com
+──+|estilo - Status bar comModel/Session/Agent/Mem0
- Mensagens formatadas em blocos com bordas
/agent — Troca entre ollama (rapido), mem0 (memoria), ernesto (RAG), agnes (remoto), orchestrator (agnes roteia ollama local)
/model — Lista e seleciona modelo
/mem0 list — Visualiza memorias salvas
/mem0 add — Salva memoria persistente
/mem0 clear— Remove todas as memorias
/history — Mostra historico de conversas
/clear — Nova sessao (limpa historico)
/help — Esta ajuda
/exit — Sair
O shortcoder usa ~/.config/shortcoder/config.json para todas as configuracoes.
O arquivo e criado automaticamente na primeira execucao e NUNCA sobrescrito.
/config — Ver configuracao atual
/config set <p> <v> — Definir valor (ex: /config set agents.ernesto.timeout 120)
/config reset — Reseta para padroes
/reload — Recarrega config do disco
Valores configuraveis:
| Caminho | Tipo | Padrao | Descricao |
|---|---|---|---|
defaults.model |
string | lfm25-1b-uncensored:latest |
Modelo LLM padrao |
defaults.agent |
string | ollama |
Agente padrao |
defaults.mem0_user |
string | default |
User ID do mem0 |
agents.<name>.enabled |
bool | true |
Habilitar/desabilitar agente |
agents.<name>.timeout |
int | variavel | Timeout HTTP em segundos |
agents.<name>.url |
string | variavel | URL do endpoint |
theme.colors.* |
string | variavel | Codigos ANSI SGR |
theme.border_style |
string | box |
box ou double |
theme.banner_style |
string | ascii |
ascii ou text |
routing.ernesto_keywords |
array | lista completa | Palavras-chave para roteamento ernesto |
features.history_max_entries |
int | 100 |
Limite de entradas no historico |
Em terminal interativo (não em pipe/redirect), o prompt suporta os atalhos comuns de shell/readline:
| Atalho | Ação |
|---|---|
↑ / ↓ |
Navega o histórico dos últimos 20 comandos digitados |
← / → |
Move o cursor na linha |
Ctrl+A / Ctrl+E |
Vai para início / fim da linha |
Ctrl+U / Ctrl+K |
Apaga até o início / fim da linha |
Backspace / Delete |
Apaga o caractere antes / depois do cursor |
Ctrl+L |
Limpa a tela, mantém a linha em edição |
Ctrl+C |
Cancela a linha atual (não sai do programa) |
Ctrl+D |
Sai (só em linha vazia, como no bash) |
| Agente | Backend | Velocidade | Uso |
|---|---|---|---|
| ollama | :11434/v1/chat |
~1-3s | Conversas rapidas |
| mem0 | :9081/memories/ |
<1s | Memoria persistente |
| ernesto | :9081/v1/chat |
>30s (timeout) | RAG + contexto |
| agnes | apihub.agnes-ai.com/v1/chat/completions |
remoto (cloud) | Agnes 2.5 Flash — requer AGNES_API_KEY (ver docs) |
| orchestrator | Agnes decide + :11434 local + Agnes revisa |
~2 chamadas remotas + 1 local (async) | Agnes 2.5 Flash roteia a pergunta para o melhor modelo Ollama local (via job assíncrono do AdvPP) e revisa a resposta antes de exibir. Requer AGNES_API_KEY e Ollama local rodando. |
Requer um checkout do AdvPP (ADVPP_SRC ou rodar de
dentro do próprio repositório do compilador) e toolchain Go + C (CGO obrigatório).
O fonte é modular: shortcoder.prw é apenas o agregador com #include dos módulos em
src/*.prw (config, ui, texto, agentes, memória, comandos, modelos e pickers). A compilação
continua sendo de um único arquivo:
cd ~/Projetos/shortcoder
advplc build shortcoder.prw -o shortcoder
./shortcoderCross-compile para Windows a partir do Linux (via mingw-w64):
sudo apt install gcc-mingw-w64-x86-64
GOOS=windows GOARCH=amd64 CC=x86_64-w64-mingw32-gcc CGO_ENABLED=1 \
ADVPP_SRC=/caminho/para/AdvPP advplc build shortcoder.prw -o shortcoder.exemacOS precisa compilar nativamente numa Mac (CGO + frameworks Cocoa/OpenGL não cruzam a
partir do Linux) — é o que o workflow .github/workflows/release.yml faz num runner
macos-latest a cada tag vX.Y.Z publicada.
# Testar ajuda
printf '/help\n/exit\n' | ./shortcoder
# Testar resposta LLM
printf '2+2\n/exit\n' | ./shortcoder
# Testar memoria
printf '/mem0 add "teste"\n/mem0 list\n/exit\n' | ./shortcoder
# Testar historico
printf 'ola\n/history\n/exit\n' | ./shortcoder| Versao | Estilo | Funcionalidades |
|---|---|---|
| shortcoder | Minimalista | LLM via ProcRun |
| shortcoder-rag | Cards modernos | LLM + Mem0 HTTP |
| shortcoder | retrô | LLM + Mem0 + visual |