Language: English | 中文
Local AI platform and edge inference infrastructure for personal devices.
Amis is One-token's desktop product for running local models, using agents, managing local/cloud AI routes, and packaging local AI workflows into a product experience. This repository contains the Electron desktop app, local runtime integration code, prompt-routing packages, release tooling, and product/engineering documentation.
Product · Architecture · Development · Release · Docs
Amis is not just another local model runner, and it is not just another chatbot.
It is designed as an Agent Station and Token Hub:
- Model Hub: discover, download, deploy, and manage local models.
- Agent Hub: connect local and cloud agents such as OpenClaw and Hermes.
- Prompt Router: decide whether a request should stay on edge, use cloud, or use edge with fallback.
- Runtime Metrics: keep local model runtime data in the desktop app instead of scattering it across services.
- Desktop UX: make local AI feel like an app people can use daily, not a terminal setup.
The product goal is simple:
Make local AI usable, visible, and controllable on the device people already own.
Amis v1.1.5 is shaped around three product themes from the product overview and PRD:
-
Conversation experience upgrade
- assistant/topic organization;
- richer chat input controls;
- file attachments and long-content handling;
- better code and streaming output handling.
-
Local inference visibility
- Model Hub deployment state;
- runtime metrics and token/performance tracking;
- clearer model download and deployment flows;
- hardware-aware local model operation.
-
Developer and team access
- OpenAI-compatible local API direction;
- SK Code / LAN authorization as the Pro workflow direction;
- prompt-router packages for edge/cloud route decisions;
- CI and packaging paths for real runtime validation.
Some items are product direction rather than fully public interfaces. Public claims should be updated only after the release build, docs, and tests verify the path end to end.
- Repository:
cPilot-GUI/Amis-test - Visibility: private
- App version:
1.1.5 - App ID:
net.cpilot.app - Product name:
Amis - Current platform support: macOS and Linux
- Windows: coming soon
- Frontend: React 18 + TypeScript + TailwindCSS
- Desktop runtime: Electron + electron-vite
- Local data: SQLite through native desktop dependencies
- Routing packages:
uncommon-route-ts,@qianyichen/sensitive-router,router-orchestrator
The old Flask/Python web-app README has been replaced because the current repository is an Electron desktop app and no longer contains the previous auth_api.py, cPilot_local_server.py, or wechat_integration.py files.
flowchart TB
user["User"]
app["Amis Electron App"]
renderer["React Renderer"]
main["Electron Main"]
router["Prompt Router Packages"]
runtime["Local Runtime / OpenClaw / Hermes"]
models["Model Hub and Downloads"]
metrics["Runtime Metrics Store"]
cloud["Cloud Providers"]
user --> app
app --> renderer
renderer --> main
main --> router
main --> runtime
main --> models
main --> metrics
router --> cloud
router --> runtime
Key areas:
src/main: Electron main process, runtime lifecycle, credentials, prompt routing, local metrics, gateway integration.src/preload: safe renderer-to-main bridge.src/renderer/src: React UI, pages, services, and app state.packages/prompt-router: host-agnostic route decision packages.resources/model-download: bundled model-download worker resources.docs: product notes, release records, CI runbooks, runtime migration docs, and governance.openspec: structured proposals and specs for product/engineering changes.
- Node.js
25.9.0as specified by.nvmrc - npm
- macOS or Linux for current supported development and runtime paths
nvm use
npm installnpm install runs native rebuild and prompt-router build steps through postinstall.
Start from the example config:
cp config.env.example .envImportant values:
VITE_CPILOT_API_URLVITE_QWEN_API_URLVITE_QWEN_API_KEYVITE_DEBUGVITE_FRONTEND_PORT
Do not commit real API keys, auth tokens, model credentials, or local runtime secrets.
npm run devRenderer-only development:
npm run dev:webnpm run typecheck
npm run lint
npm run buildCurrent supported release targets are macOS and Linux. Windows is coming soon and should not be described as a currently supported public release target.
macOS packaging commands:
npm run pack:mac:dir
npm run pack:mac:dmg
npm run pack:mac:zip
npm run pack:mac:releaseUnsigned local macOS package:
CPILOT_SKIP_NOTARIZE=1 npm run pack:mac:dmg:unsignedLocal unsigned builds are for developer or internal validation only. After packaging, inspect the bundled runtime and then run the packaged-app smoke helper:
npm run inspect:packaged:mac
npm run test:packaged:mac -- --no-open --no-tailIf macOS Gatekeeper blocks a locally built unsigned app, use one of these explicit local install authorization paths only after you trust the checkout and build output:
xattr -dr com.apple.quarantine dist/mac-arm64/Amis.app
spctl --assess --type execute --verbose dist/mac-arm64/Amis.app || true
open dist/mac-arm64/Amis.appAlternatively open System Settings → Privacy & Security and choose Open Anyway for the blocked Amis app. Public release builds should use the signed/notarized npm run pack:mac:release path instead of the unsigned local flow.
The repository currently contains a Windows packaging script, but Windows support is not part of the current public support matrix:
npm run pack:winRelease records should be added under docs/releases/ before the README links to them. This checkout currently uses the documentation index below as the source of truth for available docs.
This README is the public project entry point. Repo-local agent/developer rules live in AGENTS.md, with compact implementation details in HARNESS.md. Keep both short so future agents can load stable guidance with low prompt overhead.
English workflow:
- Start from
AGENTS.md, thenHARNESS.mdfor code/test work, thendocs/README.mdfor documentation navigation. - Use the architecture map and runtime flows as current-state evidence, not refactor authorization.
- Use ADR for architecture decisions, SRS for requirements and verification methods, and SDD/views for implementation design viewpoints.
- Use Mermaid only with the GitHub/Obsidian-safe rules in
docs/guides/documentation-standards.md. - Keep published docs bilingual and verify links, language switches, Mermaid safety, whitespace, and structure checks before handoff.
中文工作流:
- 先读
AGENTS.md;涉及代码/测试时再读HARNESS.md;查文档入口时读docs/README.md。 - Architecture map 和 runtime flows 是现状证据,不是重构授权。
- 架构决策写 ADR;需求和验证方法写 SRS;实现前设计视图写 SDD/views。
- Mermaid 必须遵守
docs/guides/documentation-standards.md中的 GitHub/Obsidian 兼容规则。 - 公开文档保持中英文同步;交付前验证 links、language switches、Mermaid safety、whitespace 和 structure checks。
English:
- Project docs overview
- Architecture map
- Runtime flows
- Developer guide
- Future refactor roadmap
- Documentation standards
- ADR-0001: Adopt documentation standards
- Documentation standards SRS
- Documentation standards SDD
中文:
OpenSpec proposals:
The intended open-source story is layered:
- Open: product entry points, desktop app surfaces, docs, examples, route contracts, plugin/spec directions, integration guidance, compatibility notes, and reproducible release records.
- Protected: proprietary inference optimizations, commercial authorization modules, partner-specific runtime internals, and unreleased engine details.
When writing public docs, avoid unsupported performance claims. If a benchmark is mentioned, include the model, hardware, runtime version, prompt/output shape, and reproduction method.
One-token is an edge intelligence infrastructure company for the AI and Agent era. We focus on edge inference engines, local intelligence platforms, and integrated software-hardware capabilities.
Contact: contact@cpilot.net