Agent skill · software engineering · lobehub
builtin-tool
Use for LobeHub builtin agent tools: manifests, executors, runtimes, inspectors, renders, streaming and intervention.
Why this skill is useful
Adds executable scripts and detailed guidelines for building and integrating LobeHub builtin tools, which are not commonly found in public documentation.
What it needs
Requires typescript installed locally. About 4k tokens when loaded. Last updated 2026-08-07. 81,352 stars on the source repository.
What this skill does
Builtin Tool Authoring Guide A builtin tool is a package the agent runtime can call. It ships five faces: Face Lives in Audience -------------------- -------------------------------------------------------------------------------------- ------------------------------------- Manifest + types src/{manifest,types,systemRole}.ts The LLM (tool spec + system prompt) ExecutionRuntime src/ExecutionRuntime/ Server / desktop / any runtime caller Executor src/client/executor/ Frontend (wraps stores/services) Client UI src/client/{Inspector,Render,…}/ Chat UI Registry wiring packages/builtin-tools/src/.ts + src/store/tool/slices/builtin/executors/index.ts Framework --- Read These First Question Doc ------------------------------------------------------------------------------------ --------------------------------------------- Where do files live? What does each face do? Wiring? architecture.md How do I name the tool, design APIs, write the manifest, executor, ExecutionRuntime? tool-design.md How do I build Inspector / Render / Placeholder / Streaming / Intervention / Portal? ui/ --- When to Use This Skill Creating a new packages/builtin-tool-<name>/ package Adding a new API method to an existing builtin tool Building or restyling any of the 6 client surfaces for a tool Wiring a tool into the central registries Debugging "tool not found / API not found / render not showing / placeholder stuck" errors --- Top-Level Design Principles 1. lobe-<domain> identifier is permanent. It's stored in message history. Renames need legacy aliases kept alongside the new name (see the // Legacy aliases entries in packages/builtin-tool-local-system/src/client/Inspector/index.ts, kept after listLocalFiles/searchLocalFiles were renamed to listFiles/searchFiles). Get it right the first time. 2. ApiName is an as const object, not a TS enum. It doubles as the runtime list BaseExecutor iterates over. 3. …
How to use it
Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:
@skills lobehub/builtin-tool