# lingque
**Repository Path**: sep20210917/lingque
## Basic Information
- **Project Name**: lingque
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-08-28
- **Last Updated**: 2026-09-06
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Lingque 🐦

**躺着编程,保护腰椎。**
Lingque 让你离开电脑椅,用手机遥控本地的 OpenCode 继续干活——派活、看进度、批准权限,躺沙发上就行。解放你的腰和脖子。
- 🛋️ 手机上给电脑派活,实时看 AI 思考和工具调用
- ☁️ 官方中继开箱即用,无需公网 IP / Tailscale / ngrok
- 🔒 6 位配对码绑定设备,会话数据留在本地
**[⬇️ 下载 macOS dmg](https://github.com/flying-nimbus-frog/lingque/releases/latest)**
> 🌍 English: [README.md](README.md)
## 🎬 演示
看灵雀如何运行——在手机上配对设备,然后派发任务:

## 🛋️ 为什么做 Lingque
> 买了人体工学椅、升降桌、护腰带……最后发现最护腰的方式是**离开椅子**。
Lingque 让你用手机遥控电脑上的 AI Agent。坐沙发上、躺床上、溜达着——代码继续跑,你继续看。
## ✨ 特性
- 🛋️ **躺着也能编码**:离开电脑椅也不失控——手机上看进度、改 prompt、批权限
- 📱 **手机端(Flutter)**:登录 → 设备列表 → 会话 → 实时聊天,指令从手机直达电脑
- 🖥️ **桌面端(Tauri 小挂件)**:账户/设备配对码管理、opencode 引擎启停
- 🤖 **嵌入 opencode**:桌面端桥接中继与本地 `opencode serve`,会话数据全部在电脑本地 opencode 中
- 🔐 **安全**:设备级配对(6 位配对码)、账号隔离、TLS 全链路、登录限流
- 🧠 **思考过程可见**:模型推理内容折叠展示,工具执行详情按需展开
- 🌐 **任何网络**:手机 4G/5G/WiFi 都能连,不需要同一局域网
## ⚖️ 为什么不用 Tailscale?
| | Lingque | Tailscale + opencode serve | OpenCode Mobile |
|---|---------|---------------------------|-----------------|
| 上手难度 | 账号+配对码,开箱即用 | 两端装 Tailscale | 装 App + 配隧道 |
| 网络要求 | 任何网络(4G/5G) | 同一 Tailscale 网络 | 同一局域网或手动配隧道 |
| 账号体系 | 内置,支持多设备 | 无(靠 Tailscale 鉴权) | 无 |
| 中继 | 官方,零配置 | 自托管 | 自托管(Cloudflare/ngrok) |
| 平台 | 桌面端(Tauri)+ 手机端(Flutter) | 任意浏览器 | 仅 Android |
| 适合人群 | 非技术用户也能用 | Tailscale 熟手 | 技术用户 |
> **Lingque 是给想躺着编码的人用的,不是给想配 VPN 的人用的。**
## 🚀 快速开始
### 方式一:使用托管中继(无需部署,推荐)
项目提供官方中继服务,你只需要**客户端**:
```
1. 电脑:安装桌面端应用 → 注册账号 → 登录
2. 电脑:Agent 页点「启动」(opencode 引擎);工作目录与模型跟随本机 opencode 配置
3. 电脑:设备页「出配对码」→ 记下 6 位配对码
4. 手机:安装 App → 登录同一账号 → 找到待配对设备 → 输入配对码
5. 完成:手机下发指令,电脑执行,权限在手机上审批
```
> 会话、代码、Agent 数据全部在你的电脑本地,中继只做路由转发,不存储你的业务内容。
### 方式二:自托管中继(Docker 一条命令)
```bash
git clone https://github.com/flying-nimbus-frog/lingque.git && cd lingque/relay \
&& echo "RELAY_JWT_SECRET=$(openssl rand -hex 32)" > .env \
&& docker compose up -d --build
```
详见 `relay/README.md`(含 nginx 反代、HTTPS、systemd 部署)。
## 🏗️ 架构
```
手机App ──HTTPS/WSS──▶ 云端中继 relay ◀──WSS── 桌面端(嵌入 opencode serve)
Flutter Python/FastAPI Tauri + opencode
│
账号体系 · 设备配对 · 指令路由 · 事件广播 · 状态心跳
```
| 组件 | 目录 | 技术 | 职责 |
|------|------|------|------|
| 中继 | `relay/` | Python + FastAPI + WebSocket | 账号、设备配对、路由、状态 |
| 桌面端 | `desktop/` | Tauri (Rust + Web) | 配对码、中继↔opencode 桥接、日志 |
| 手机端 | `mobile/` | Flutter | 遥控界面、审批 |
| 协议 | `PROTOCOL.md` | WebSocket JSON | 三方通信契约 |
## 🔐 安全设计
- **设备级配对**:电脑生成 6 位配对码,手机输入后绑定——同一账号下设备互不可见
- **账号隔离**:所有数据按 user_id 隔离
- **限流**:注册/登录/配对均有频率限制
- **传输**:全程 TLS(HTTPS/WSS)
## 🧱 技术栈
- 中继:Python 3.12 · FastAPI · WebSocket · SQLite
- 桌面端:Rust · Tauri 2 · tokio · reqwest
- 手机端:Flutter 3 · http · web_socket_channel
- 部署:Docker Compose · nginx · Caddy
## 📂 目录结构
```
lingque/
├── relay/ # 云端中继服务器(含 Docker 部署)
├── desktop/ # 桌面端应用(Tauri)
├── mobile/ # 手机端应用(Flutter)
├── docs/ # 架构设计文档
├── PROTOCOL.md # 三方通信协议
└── v1-expo/ # 早期原型(归档)
```
## 🤝 致谢
- [opencode](https://github.com/anomalyco/opencode) —— 桌面端嵌入的 Agent 引擎(进程级嵌入,未改动其源码)
## 📄 License
MIT License,详见 [LICENSE](LICENSE)。