- Shell 62.2%
- JavaScript 20%
- TypeScript 17.8%
|
|
||
|---|---|---|
| .github/workflows | ||
| patchs | ||
| plugin | ||
| .gitignore | ||
| .qwenignore | ||
| AGENTS.md | ||
| install-mimocode-termux.sh | ||
| install-opencode.sh | ||
| opencode.json | ||
| README.md | ||
opencode-termux
Coleção de plugins, agents, skills e installers para opencode e @mimo-ai/cli no Termux/Android.
Estrutura
opencode-termux/
├── install-opencode.sh # Instalador do OpenCode AI
├── install-mimocode-termux.sh # Instalador do @mimo-ai/cli
├── opencode.json # Configuração de exemplo
├── plugin/
│ └── protect-android.ts # Plugin de proteção Android
├── patchs/
│ ├── apply_patch.sh # Patch manual no wrapper
│ └── opencode.js.patched # Wrapper patchado de referência
├── agents/ # Agents (em breve)
├── skills/ # Skills (em breve)
└── plugins/ # Plugins adicionais (em breve)
OpenCode AI
install-opencode.sh
Instalador automático do OpenCode AI no Termux.
Executa todo o setup necessário: instala dependências (glibc, patchelf), baixa e configura o opencode-ai e opencode-linux-arm64, e aplica os patches necessários.
Uso:
chmod +x install-opencode.sh
./install-opencode.sh
Requisitos: Termux com nodejs e npm instalados (pkg i nodejs).
patchs/apply_patch.sh
Aplica patch manualmente no wrapper do opencode-ai.
Use este script se precisar reaplicar o patch que permite o uso do grun como intermediário para execução do binário.
Uso:
chmod +x patchs/apply_patch.sh
./patchs/apply_patch.sh
Nota: O script faz backup do arquivo original antes de aplicar o patch.
patchs/opencode.js.patched
Arquivo patchado de referência.
Contém a versão modificada do wrapper para consulta ou aplicação manual caso o script automático falhe.
plugin/protect-android.ts
Plugin de proteção de diretórios sensíveis do Android.
Bloqueia operações perigosas em diretórios críticos:
| Diretório | Proteção |
|---|---|
*/Android/** |
Bloqueio total — nenhum comando permitido |
*/Download / */downloads |
Bloqueia rm, rmdir, mv na raiz; protege .exmu-cfg1.data |
*/Documents |
Bloqueia rm, rmdir, mv na raiz; protege .Android_a97515df71467a1d |
Uso: Adicione no seu opencode.json:
{
"plugin": ["./opencode-termux/plugin/protect-android.ts"]
}
Ou copie para .opencode/plugin/ para carregamento automático.
opencode.json
Configuração de exemplo do OpenCode.
Arquivo de configuração que demonstra como carregar o plugin protect-android.ts. Use como base para criar sua própria configuração.
MiMo-Code CLI
O problema
O @mimo-ai/cli usa os.platform() no postinstall para determinar qual pacote de binário baixar.
No Termux, os.platform() retorna "android", então o script procura por
@mimo-ai/mimocode-android-arm64 — que não existe. O binário correto é
@mimo-ai/mimocode-linux-arm64, que é compilado com glibc e precisa de grun
(glibc-runner) para executar no Termux.
install-mimocode-termux.sh
Instalador manual do @mimo-ai/cli para Termux.
Contorna a limitação do postinstall instalando o binário linux-arm64 e patcheando o wrapper para usar grun.
Uso:
chmod +x install-mimocode-termux.sh
./install-mimocode-termux.sh
O script:
- Verifica pré-requisitos (glibc, grun)
- Instala
@mimo-ai/cli(postinstall falha — esperado) - Instala
@mimo-ai/mimocode-linux-arm64 - Copia o binário e patcheia o wrapper para usar
grun
Requisitos: Termux com nodejs, npm, glibc e glibc-runner (pkg i glibc glibc-runner).
Como funciona
No Termux, binários Linux compilados com glibc não funcionam diretamente (Termux
usa bionic libc). A solução é usar grun (glibc-runner), que carrega a glibc do
repositório tur-repo e executa o binário com ela.
O wrapper bin/mimo é modificado para chamar childProcess.spawnSync("grun", [target, ...])
em vez de childProcess.spawnSync(target, ...).
Manutenção
Se você atualizar o @mimo-ai/cli via npm, o wrapper será sobrescrito e o patch
precisará ser reaplicado. Execute o script novamente após cada atualização.
Upstream fix necessário
Dois arquivos em packages/opencode/ precisam de alterações para suporte Android:
script/postinstall.mjs(~linha 19): Adicionarcase "android": platform = "linux"bin/mimo(platformMap ~linha 35-38): Adicionarandroid: "linux"e usargrunno spawn
Requisitos Gerais
- Termux (no Android, aarch64)
- Node.js e npm (
pkg i nodejs) - glibc e glibc-runner (
pkg i tur-repo glibc glibc-runner) - patchelf (
pkg i patchelf, opcional)