OpenShiba é um CLI interativo no terminal para conversar com modelos de IA. Suporta múltiplos providers (OpenRouter, OpenAI, Anthropic, Groq, Ollama, LM Studio e custom), streaming em tempo real, syntax highlighting, histórico de conversas, e muito mais — tudo direto no seu terminal.
╔════════════════════════════════════════════════════════╗
║ ███████╗ ██████╗ ██████╗ ████████╗ ██████╗ ██████╗ ║
║ ██╔════╝██╔═══██╗██╔══██╗╚══██╔══╝ ██╔══██╗██╔══██╗║
║ ███████╗██║ ██║██████╔╝ ██║ ██████╔╝██████╔╝║
║ ╚════██║██║ ██║██╔══██╗ ██║ ██╔══██╗██╔═══╝ ║
║ ███████║╚██████╔╝██║ ██║ ██║ ██║ ██║██║ ║
║ ╚══════╝ ╚═════╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝╚═╝ ║
║ ███╗ ██╗███████╗████████╗ █████╗ ██╗███╗ ███╗ ║
║ ████╗ ██║██╔════╝╚══██╔══╝██╔══██╗██║████╗ ████║ ║
║ ██╔██╗ ██║█████╗ ██║ ███████║██║██╔████╔██║ ║
║ ██║╚██╗██║██╔══╝ ██║ ██╔══██║██║██║╚██╔╝██║ ║
║ ██║ ╚████║███████╗ ██║ ██║ ██║██║██║ ╚═╝ ██║ ║
║ ╚═╝ ╚═══╝╚══════╝ ╚═╝ ╚═╝ ╚═╝╚═╝╚═╝ ╚═╝ ║
╚════════════════════════════════════════════════════════╝
- 🔄 7 Providers: OpenRouter, OpenAI, Anthropic, Groq, Ollama, LM Studio, Custom
- 📡 Streaming em tempo real: respostas com fluxo contínuo
- 🎨 Syntax highlighting: código colorido no terminal
- 📋 Histórico persistente: salva conversas com busca
- 🤖 Listagem de modelos:
/modelsbusca modelos em tempo real do provider - 📦 Ollama integrado: mostra modelos baixados e disponíveis para download
- 🔧 RAG básico: anexe arquivos como contexto (
/attach) - 📊 Token tracking: contagem de tokens em tempo real
- 🎭 ASCII Shiba Inu: mascote interativo
- ⌨️ Multiline mode: mensagens com múltiplas linhas
- 🔁 Retry com backoff: 3 tentativas com espera exponencial
- 💾 Perfis: múltiplos perfis de configuração
- 📤 Export: exporte conversas em Markdown ou JSON
- Node.js 18 ou superior
- Ollama (opcional, para modelos locais) — baixe aqui
# Clone o repositório
git clone https://github.com/Eliene-byte/openshiba.git
cd openshiba
# Instale as dependências
npm install
# Compile o TypeScript
npm run build
# Rode o OpenShiba
npx openshibanpm install -g .
openshibaWindows: se
openshibanão for reconhecido, usenpx openshiba.
npx openshiba# Para Ollama (local) — já vem configurado por padrão
/provider ollama
# Para OpenRouter
/provider openrouter
/key sk-or-v1-xxxxxxxxxxxx
# Para OpenAI
/provider openai
/key sk-xxxxxxxxxxxx
# Para Anthropic
/provider anthropic
/key sk-ant-xxxxxxxxxxxx
# Para Groq
/provider groq
/key gsk_xxxxxxxxxxxx# Lista modelos disponíveis do provider (busca em tempo real)
/models
# Mostra modelos baixados + populares para download (Ollama)
/models
# Seleciona modelo pelo número
/models 3
# Ou diretamente pelo nome
/model qwen2.5
/model gpt-4o
/model anthropic/claude-sonnet-4> Olá, como você está?
> Me ajude a escrever uma função em Python
> /clear
| Comando | Descrição | Exemplo |
|---|---|---|
/help |
Lista todos os comandos | /help |
/models |
Lista modelos do provider (tempo real) | /models |
/models 3 |
Seleciona modelo pelo número | /models 3 |
/model |
Troca modelo pelo nome ou número | /model qwen2.5 |
/list |
Lista modelos disponíveis (live) | /list |
/provider |
Lista ou troca provider | /provider openrouter |
/key |
Mostra ou define API key | /key sk-xxx |
/config |
Mostra ou altera configuração | /config temperature=0.9 |
/system |
Mostra ou define system prompt | /system Você é um expert |
/clear |
Limpa mensagens da conversa | /clear |
/reset |
Reseta tudo para o padrão | /reset |
/history |
Navega no histórico | /history list |
/load |
Carrega conversa salva | /load <id> |
/save |
Salva conversa atual | /save nome |
/export |
Exporta conversa para arquivo | /export md |
/copy |
Copia última resposta | /copy |
/tokens |
Mostra uso de tokens | /tokens |
/stream |
Liga/desliga streaming | /stream |
/multiline |
Instruções multiline | /multiline |
/pipe |
Instruções pipe mode | /pipe |
/run |
Executa arquivo .shibaprompt | /run file.shiba |
/whoami |
Mostra info da sessão | /whoami |
/attach |
Anexa arquivo como contexto | /attach code.py |
/diff |
Compara duas respostas | /diff |
/exit |
Sai do OpenShiba | /exit |
Rode modelos localmente sem internet. O comando /models mostra:
- ✅ Modelos baixados: prontos para usar com tamanho do arquivo
- 📦 Para baixar: modelos populares com o comando
ollama pull
# Baixe modelos com Ollama
ollama pull llama3.3
ollama pull qwen2.5
ollama pull mistral
# Depois selecione no OpenShiba
/models
/model qwen2.5Acesse centenas de modelos via uma API:
/provider openrouter
/key sk-or-v1-sua-key
/models/provider openai
/key sk-sua-key
/models/provider anthropic
/key sk-ant-sua-key
/modelsUltra-rápido com modelos open-source:
/provider groq
/key gsk_sua-key
/modelsQualquer endpoint compatível com OpenAI:
/provider lmstudio
# ou
/provider customopenshiba # Inicia com perfil padrão
openshiba --profile dev # Inicia com perfil "dev"
openshiba --provider groq # Inicia com provider Groq
openshiba --model llama3.3 # Inicia com modelo específico
openshiba --debug # Modo debug
openshiba --run file.shiba # Executa um arquivo .shibaprompt
echo "pergunta" | openshiba --pipe # Pipe modeopenshiba/
├── src/
│ ├── cli/
│ │ ├── index.ts # Entry point (Commander.js)
│ │ ├── repl.tsx # REPL principal (Ink + React)
│ │ └── commands/
│ │ ├── index.ts # Registro de comandos
│ │ ├── models.ts # /models (busca live)
│ │ ├── model.ts # /model (troca rápida)
│ │ ├── list.ts # /list
│ │ ├── provider.ts # /provider
│ │ ├── key.ts # /key
│ │ ├── config.ts # /config
│ │ ├── system.ts # /system
│ │ ├── help.ts # /help
│ │ ├── ... (mais 15 comandos)
│ ├── providers/
│ │ ├── base.ts # Factory de providers
│ │ ├── ollama.ts # Ollama (local)
│ │ ├── openrouter.ts # OpenRouter
│ │ ├── openai.ts # OpenAI
│ │ ├── anthropropic.ts # Anthropic
│ │ ├── groq.ts # Groq
│ │ ├── custom.ts # Custom (qualquer OpenAI-compatível)
│ ├── ui/
│ │ ├── header.tsx # ASCII art + info
│ │ ├── message.tsx # Mensagens com markdown
│ │ ├── statusbar.tsx # Barra de status
│ │ ├── spinner.tsx # Spinner animado
│ │ └── shiba.tsx # Mascote ASCII
│ ├── storage/
│ │ ├── config.ts # Config persistente (conf)
│ │ └── history.ts # Histórico (sql.js)
│ ├── utils/
│ │ ├── tokenizer.ts # Estimativa de tokens
│ │ ├── markdown.ts # Render markdown → ANSI
│ │ └── rag.ts # Chunking para /attach
│ └── types.ts # Tipos e configs padrão
├── package.json
└── tsconfig.json
| Tecnologia | Uso |
|---|---|
| Ink v5 | React para terminal |
| TypeScript | Tipagem estática |
| chalk v5 | Cores no terminal |
| figlet | ASCII art |
| sql.js | SQLite (pure JS, sem C++) |
| openai | SDK OpenAI/compatíveis |
| @anthropic-ai/sdk | SDK Anthropic |
| ollama | SDK Ollama |
| marked-terminal | Markdown no terminal |
| highlight.js | Syntax highlighting |
| clipboardy | Copiar para clipboard |
MIT
Feito com 🐕 por Eliene-byte