diff --git a/Cargo.toml b/Cargo.toml
index 0947876..c60dcd8 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -13,7 +13,7 @@ members = [
[workspace.package]
edition = "2024"
version = "0.1.0"
-license = "MIT"
+license = "Apache-2.0"
publish = false
[profile.release]
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..d645695
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,202 @@
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
diff --git a/README.md b/README.md
index 1251e88..a66b0e7 100644
--- a/README.md
+++ b/README.md
@@ -1,334 +1,135 @@
+
+
+**English** · [繁體中文](./README.zh-TW.md)
+
# LazyBoy
-### 給 Agent 一台真的電腦
+**Give AI a computer so it can do the work.**
-在瀏覽器裡指派工作,讓 AI Agent 在隔離的 Linux 桌面中開網頁、操作應用程式、整理檔案,並在你需要時把控制權交回來。
+A self-hosted AI agent workspace. Assign tasks in text or voice, watch the desktop live, and take over whenever you need to.
-[](#快速開始)
-[](./Cargo.toml)
-[](./apps/web/package.json)
-[](./docker-compose.yml)
-
-[快速開始](#快速開始) · [功能](#核心能力) · [運作流程](#一個任務如何完成) · [系統架構](#系統架構) · [二次開發](#二次開發) · [安全](#安全模型)
+[Quick start](#quick-start) · [Features](#features) · [Architecture](./docs/architecture.md) · [Operations](./docs/operations.md) · [Development](./docs/development.md)
-
+
-LazyBoy 是一套本機優先(local-first)的多 Agent 工作空間。每個 Agent 都能使用瀏覽器、終端、檔案系統與桌面應用程式;執行畫面可即時觀看、可以人工接管,也能把示範整理成技能,之後透過排程重複執行。
+LazyBoy gives each agent its own Linux desktop in Docker — browser, terminal, and files. You can run several agents, put them in a group, turn a demonstration into a skill, and schedule it to run again.
-> [!IMPORTANT]
-> LazyBoy 會把對話、記憶、憑證與瀏覽器設定檔持久化在自己的主機,但使用外部模型時,完成任務所需的提示詞、工具結果或畫面仍可能傳送給你設定的模型供應商。請依資料敏感度選擇供應商與部署方式。
+This is an early `0.1.0` release with desktop and phone browser UIs. You bring your own model API key.
-## 為什麼是 LazyBoy?
+## Features
-| 一般聊天機器人 | LazyBoy |
-| --- | --- |
-| 告訴你怎麼做 | 在隔離桌面中實際操作 |
-| 看不到執行過程 | 即時 noVNC 畫面與步驟狀態 |
-| 人與 Agent 搶控制權 | 接管/釋放租約,安全交接 |
-| 每次重新說明流程 | 示範一次,儲存為可攜技能 |
-| 一次性對話 | Session、長期記憶、排程與群組 |
-| 固定模型與工具 | xAI、OpenCode Go、OpenAI 相容端點與 MCP |
+- **A lasting workspace**: each agent has its own chats, run history, and optional long-term memory.
+- **A real computer**: open pages, use the terminal, organize files, drive the GUI — and watch it live.
+- **Take over any time**: sign in, pass a check, or nudge things by hand on the same desktop, then hand it back.
+- **Several agents and groups**: shared Team computers or private dedicated desktops.
+- **Teach by demo, then schedule**: turn a walkthrough into a skill; use cron for repeat work.
+- **Your models and tools**: xAI, OpenCode Go, OpenAI-compatible endpoints, MCP, and file skills.
+- **Voice calls**: after you enable a voice provider, you can talk to the agent on a call.
+- **Phone-friendly**: collapse the chat sidebar; the remote desktop has keyboard, trackpad, right-click, drag, and scroll.
+- **English and Traditional Chinese**: switch the UI language in the app.
-## 快速開始
+## Quick start
-### 需求
+You need Docker and Compose, Git, Make, Python 3, and an API key for a supported model. On macOS use Docker Desktop or OrbStack; on Linux use Docker Engine.
-- macOS 或 Linux
-- Docker Engine / Docker Desktop(含 Compose)
-- Make、Git
-- 至少 4 核 CPU、8 GB RAM;建議 8 核、16 GB RAM
-- 一組支援的模型 API 金鑰
-
-第一次啟動會建置 Debian、XFCE、Chromium 桌面映像,因此會比後續啟動久。
+From the repo root:
```bash
-git clone
-cd LazyBoy
-
make env
-# 編輯 .env,至少填入 XAI_API_KEY、OPENCODE_GO_API_KEY
-# 或 OPENAI_API_KEY 其中之一
+```
+Edit the generated `.env` and set one of `XAI_API_KEY`, `OPENCODE_GO_API_KEY`, or `OPENAI_API_KEY`. The init tool creates the login and service secrets; running it again keeps existing values.
+
+```bash
make up
make health
```
-開啟 [http://127.0.0.1:3101](http://127.0.0.1:3101),使用 `.env` 中的 `LAZYBOY_APP_TOKEN` 登入,建立第一個 Agent,然後直接描述目標。
+Open **[http://127.0.0.1:3101](http://127.0.0.1:3101)**, sign in with `LAZYBOY_APP_TOKEN` from `.env`, create an agent, and pick a model.
-```text
-打開指定的訓練網站,完成還沒看完的章節,最後整理進度。
-```
+The first run builds the API and Linux desktop images from source and takes a while. The build toolchain lives in the containers, so a full Docker deploy does not need Rust or Node.js on the host.
-常用指令:
+Try a concrete task:
-| 指令 | 用途 |
-| --- | --- |
-| `make up` | 建置並啟動完整堆疊 |
-| `make health` | 檢查 API 健康狀態 |
-| `make logs` | 持續查看服務日誌 |
-| `make ps` | 查看容器狀態 |
-| `make down` | 停止服務,保留 PostgreSQL 資料 |
-| `make purge` | 停止服務並刪除 PostgreSQL volume |
+> Open the site I name, summarize the page, and save the notes as a Markdown file in the workspace.
-沒有 Make 時,可以從 `.env.example` 建立設定後執行:
+Status and logs:
```bash
-cp .env.example .env
-# 為 LAZYBOY_APP_TOKEN、SANDBOX_SUPERVISOR_TOKEN、
-# LAZYBOY_VAULT_KEY 各自執行一次 openssl rand -hex 32
-docker compose up -d --build
+make ps
+make logs
+make down # stop services, keep PostgreSQL data
```
-## 核心能力
+For resource limits, environment variables, HTTPS, and in-container sudo, see [Operations](./docs/operations.md).
-| 能力 | 實際行為 |
-| --- | --- |
-| 可觀察的電腦操作 | 右側 noVNC 顯示 Agent 的 1280×800 桌面;模型觀察與人類畫面分流 |
-| 瀏覽器與原生桌面控制 | 網頁透過 CDP 元素操作;原生 UI 使用 AT-SPI,必要時才退回座標 |
-| 人工接管 | 登入、2FA、驗證碼或敏感步驟可暫停 Agent,由使用者接管後續跑 |
-| 示範教學 | 記錄語意操作事件並整理成 playbook,不依賴固定像素重播 |
-| 長期記憶 | PostgreSQL + pgvector + MiniLM;只保存明確要求記住的內容 |
-| 安全登入 | 每個 Agent 的 AES-256-GCM 憑證庫;只對相符的 HTTPS 網域填入 |
-| 排程 | 五欄 cron、時區支援、立即試跑;到期任務進入一般 run 佇列 |
-| 多 Agent 與群組 | Team 共用電腦可分配不同 DISPLAY;私人模式使用獨立容器 |
-| MCP 與檔案技能 | 支援 stdio、HTTP、SSE MCP,以及 `data/skills/*/SKILL.md` |
-| 語音通話 | 前端提供可設定的即時語音工作階段 |
-| 中英介面 | `zh-TW` 與 English 文案共用完整 key 契約 |
+## On a phone
-## 一個任務如何完成
+Desktop and phone share the same web UI. After you deploy on a host the phone can reach, open that URL in the phone browser. `127.0.0.1` is the phone itself — it will not reach another machine.
-```mermaid
-flowchart LR
- U["你 文字・附件・語音"] --> W["React 工作空間 對話・電腦・記憶"]
- W -->|HTTP / WebSocket| A["Rust API + Agent 模型・工具・技能"]
- A -->|受控工具呼叫| S["Supervisor 資源與生命週期"]
- S -->|啟動 / 暫停 / 恢復| C["隔離 Linux 電腦 Chromium・XFCE・檔案"]
- C -->|畫面與事件| W
+Tap outside the chat sidebar to collapse it. On the remote desktop you can switch between tap-to-click and trackpad, and use the toolbar for keyboard, right-click, or drag. Put the service behind HTTPS before you expose it; see [Operations](./docs/operations.md#安全模型).
- Q["排程"] -. Cron .-> A
- A <--> M[("PostgreSQL Session・記憶・事件")]
- V["加密憑證庫"] -. 僅相符 HTTPS 網域 .-> C
+## Stack
- classDef ui fill:#151517,stroke:#3ec5a8,color:#f1f1f2
- classDef core fill:#101012,stroke:#85858a,color:#f1f1f2
- classDef secure fill:#221c0e,stroke:#fcd68a,color:#f1f1f2
- class U,W ui
- class A,M,Q core
- class S,C,V secure
-```
+- **Frontend**: React 19, TypeScript, Vite, noVNC
+- **Backend**: Rust 2024, Axum, Tokio
+- **Data**: PostgreSQL, pgvector, SQLx
+- **Desktop**: Docker, Debian, XFCE, Chromium, Xvfb
+- **Computer control**: CDP, AT-SPI, X11
+- **Extensions**: MCP, file skills, demonstration playbooks
-
+Flow diagrams, handoff, component roles, and the computer lifecycle live in **[Architecture](./docs/architecture.md)**. The older **[interactive diagram](./docs/workflow.html)** is still there — download it and open it in a browser.
-**[開啟可縮放、可搜尋、支援深色模式的互動流程圖 →](./docs/workflow.html)**
+## Local development
-