|
1 | | -# manifest |
2 | | - |
3 | | -Self-hosted [Manifest](https://manifest.build) plugin for [OpenClaw](https://openclaw.ai) — runs the full LLM router locally with an embedded NestJS server, SQLite database, and dashboard. |
4 | | - |
5 | | -## Install |
6 | | - |
7 | | -```bash |
8 | | -openclaw plugins install manifest |
9 | | -openclaw gateway restart |
10 | | -``` |
11 | | - |
12 | | -Dashboard opens at **http://127.0.0.1:2099**. The plugin auto-generates an API key, starts the embedded server, and registers `manifest/auto` as a model. No configuration needed. |
| 1 | +<!-- |
| 2 | + This file mirrors the root README.md of the monorepo. |
| 3 | + Keep them in sync when updating: changes to either should be applied to both. |
| 4 | + The deprecation banner at the top of this file is the only intentional |
| 5 | + divergence — everything below it is a verbatim copy of the root README. |
| 6 | +--> |
| 7 | + |
| 8 | +> [!WARNING] |
| 9 | +> **This package is deprecated.** The `manifest` OpenClaw plugin is no longer maintained. For self-hosting, use the [Manifest Docker Image](https://hub.docker.com/r/manifestdotbuild/manifest) instead. See the [Self-hosted (Docker)](#self-hosted-docker) section below. |
| 10 | +
|
| 11 | +--- |
| 12 | + |
| 13 | +<p align="center"> |
| 14 | + <picture> |
| 15 | + <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/mnfst/manifest/HEAD/.github/assets/logo-white.svg" /> |
| 16 | + <source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/mnfst/manifest/HEAD/.github/assets/logo-dark.svg" /> |
| 17 | + <img src="https://raw.githubusercontent.com/mnfst/manifest/HEAD/.github/assets/logo-dark.svg" alt="Manifest" height="53" title="Manifest"/> |
| 18 | + </picture> |
| 19 | +</p> |
| 20 | +<p align="center"> |
| 21 | + Affordable Personal AI |
| 22 | +</p> |
| 23 | + |
| 24 | + |
| 25 | + |
| 26 | +<p align="center"> |
| 27 | + <span><img src="https://img.shields.io/badge/status-beta-yellow" alt="beta" /></span> |
| 28 | + |
| 29 | + <a href="https://github.com/mnfst/manifest/stargazers"><img src="https://img.shields.io/github/stars/mnfst/manifest?style=flat" alt="GitHub stars" /></a> |
| 30 | + |
| 31 | + <a href="https://www.npmjs.com/package/manifest"><img src="https://img.shields.io/npm/v/manifest?color=cb3837&label=npm" alt="npm version" /></a> |
| 32 | + |
| 33 | + <a href="https://www.npmjs.com/package/manifest"><img src="https://img.shields.io/npm/dw/manifest?color=cb3837" alt="npm downloads" /></a> |
| 34 | + |
| 35 | + <a href="https://hub.docker.com/r/manifestdotbuild/manifest"><img src="https://img.shields.io/docker/pulls/manifestdotbuild/manifest?color=2496ED&label=docker%20pulls" alt="Docker pulls" /></a> |
| 36 | + |
| 37 | + <a href="https://github.com/mnfst/manifest/actions/workflows/ci.yml"><img src="https://img.shields.io/github/actions/workflow/status/mnfst/manifest/ci.yml?branch=main&label=CI" alt="CI status" /></a> |
| 38 | + |
| 39 | + <a href="https://app.codecov.io/gh/mnfst/manifest"><img src="https://img.shields.io/codecov/c/github/mnfst/manifest?label=coverage" alt="Codecov" /></a> |
| 40 | + |
| 41 | + <a href="LICENSE"><img src="https://img.shields.io/github/license/mnfst/manifest?color=blue" alt="license" /></a> |
| 42 | + |
| 43 | + <a href="https://discord.gg/FepAked3W7"><img src="https://img.shields.io/badge/Discord-Join-5865F2?logo=discord&logoColor=white" alt="Discord" /></a> |
| 44 | +</p> |
| 45 | + |
| 46 | +<p align="center"> |
| 47 | +<a href="https://trendshift.io/repositories/12890" target="_blank"><img src="https://trendshift.io/api/badge/repositories/12890" alt="mnfst%2Fmanifest | Trendshift" style="width: 250px; height: 55px;" width="250" height="55"/></a> |
| 48 | +</p> |
| 49 | + |
| 50 | +## What is Manifest? |
| 51 | + |
| 52 | +Manifest is a smart model router for Personal AI Agents like OpenClaw or Hermes. It sits between your agent and your LLM providers, scores each request, and routes it to the cheapest model that can handle it. Simple questions go to fast, cheap models. Hard problems go to expensive ones. You save money without thinking about it. |
| 53 | + |
| 54 | +- Route requests to the right model: Cut costs up to 70% |
| 55 | +- Automatic fallbacks: If a model fails, the next one picks up |
| 56 | +- Set limits: Don't exceed your budget |
| 57 | + |
| 58 | +## Quick start |
| 59 | + |
| 60 | +### Cloud version |
| 61 | + |
| 62 | +Go to [app.manifest.build](https://app.manifest.build) and follow the guide. |
| 63 | + |
| 64 | +### Self-hosted (Docker) |
| 65 | + |
| 66 | +Our <a href="https://hub.docker.com/r/manifestdotbuild/manifest">Manifest Docker Image</a> allows you to self-host Manifest router in your own infrastructure. |
| 67 | + |
| 68 | +> [!WARNING] |
| 69 | +> Our [OpenClaw plugin](https://www.npmjs.com/package/manifest) is deprecated, for self-hosting we suggest using Docker instead. |
13 | 70 |
|
14 | 71 | ## How it works |
15 | 72 |
|
16 | | -On gateway startup the plugin: |
17 | | - |
18 | | -1. Generates a persistent API key (`mnfst_local_*`) stored in `~/.openclaw/manifest/config.json` |
19 | | -2. Starts the embedded NestJS backend with SQLite at `~/.openclaw/manifest/manifest.db` |
20 | | -3. Injects `manifest` as a provider into `~/.openclaw/openclaw.json` |
21 | | -4. Serves the dashboard from the bundled frontend static files |
22 | | - |
23 | | -If the server is already running on the configured port, the plugin reuses it instead of starting a new instance. |
24 | | - |
25 | | -## Configuration |
26 | | - |
27 | | -| Setting | Type | Default | Description | |
28 | | -|---------|------|---------|-------------| |
29 | | -| `port` | `number` | `2099` | Embedded server port | |
30 | | -| `host` | `string` | `127.0.0.1` | Bind address | |
| 73 | +Every request to `manifest/auto` goes through a 23-dimension scoring algorithm (runs in under 2ms). The scorer picks a tier (simple, standard, complex, or reasoning) and routes to the best model in that tier from your connected providers. |
| 74 | + |
| 75 | +All routing data (tokens, costs, model, duration) is recorded automatically. You see it in the dashboard. No extra setup. |
| 76 | + |
| 77 | +## Manifest vs OpenRouter |
| 78 | + |
| 79 | +| | Manifest | OpenRouter | |
| 80 | +| ------------ | -------------------------------------------- | --------------------------------------------------- | |
| 81 | +| Architecture | Local. Your requests, your providers | Cloud proxy. All traffic goes through their servers | |
| 82 | +| Cost | Free | 5% fee on every API call | |
| 83 | +| Source code | MIT, fully open | Proprietary | |
| 84 | +| Data privacy | Metadata only (cloud) or fully local | Prompts and responses pass through a third party | |
| 85 | +| Transparency | Open scoring. You see why a model was chosen | No visibility into routing decisions | |
| 86 | + |
| 87 | +## Supported providers |
| 88 | + |
| 89 | +Works with 300+ models across these providers: |
| 90 | + |
| 91 | +| Provider | Models | |
| 92 | +| ------------------------------------------------------------------------------ | -------------------------------------------------------------------- | |
| 93 | +| [OpenAI](https://platform.openai.com/) | `gpt-5.3`, `gpt-4.1`, `o3`, `o4-mini` + 54 more | |
| 94 | +| [Anthropic](https://www.anthropic.com/) | `claude-opus-4-6`, `claude-sonnet-4.5`, `claude-haiku-4.5` + 14 more | |
| 95 | +| [Google Gemini](https://ai.google.dev/) | `gemini-2.5-pro`, `gemini-2.5-flash`, `gemini-3-pro` + 19 more | |
| 96 | +| [DeepSeek](https://www.deepseek.com/) | `deepseek-chat`, `deepseek-reasoner` + 11 more | |
| 97 | +| [xAI](https://x.ai/) | `grok-4`, `grok-3`, `grok-3-mini` + 8 more | |
| 98 | +| [Mistral AI](https://mistral.ai/) | `mistral-large`, `codestral`, `devstral` + 26 more | |
| 99 | +| [Qwen (Alibaba)](https://www.alibabacloud.com/en/solutions/generative-ai/qwen) | `qwen3-235b`, `qwen3-coder`, `qwq-32b` + 42 more | |
| 100 | +| [MiniMax](https://www.minimax.io/) | `minimax-m2.5`, `minimax-m1`, `minimax-m2` + 5 more | |
| 101 | +| [Kimi (Moonshot)](https://kimi.ai/) | `kimi-k2`, `kimi-k2.5` + 3 more | |
| 102 | +| [Amazon Nova](https://aws.amazon.com/ai/nova/) | `nova-pro`, `nova-lite`, `nova-micro` + 5 more | |
| 103 | +| [Z.ai (Zhipu)](https://z.ai/) | `glm-5`, `glm-4.7`, `glm-4.5` + 5 more | |
| 104 | +| [OpenRouter](https://openrouter.ai/) | 300+ models from all providers | |
| 105 | +| [Ollama](https://ollama.com/) | Run any model locally (Llama, Gemma, Mistral, ...) | |
| 106 | +| Custom providers | Any provider with an OpenAI-compatible API endpoint | |
31 | 107 |
|
32 | | -```bash |
33 | | -openclaw config set plugins.entries.manifest.config.port 3099 |
34 | | -openclaw gateway restart |
35 | | -``` |
36 | | - |
37 | | -## Cloud mode |
38 | | - |
39 | | -For cloud routing without the embedded server, use the lightweight provider plugin instead: |
40 | | - |
41 | | -```bash |
42 | | -openclaw plugins install manifest-model-router |
43 | | -openclaw providers setup manifest-model-router |
44 | | -``` |
45 | | - |
46 | | -See [manifest-model-router](https://www.npmjs.com/package/manifest-model-router). |
47 | | - |
48 | | -## Data |
49 | | - |
50 | | -Telemetry, dashboard, and configuration data stays on your machine. LLM requests are forwarded to your configured providers (e.g. OpenAI, Anthropic) as part of normal routing. |
| 108 | +## Contributing |
51 | 109 |
|
52 | | -- **Database**: `~/.openclaw/manifest/manifest.db` (SQLite) |
53 | | -- **API key**: `~/.openclaw/manifest/config.json` |
54 | | -- **Provider config**: `~/.openclaw/openclaw.json` |
| 110 | +Manifest is open source under the [MIT license](LICENSE). See [CONTRIBUTING.md](CONTRIBUTING.md) for dev setup, architecture, and workflow. Join the conversation on [Discord](https://discord.gg/FepAked3W7). |
55 | 111 |
|
56 | | -## Contributing |
| 112 | +## Quick links |
57 | 113 |
|
58 | | -This package lives at `packages/openclaw-plugins/manifest/` in the [mnfst/manifest](https://github.com/mnfst/manifest) monorepo. |
| 114 | +- [GitHub](https://github.com/mnfst/manifest) |
| 115 | +- [Docs](https://manifest.build/docs) |
| 116 | +- [Discord](https://discord.com/invite/FepAked3W7) |
| 117 | +- [Discussions](https://github.com/mnfst/manifest/discussions) |
59 | 118 |
|
60 | | -```bash |
61 | | -npm run build --workspace=packages/openclaw-plugins/manifest |
62 | | -npm test --workspace=packages/openclaw-plugins/manifest |
63 | | -``` |
| 119 | +## License |
64 | 120 |
|
65 | | -**Note:** On `npm publish`, this README is replaced by the root project README. |
| 121 | +[MIT](LICENSE) |
0 commit comments