CLI Go qui automatise la détection, l'installation et la configuration d'OpenCode et de ses agents/skills IA.
LFA CLI analyse votre système, détecte les outils IA installés (OpenCode, Ollama), puis déploie automatiquement :
- 23 agents pré-configurés
- 26 skills spécialisés
- Configuration MCP (filesystem, memory, github, fetch, ollama, PostgreSQL)
- Permissions OpenCode adaptées
- Notifications multi-plateforme (Linux, macOS, Windows)
curl -fsSL https://lfa-cli.vercel.app/install.sh | shOu téléchargez le binaire depuis les GitHub Releases.
| Commande | Description |
|---|---|
lfa version |
Affiche la version |
lfa doctor |
Diagnostic système (OS, OpenCode, Ollama, chemins) |
lfa setup |
Déploie la configuration OpenCode |
lfa dashboard [-y] |
TUI interactif (ou -y pour mode non-interactif) |
lfa info |
Liste les agents et skills déployés |
lfa notify |
Envoie une notification desktop multi-plateforme |
| Commande | Flag | Description |
|---|---|---|
setup |
--ollama |
Active l'intégration Ollama (par défaut: true) |
setup |
--dry-run |
Simule sans écrire de fichiers |
setup |
--postgres |
Active PostgreSQL (MCP pg-mcp-server) |
| (global) | -y, --yes |
Mode non-interactif (répond oui à tout) |
# Diagnostic rapide
lfa doctor
# Installation complète avec Ollama
lfa setup --ollama
# Simulation sans écriture
lfa setup --dry-run
# Mode automatique
lfa dashboard -ylfa-cli-ai/
├── main.go # Point d'entrée
├── cmd/
│ ├── root.go # Commande racine (Cobra)
│ ├── version.go # lfa version
│ ├── doctor.go # lfa doctor
│ ├── setup.go # lfa setup
│ ├── dashboard.go # lfa dashboard
│ ├── info.go # lfa info
│ ├── notify.go # lfa notify
│ └── setup_shared.go # Logique partagée setup/dashboard
├── internal/
│ ├── config/
│ │ └── config.go # Génération/écriture config OpenCode
│ ├── detect/
│ │ └── detect.go # Détection OS, OpenCode, Ollama
│ ├── installer/
│ │ └── installer.go # Téléchargement, extraction, déploiement
│ └── ui/
│ ├── tui.go # TUI Bubbletea (dashboard interactif)
│ ├── styles.go # Thème Lipgloss
│ ├── prompts.go # Prompts Huh (confirm, select)
│ └── notify.go # Notifications multi-plateforme
└── data/
├── agents/ # 23 fichiers .md (agents IA)
├── skills/ # 26 dossiers (skills spécialisés)
├── pg-mcp-server/ # Schéma PostgreSQL (init.sql)
├── opencode.jsonc # Template de configuration
└── AGENTS.md # Règles globales
| Composant | Bibliothèque |
|---|---|
| CLI framework | Cobra v1.8.1 |
| TUI | Bubbletea v1.1.0 |
| Styles terminal | Lipgloss v0.13.0 |
| Formulaires | Huh v0.6.0 |
| Logging | charmbracelet/log v0.4.0 |
| Widgets TUI | Bubbles v0.20.0 |
make build # Build pour la plateforme courante
make test # Exécute les tests
make lint # go vet + staticcheck
make coverage # Couverture de tests (HTML)
make clean # Supprime le binaire
make run # Build et exécutemake cross # Build les 6 cibles| OS | Architecture |
|---|---|
| linux | amd64, arm64 |
| darwin | amd64, arm64 |
| windows | amd64, arm64 |
Le binaire est strippé (-ldflags "-s -w") pour une taille de ~9.6 MB.
Trois workflows GitHub Actions :
| Workflow | Déclencheur | Action |
|---|---|---|
ci.yml |
push/PR sur main |
lint, test, build, cross-compilation |
release.yml |
tag v* |
build multiplateforme + checksums SHA256 + GitHub Release |
release-please.yml |
push sur main |
auto-tag et changelog automatique |
Après lfa setup, les fichiers sont installés dans :
| Platform | Chemin |
|---|---|
| Linux | ~/.config/opencode/ |
| macOS | ~/Library/Application Support/opencode/ |
| Windows | %APPDATA%\opencode\ |
Structure déployée :
~/.config/opencode/
├── opencode.jsonc # Configuration principale
├── AGENTS.md # Règles globales
├── agents/ # 23 agents .md
├── skills/ # 26 skills complets
└── pg-mcp-server/ # Schéma PostgreSQL (init.sql)
| Variable | Description | Requis |
|---|---|---|
GITHUB_TOKEN |
Token pour le MCP GitHub | Optionnel (requis pour les fonctionnalités GitHub) |
ANTHROPIC_API_KEY |
Token pour l'API Claude (Anthropic MCP) | Optionnel |
Ces tokens sont demandés interactivement pendant lfa setup et stockés dans le bloc environment de opencode.jsonc.
- Téléchargements via HTTPS uniquement
io.LimitReader(500 MB) contre les decompression bombs- Versions pinnées pour les packages MCP (npx @0.6.2, uvx @0.1.4)
- Aucun secret hardcodé — tokens via variables d'environnement
.envexclu du version control
Voir SECURITY.md pour plus de détails.
Voir CONTRIBUTING.md.
MIT — voir LICENSE.