ashlr-workbench
Bancada de agente local que integra OpenHands, Goose, Aider e ashlrcode em um único LLM local, com servidores MCP ashlr-plugin pré-configurados.
Documentação
ashlr-workbench
Sua central local de agentes de codificação — quatro agentes, um LLM local, dez servidores MCP, zero dependências de nuvem.
O que é isto
Uma caixa de ferramentas curada e totalmente local que conecta quatro agentes de codificação de código aberto
(OpenHands, Goose, Aider, ashlrcode) a um único modelo do LM Studio
(Qwen3-Coder-30B) e ao mesmo conjunto de dez servidores MCP ashlr-plugin. O
workbench fornece uma CLI (aw), um healthcheck e um caminho de atualização, para que toda a
pilha pareça coesa em vez de quatro ferramentas soltas que você precisa cuidar. Nenhum
dado sai da máquina, a menos que você opte por um fallback em nuvem.
Início rápido
# 1. Clone the supporting plugin (provides the 10 MCP servers)
git clone https://github.com/ashlrai/ashlr-plugin ~/Desktop/ashlr-plugin
cd ~/Desktop/ashlr-plugin && bun install
# 2. Clone the workbench
git clone <this-repo-url> ~/Desktop/ashlr-workbench
cd ~/Desktop/ashlr-workbench
cp .env.example .env # then edit
# 3. Start LM Studio, load qwen/qwen3-coder-30b, click "Start Server"
# 4. Verify
./bin/aw doctor
# 5. Use
./bin/aw start aider # interactive session in cwd
./bin/aw start openhands # autonomous Docker-based agent
Para colocar aw no seu PATH (revise primeiro):
ln -sf ~/Desktop/ashlr-workbench/bin/aw /usr/local/bin/aw
A escalação de agentes
| Agent | Forma | Melhor para | Custo |
|---|---|---|---|
| OpenHands | Daemon Docker + GUI | PRs autônomos de múltiplas etapas, tarefas dirigidas por navegador | RAM pesada |
| Goose | CLI nativa em Rust | Sessões rápidas com uso de ferramentas, loop de aprovação inteligente | Leve |
| Aider | CLI em Python | Refatorações cirúrgicas arquivo por arquivo com diffs explícitos | Leve |
| ashlrcode | CLI npm/Bun (do Mason) | Trabalho pessoal do dia a dia, ciente de hooks, fallback em nuvem | Leve |
Escolha o que corresponde ao formato do trabalho — veja "Exemplos de uso" abaixo.
Arquitetura
┌─────────────────────────────────────────────┐
│ ashlr-workbench │
│ │
│ bin/aw → scripts/{start,health,update} │
└─────────────────────────────────────────────┘
│
┌───────────────────┬───────┴────────┬──────────────────┐
▼ ▼ ▼ ▼
┌──────────┐ ┌────────┐ ┌────────┐ ┌──────────┐
│ OpenHands│ │ Goose │ │ Aider │ │ashlrcode │
│ (docker) │ │ (rust) │ │(python)│ │ (bun) │
└────┬─────┘ └───┬────┘ └───┬────┘ └────┬─────┘
│ │ │ │
└──────────────┬───┴────────────────┴───────────────────┘
│ same MCP surface
▼
┌─────────────────────────┐ ┌────────────────┐
│ ashlr-plugin (10 MCPs) │ ←── │ LM Studio │
│ efficiency / sql / │ │ Qwen3-Coder │
│ bash / tree / http / │ │ -30B :1234 │
│ diff / logs / genome / │ └────────────────┘
│ orient / github │
└─────────────────────────┘ ┌────────────────┐
│ Ollama :11434 │
│ (fallback) │
└────────────────┘
Todos os quatro agentes falam com o mesmo LLM e as mesmas ferramentas MCP, então o comportamento é consistente independentemente de qual você iniciar.
Requisitos
- macOS 14+ (Apple Silicon recomendado; Intel funciona, mas é mais lento)
- Docker Desktop — para OpenHands
- LM Studio com
qwen/qwen3-coder-30bcarregado — LLM principal - Bun ≥ 1.1 — para servidores MCP ashlr-plugin e ashlrcode
- Python 3.12+ — para Aider
- Node ≥ 20 / npm — para
npm install -g ashlrcode - ~32 GB de RAM livre (Qwen3-Coder-30B em 4-bit precisa de ~24 GB em uso)
- ~30 GB de disco livre (imagens Docker + modelo)
- Opcional: Ollama como LLM de fallback
- Opcional: CLI
ghpara GitHub PAT (GITHUB_TOKEN="$(gh auth token)")
Instalação
# Plugin (provides the MCP servers all 4 agents share)
git clone https://github.com/ashlrai/ashlr-plugin ~/Desktop/ashlr-plugin
cd ~/Desktop/ashlr-plugin && bun install
# Workbench
git clone <this-repo-url> ~/Desktop/ashlr-workbench
cd ~/Desktop/ashlr-workbench
cp .env.example .env
# Per-agent installers (only run the ones you want)
./scripts/install-goose.sh # Goose via Homebrew
pipx install aider-chat # Aider (or: pip install --user aider-chat)
npm install -g ashlrcode # ashlrcode
# OpenHands needs no install — `aw start openhands` pulls the image on first run
Após a instalação, verifique:
./bin/aw doctor # actionable diagnosis
./bin/aw health # full 13-point check
Exemplos de uso
| Cenário | Melhor agente | Comando |
|---|---|---|
| "Refatorar o tratamento de erros deste arquivo" | Aider | aw start aider . |
| "Adicionar testes, executá-los, corrigir até ficar verde — autônomo" | OpenHands | aw start openhands depois prompt na GUI |
| "Sessão interativa rápida, principalmente chamadas de ferramentas" | Goose | aw start goose |
| "Meu driver habitual — hooks, recall, rápido" | ashlrcode | aw start ashlrcode |
| "Abrir um PR para mim de ponta a ponta" | OpenHands | dê a ele uma URL do GitHub na GUI |
| "Explicar o que este codebase faz" | Goose | aw start goose → "orientar no cwd" |
Configuração
As configurações por agente ficam em agents/:
agents/openhands/config.toml # OpenHands runtime settings
agents/openhands/mcp.json # MCP servers wired into OpenHands
agents/goose/config.yaml # Goose source-of-truth (copied to runtime on launch)
agents/aider/aider.conf.yml # Aider model + UX
agents/ashlrcode/settings.json # ashlrcode overlay (XAI primary, LM Studio fallback)
O ambiente do workbench inteiro fica em .env (veja .env.example).
Solução de problemas
| Sintoma | Correção |
|---|---|
aw start openhands diz que o Docker não está em execução | Inicie o Docker Desktop, aguarde o ícone da baleia, tente novamente |
| LM Studio "endpoint não responde" | Abra LM Studio → Developer → Start Server, carregue o modelo |
| O servidor MCP falha ao iniciar em qualquer agente | cd ~/Desktop/ashlr-plugin && bun install |
| A GUI do OpenHands carrega, mas o agente erra na primeira interação | Confirme que qwen/qwen3-coder-30b é o modelo carregado |
aider não encontrado após a instalação | pipx ensurepath ou adicione ~/.local/bin ao PATH |
ashlrcode reclama sobre XAI_API_KEY | Defina em .env ou execute com fallback do LM Studio |
Para qualquer outra coisa, execute aw doctor — ele imprime a correção exata para cada problema
que detecta.
Contribuindo / estendendo
Para adicionar um novo agente:
- Crie
agents/<name>/com o(s) arquivo(s) de configuração do agente. - Crie
scripts/start-<name>.shque o inicie apontando para a configuração do workbench e o endpoint do LM Studio. - (Se tiver um daemon) Crie
scripts/stop-<name>.sh. - Adicione-o às declarações
caseembin/aw(require_agent,cmd_start,cmd_stop,cmd_status). - Adicione linhas de validação para sua configuração em
scripts/healthcheck.sh. - Atualize a tabela de agentes e o diagrama de arquitetura deste README.
Consulte CLAUDE.md para convenções do projeto.
Licença
MIT — veja LICENSE.