
LobeHub
github.com/lobehub/lobehub- Category
- AI Agents
- Rank
- No. 07Tools index
- Listed in
- #13 Find agent skills
- Type
- APP
- Builder
- lobehub
- GitHub
- 82.5k stars
- Latest release
- v2.2.18-canary.14
- Date
About
An open-source platform for orchestrating teams of AI agents into always-on operations, with hiring, scheduling, and management built in.
What it does
LobeHub is a self-hostable chat and agent workspace built on Next.js that puts one interface in front of roughly sixty model providers, from OpenAI and Anthropic to Ollama and other self-hosted engines. Incoming requests pass through a layered runtime that trims history, accounts for tokens, and translates each vendor's failures into stable error codes, while a registry controls which tools are available in each chat mode. It also ships as an Electron desktop app and a command-line entry point.
Why it's ranked here
Compared with single-provider chat frontends, this covers ground they do not: one place to configure dozens of vendors, explicit token accounting for long conversations, per-mode gating of the tool surface, and the option to hand agent steps to a hosted queue instead of a request thread. It is MIT licensed, and self-hosting is documented as a first-class path rather than an afterthought. The security work, outbound request filtering and filesystem path scoping, exists in the code rather than only in the documentation.
What's good
The seams are real, not cosmetic. Local tool execution ships with helpers that confine filesystem access to a declared scope, so tools have a boundary rather than none. Outbound fetches route through a request-filtering agent, with a byte cap that stops reading a response mid-stream instead of buffering it whole. A conversation doctor detects and repairs message trees the reader cannot fully render, using typed repair operations. There are also adapters for external coding agents, including Claude Code, complete with install and auth configuration.
Tradeoffs
This is a large system with a heavy build: the bundlers run with an eight-gigabyte memory ceiling, and the container build installs the whole workspace, compiles four separate browser bundles, then builds the server app, so self-hosting is not a small operation. The tool wiring carries a documented hazard: maintainers must keep one list of tool identifiers aligned by hand across the server and the frontend. Blocked outbound requests are recognised by matching wording in a dependency's error message, so that protection rests on a library's error text. The package metadata still describes a private ChatGPT web app while the documentation positions it as agent operations.
How to use it well
Deploy with Docker or one of the hosts the documentation lists. The app-level configuration is a validated schema covering the site URL, outbound-request safety flags, the agent gateway and the market client; provider, database, auth and storage credentials all default to empty, so set only the ones you need. If you run agents on a schedule or at volume, switch the agent runtime to its queue mode so steps run on a hosted queue instead of inside the request. Leave the private-network allowance off unless agents genuinely need your internal network, and cap response size on crawl-style fetches.
Technical notes+
The vendor layer is packages/model-runtime/src/index.ts, which exports 42 classes named Lobe*AI behind a shared ModelRuntime and RouterRuntime, plus a createOpenAICompatibleRuntime factory and an ErrorClassifier mapping vendor failures onto stable error codes. packages/context-engine/src/index.ts exposes a ContextEngine pipeline of processors for history truncation, tool-message reordering, placeholder templating and message cleanup, with a token-accounting module tied by comment to compression triggers. packages/builtin-tools/src/index.ts holds the tool registry: each manifest carries discoverable and hidden flags, separate id lists gate chat mode, manual activation and group-supervisor runs, and a comment warns that runtimeManagedToolIds must stay manually synced with a server-side rules map and a frontend counterpart. packages/env/src/app.ts validates configuration with zod via @t3-oss/env-core and switches AGENT_RUNTIME_MODE between in-process and QStash-backed queue execution. packages/tool-runtime/src/index.ts exports isPathWithinScope, normalizePathForScope, resolveArgsWithScope and resolvePathWithScope beside LocalSystemExecutionRuntime. packages/ssrf-safe-fetch/index.ts wraps request-filtering-agent, supports a maxContentLength cap, and detects blocked requests by substring-matching the phrase is not allowed in the error text. packages/conversation-flow/src/index.ts ships a diagnoseTopic doctor with typed repair operations, and packages/heterogeneous-agents/src/index.ts exports AmpAdapter, ClaudeCodeAdapter and QoderAdapter. The Dockerfile declares roughly sixty provider credentials, ends FROM scratch, runs as uid 1001, and exposes port 3210; apps/cli/src/index.ts is the CLI entry.
Observed
- License
- MIT
- Repository layout
- TypeScript pnpm workspace monorepo containing the web app, desktop app, and end-to-end test workspace
- Interfaces
- Self-hostable web app, browser single-page bundles, Electron desktop app, and a command-line entry point
- Container image
- Multi-stage Docker build ending in a scratch base; runs as a non-root user; exposes port 3210
- Configuration validation
- App configuration validated with zod schemas for server and client variables
Read from README.md, package.json, Dockerfile, packages/env/src/app.ts, packages/ssrf-safe-fetch/index.ts, packages/agent-runtime/src/index.ts, packages/agent-manager-runtime/src/index.ts, packages/model-runtime/src/index.ts, packages/context-engine/src/index.ts, packages/conversation-flow/src/index.ts, packages/tool-runtime/src/index.ts, packages/builtin-tools/src/index.ts, packages/heterogeneous-agents/src/index.ts, packages/database/src/index.ts, apps/cli/src/index.ts.
Tech Stack
Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.