--- title: Manifest created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, artificial-intelligence, llm, router, model-routing, cost-optimization, typescript, mit] confidence: high contested: false sources: [https://selfh.st/apps/?tag=artificial-intelligence, https://github.com/mnfst/manifest] --- # Manifest 🦚 > **Routeur intelligent de modèles pour agents IA** — redirige chaque requête vers le bon modèle (parmi 300+ modèles, 18+ fournisseurs) pour économiser jusqu'à 70 % sur les coûts d'inférence, sans changer une ligne du code client. | Métadonnée | Valeur | | :--- | :--- | | **Site web** | https://app.manifest.build | | **GitHub** | https://github.com/mnfst/manifest | | **License** | MIT | | **Langage** | TypeScript (96 %) | | **Étoiles** | 413 | | **Dernière MAJ** | 2026-06-04 | | **Catégorie** | [[cat-artificial-intelligence]] | ## 📝 Description **Manifest** est un **reverse-proxy LLM compatible OpenAI/Anthropic** qui se place devant vos appels d'API et décide intelligemment quel modèle invoquer pour chaque requête. L'objectif affiché est d'**éviter le gâchis** : beaucoup d'équipes payent `gpt-5` ou `claude-opus-4-7` pour des tâches triviales (résumé d'un e-mail, classification d'un log, reformulation d'une phrase) où un petit modèle open-source ou un `gpt-5-mini` ferait le travail pour 1 à 5 % du coût. Le **routing** combine trois signaux : (1) la **complexité de la requête** (longueur, présence de code, intention détectée par un mini-classifieur), (2) la **spécificité** (besoin de contexte long, outils, JSON structuré), et (3) des **headers HTTP personnalisés** que l'application cliente peut envoyer pour forcer un fournisseur, un modèle, ou un budget max. Un **endpoint `/auto`** unique agrège 18+ providers (OpenAI, Anthropic, Google, xAI, DeepSeek, Mistral, Qwen, Moonshot, MiniMax, Xiaomi MiMo, Z.ai, BytePlus, OpenCode, Ollama, LM Studio, llama.cpp, OpenRouter, GitHub Copilot) et applique du **fallback automatique** en cas d'erreur ou de rate-limit. Fonctionnalités clés : **dashboard web** avec **tracking de coût à la requête** (jusqu'au dollar près), **limites de dépenses** par utilisateur/projet avec notifications, **mélange de credentials** (clés API + abonnements ChatGPT Plus / Claude Max / GitHub Copilot), **cache de modèles par agent**, et **compression SSE** pour le streaming. Manifest est utilisé en interne par **217 projets** et compte **40 contributeurs**, 288 releases (v6.9.2 en juin 2026) et 5 169 commits — c'est un projet très actif. Idéal pour les équipes qui jonglent entre plusieurs providers, qui veulent unifier leur observabilité coûts, ou qui cherchent à **déguiser un usage Grok/Mistral/Claude Sonnet derrière une API OpenAI standard** pour ne pas réécrire leur SDK. ## 🚀 Installation ### Option 1 : Docker Compose (recommandé) ```yaml # docker-compose.yml services: manifest: image: mnfst/manifest:latest container_name: manifest restart: unless-stopped ports: - "2099:2099" volumes: - manifest-data:/app/data - manifest-db:/app/db environment: - TZ=Europe/Paris - DATABASE_URL=sqlite:///app/db/manifest.db - JWT_SECRET=changez-moi-32-chars-minimum-ici - NODE_ENV=production healthcheck: test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:2099/health"] interval: 30s timeout: 5s retries: 3 volumes: manifest-data: manifest-db: ``` Une fois démarré, ouvrez `http://localhost:2099`, créez le **premier compte** (il devient admin automatiquement), puis allez dans **Settings → Providers** pour saisir vos clés API ou pointer vers vos Ollama / LM Studio locaux. ### Option 2 : Installation manuelle (one-liner officiel) ```bash # Script d'install fourni par l'éditeur bash <(curl -sSL https://raw.githubusercontent.com/mnfst/manifest/main/docker/install.sh) ``` Pour un déploiement sans Docker : `git clone` du repo, `pnpm install` (workspaces Turbo), `pnpm build`, puis lancer `node packages/server/dist/main.js` derrière un reverse-proxy (Caddy/Traefik/Nginx). Prérequis : **Node.js 20+**, 2 Go RAM, 2 vCPU. ## ⚙️ Configuration La configuration passe par **deux niveaux** : 1. **Variables d'environnement** du conteneur : - `JWT_SECRET` : signature des sessions web, **obligatoire en prod** (`openssl rand -hex 32`). - `DATABASE_URL` : SQLite par défaut (`sqlite:///app/db/manifest.db`), PostgreSQL recommandé pour la prod. - `NODE_ENV=production` : active la gestion d'erreurs stricte et désactive l'auto-signup. 2. **UI Settings → Providers** : ajoutez vos credentials par provider (clé API, token d'abonnement OAuth, URL locale pour Ollama). Le **premier utilisateur** créé est admin ; désactivez l'open-signup dès que possible. **Exemple de routage intelligent** — l'app envoie un header `X-Manifest-Model-Tier: cheap` et Manifest choisit automatiquement entre `gpt-5-mini`, `claude-haiku-4-5` ou `qwen3-coder` selon la langue détectée et la longueur. Vous pouvez aussi forcer un modèle : `X-Manifest-Model: gpt-5`. Le **budget mensuel** se règle par projet (ex. 50 $/mois pour le bot Discord, 200 $/mois pour l'agent de code). ## 🔄 Alternatives ### Open Source - **LiteLLM** (Python) — proxy LLM le plus mature, ~10k ⭐, 100+ providers, mais routage basique (pas de classifier embarqué). - **OpenRouter** (propriétaire mais API ouverte) — agrégateur commercial, pas self-hostable, sert de **provider cible** pour Manifest. - **Portkey AI Gateway** — concurrent direct, dashboard similaire, freemium avec self-host. - **Helicone** — observabilité LLM (logs, coûts, latence) sans routing. - **Unify** — équivalent cloud, payant, pas open source. - [[app-open-webui]] — interface de chat LLM (consomme les providers, ne route pas). - [[app-ollama]] — runtime local, s'intègre **comme provider** dans Manifest. ### Propriétaires (ce que Manifest remplace) - **OpenAI API directe** — pas de visibilité coûts multi-projet, pas de fallback. - **Cloudflare AI Gateway** — payant au-delà de 10 000 req/mois, pas de routing intelligent basé complexité. - **AWS Bedrock + Custom Router** — cher, complexe, vendor-locké. ## 🔐 Sécurité - **JWT_SECRET robuste** (`openssl rand -hex 32`) — sa fuite permet de forger des sessions admin. **Ne jamais** commiter. - **Premier compte = admin** : dès la première connexion, **désactivez l'open-signup** dans Settings → Auth, sinon n'importe qui peut s'inscrire et consommer vos crédits. - **Provider API keys** : Manifest les stocke **chiffrées au repos** (scrypt), mais restez vigilant : exportez la base SQLite vers un volume chiffré (LUKS/eCryptfs) et sauvegardez-la via [[app-restic]]. - **Reverse proxy HTTPS** (Caddy/Traefik) — indispensable, le dashboard expose toutes vos clés API. - **Limites de coûts** (`/settings/billing`) — votre garde-fou contre un script buggé qui boucle 10 000 appels `gpt-5`. - **Audit logs** : toutes les requêtes sont loggées avec prompt hash, modèle, tokens, coût — exportez-les vers [[app-loki]] pour audit long terme. ## 📚 Ressources - [GitHub mnfst/manifest](https://github.com/mnfst/manifest) - [Site officiel (cloud)](https://app.manifest.build/) - [Documentation](https://github.com/mnfst/manifest/blob/main/docker/DOCKER_README.md) - [r/selfhosted — discussion initiale](https://www.reddit.com/r/selfhosted/) ## Pages Liées - [[cat-artificial-intelligence]] — Catégorie AI - [[app-open-webui]] — Interface chat LLM - [[app-ollama]] — Runtime LLM local (consommable par Manifest) - [[app-litellm]] — Alternative proxy LLM - [[recettes-docker-compose]] — Templates Docker - [[securisation-home-lab]] — Bonnes pratiques sécurité