Cubic Wiki Archive
This archive preserves the 29-page Cubic Wiki and its Chinese translation for reference. It is a source snapshot, not a guide to current behavior.
For practical answers, start with the knowledge index.
The English text was captured on 2026-09-23 from Zhin source commit 368db14.
Each article retains its source references; the manifest records source URLs and body hashes.
Reference snapshot
These articles were generated by a third party and have not been verified page by page. They are useful for exploration, but code examples, source line anchors, and operational advice can be wrong or outdated. The maintained Zhin documentation and current source code take precedence. Pages with confirmed errors have correction notes above their imported text; the importer also applies a small set of reviewed editorial fixes while recording the untouched upstream body hash.
Known corrections
| Snapshot topic | Current behavior | Maintained reference |
|---|---|---|
| Quick Start | New projects require Node.js >=22.12.0 and currently configure HTTP port 8068; 8086 is the unconfigured runtime fallback. | Getting Started |
| Plugin Runtime, Commands | Commands use commands/**/index.ts; Handlers use one named directory such as handlers/message-receive/index.ts. | Convention Directories |
| MCP | The optional Runtime Host registers Tools only when top-level mcp: is configured. ai.mcpServers is an Agent client setting. | Runtime source, documentation correction |
| Security & Sandbox | execApprovalMode is `ask | auto |
| Configuration | zhin migrate does not transform bots: into endpoints:. | Configuration |
| Agent orchestration, Security Policy | Tool/Hook paths use named directories; execSecurity and execApprovalMode are separate settings. Built-in defaults are deny and auto unless project configuration overrides them. | Convention Directories, Agent configuration |
| Adapter Core | The snapshot conflates the scaffolded Endpoint example with createEndpointLifecycle; its incomplete inbound adapter example does not compile. | Endpoint Lifecycle |
| Messaging, Satori | Runtime raw is distinct from segment.raw; wrapCardHtml requires a background color. | Middleware and Components |
| Security Policy, Production Deployment | The copied 8086 examples must be checked against the deployed http.port; new projects use 8068. pnpm daemon and pnpm stop are legacy migration scripts. | Production Deployment |
Browse the snapshot
Start and architecture
- Introduction to Zhin.js
- Quick Start & Setup
- System Architecture & Layering
- Plugin Runtime & Conventions
- Inbound & Outbound Message Pipeline
- Generations & Hot Module Replacement
IM, extensions, and services
- Commands, Handlers & Middlewares
- Universal Segments & Components
- Database Abstraction & Persistence
- Schedule Engine & Cron Jobs
- Logging & Telemetry
Agent and AI
- Agent Orchestration & ZhinAgent
- LLM Providers & SDK Bridging
- Agent Tools & Capabilities
- Skills & Progressive Disclosure
- Memory, Context & Compaction
- Security Policies & Sandbox
- Model Context Protocol (MCP)
Platforms and media
- Adapter Core & Endpoint Lifecycle
- Platform Integrations
- Rich Media with Satori
- Speech Pipeline (STT & TTS)
Console, configuration, and operations
- Remote Console Architecture
- Authoring Console Pages
- Configuration Management
- Production Deployment
- Security Policy & Best Practices
- CLI Commands & Tooling
- Testing & CI Harness
Refreshing the snapshot
From the repository root, run python3 scripts/import-cubic-wiki.py. The importer downloads the public page, extracts its Markdown, and applies the documented repairs.
It updates the 29 English articles and source manifest.
It stops if the page format or expected article IDs change, if a stale article is present, or if new raw HTML requires review. Run python3 scripts/import-cubic-wiki.py --verify to check the English snapshot.
Then update the Chinese translations and the capture date and source commit on both archive entry pages from the manifest.
Run pnpm check:cubic-wiki-translations before publishing. The importer does not overwrite translated pages.