<div align="center">

# Wandesk

**Give intelligence shape. Let AI sculpt your desktop.**

An open-source AI desktop where you build the apps you need just by describing them. Plug in Claude Code, Codex, DeepSeek, OpenAI, Kimi, Qwen — anything OpenAI-compatible. Apps share context. AI remembers you. All local. No signup.

[Website](https://wandesk.ai) · [中文](README.zh-CN.md) · [Discord](https://discord.gg/VUfTzCvz)

![Wandesk Chat](docs/images/wandesk-chat.webp)

</div>

---

## 🚀 Run from source

> Prerequisites: Git and Node.js 22.5+ (Wandesk uses Node's built-in `node:sqlite`, stable since 22.5).

```bash
git clone https://github.com/Sider-ai/wandesk.git
cd wandesk
npm install
npm run dev
```

Then open <http://localhost:9602>.

Prefer a native window? The same app ships an optional desktop shell:

```bash
npm run tauri:dev      # run as a desktop app (needs a Rust toolchain)
npm run tauri:build    # build an unsigned .app / .dmg
```

See [`tauri/README.md`](tauri/README.md). The browser and server deployment
paths are unaffected — the shell is purely additive.

> Just want to use it, not run from source? Download the packaged macOS / Windows desktop app at **[wandesk.ai](https://wandesk.ai)** — no Node, no terminal, just open and go.

---

## ✨ What Wandesk gives you

Not a smarter chat box. A real desktop your AI can live and work in.

### 💬 Chat + Apps — your real AI workspace

The chat box is just the entry point. Real work happens in apps. Notebook, ledger, board, interactive fiction — each built for the long haul.

- Open chat, notebook, and ledger side by side — never flattened into one thread.
- Notebook, Ledger, Chat, Memory, Open Source Radar — ready out of the box.
- One consistent design language across every app.
- Notes stay in the notebook, ledger entries in the ledger — never buried under a chat scroll.

![Chat](docs/images/wandesk-chat.webp)

### 🪄 App Workshop — say it, get the app

Own software without writing a line of code. Describe the feature you want and Wandesk generates a complete local app — UI, backend, database in one shot.

- React UI + backend API + SQLite storage generated together.
- Fully local — no cloud dependency, works offline.
- Keep talking to AI to iterate; edits apply in place.
- No subscription, no ads, no cloud account lock-in.

![App Workshop](docs/images/wandesk-app-workshop.webp)

### ⚙️ AI Inside Every App — natively

It is not just AI helping you from the outside. Every Wandesk app can fire AI tasks of its own.

- Ledger auto-tags expenses and writes monthly reports.
- Notebook summarizes a week of notes from one sentence.
- Interactive fiction continues itself, keeping characters consistent.
- Apps generated by App Workshop inherit the same AI-calling power.

![Ledger](docs/images/wandesk-ledger.webp)

### 🧠 Shared Context — what you just said, the apps already know

All apps share one agent core and one workspace.

- Switch to any app, say *"save what we just discussed"* — it knows what you mean.
- No clipboard ping-pong, no Zapier, no MCP bridge gymnastics.
- Intent → AI → app, end to end.

![Notebook](docs/images/wandesk-notebook.webp)

### 📌 Personal Memory — the more you use it, the more it knows you

Wandesk actively remembers your preferences, skills, and corrections.

- *"I use Swift + SwiftUI"* — tell it once, applies forever.
- Corrected once, AI does not repeat the same mistake.
- Package recurring routines into reusable **Skills**.
- Every memory is inspectable — never a black box.

![Memory](docs/images/wandesk-memory.webp)

### 🤝 Agent Integration — Claude Code, Codex live in your desktop

The AI coding tools you already use become Wandesk apps. No window switching, no copy-paste, all agent collaboration in one place.

- If the `claude` or `codex` CLI is installed, Wandesk surfaces it as a desktop app.
- External agents can operate Wandesk natively — send them one URL, they read your whole desktop.
- Real code in real repos, not a simulation.

![Claude Code](docs/images/wandesk-claude-code.webp)

---

## 🔌 Bring Your Own Model

Wandesk is provider-neutral. Plug in any AI you already use:

- **DeepSeek**
- **OpenAI**
- **Anthropic / Claude**
- **Google Gemini**
- **Kimi (Moonshot)**
- **Qwen (Alibaba)**
- Any OpenAI-compatible endpoint

Switch providers per-app from the Settings inside Wandesk.

---

## 🧩 Built-in Apps

| App | Purpose |
|---|---|
| **Chat** | The intent layer — talk to AI with full workspace context |
| **App Workshop** | Describe an app idea, get a real local app generated |
| **Tasks** | Track ongoing agent tasks across the desktop |
| **Notebook** | Lightweight notes that AI can read and write |
| **Files** | Browse and operate on the local workspace |
| **Memory** | Inspect and edit personal long-term memory |
| **Settings** | Models, providers, language, theme |
| **Claude Code** | Anthropic's coding workbench, wrapped as a desktop app |
| **Codex** | OpenAI's Codex workbench, same treatment |
| **Ledger** | Personal finance with AI auto-categorization |
| **Open Source Radar** | Track and analyze trending GitHub projects |

---

## 🏗️ Architecture

```text
ui/                React desktop UI (windows, taskbar, launcher, apps)
server/main/        core HTTP / WebSocket APIs and system services
server/apps/        app-specific backend modules
server/shared/      shared backend utilities
apps/               baked APP.md context files (per app)
language/           locale source for UI text, prompts, and app docs
scripts/            development and language-baking scripts
skills/             bundled Codex skills
docs/               documentation and images
```

Generated and runtime output is **not** source — keep these out of git:

```text
.aios/            runtime locale and config state
database/         SQLite app data
files/            user-side files
ui/dist/         built frontend
node_modules/
```

---

## 🧱 Tech Stack

- **Frontend**: React 19, TypeScript, Vite, Tailwind CSS
- **Backend**: TypeScript HTTP APIs + WebSocket runtime channel, precompiled to `dist/server/` for runtime
- **Storage**: SQLite via Node's built-in `node:sqlite`
- **Runtime ports**: main `9602`, apps `9603`
- **Workspace data**: `~/Library/Application Support/com.vidline.aios.wandesk.client/workspace` (macOS); equivalent paths on Linux / Windows

---

## 🛠️ Development

```bash
npm install
npm run dev          # English locale dev
npm run dev:zh       # Chinese locale dev
npm run typecheck
```

Build runtime assets:

```bash
npm run build
npm run build:zh
npm run build:server
```

### Language baking

Wandesk uses source files under `language/<locale>/` and bakes them into the runtime workspace:

```bash
tsx scripts/start.ts en --force
tsx scripts/start.ts zh --force
```

This regenerates runtime app docs under `apps/` and locale state under `.aios/`.

---

## 🌐 Community

- **Website**: <https://wandesk.ai>
- **中文站**: <https://wandesk.cn>
- **Discord**: <https://discord.gg/VUfTzCvz>
- **Issues**: <https://github.com/Sider-ai/wandesk/issues>

We accept PRs, bug reports, app ideas, locale contributions, and Skill submissions. For anything bigger than a small fix, open an issue first so we can talk through the shape of the change.

### 🙏 Acknowledgements

- The optional desktop shell ([`tauri/`](tauri/README.md)) was motivated by [**@epicsagas**](https://github.com/epicsagas), whose [PR #1](https://github.com/Sider-ai/wandesk/pull/1) independently built a Tauri v2 wrapper for Wandesk and made the case for shipping one in-tree. Thank you.

---

## 🔗 Related

- [realuckyang/AIOS](https://github.com/realuckyang/AIOS) — earlier exploration of an operating system for the AI era.

---

## 📄 License

ISC

---

<div align="center">

Built with care for people who want to grow their own AI desktop.

</div>
