Amis
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
What Is Amis?
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.
Product Direction
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.
Current Repository Status
- 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.
Architecture
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.
Development
Requirements
- Node.js
25.9.0as specified by.nvmrc - npm
- macOS or Linux for current supported development and runtime paths
nvm use npm install
npm install runs native rebuild and prompt-router build steps through postinstall.
Environment
Start from the example config:
cp config.env.example .env
Important 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.
Run
npm run dev
Renderer-only development:
npm run dev:web
Checks
npm run typecheck npm run lint npm run build
Release And Packaging
Current 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:release
Unsigned local macOS package:
CPILOT_SKIP_NOTARIZE=1 npm run pack:mac:dmg:unsigned
Local 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-tail
If 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.app
Alternatively 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:win
Release 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.
Development and Documentation Workflow / 开发与文档工作流
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。
Documentation
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:
Open Source Boundary
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.
About One-token
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