# 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 演示](assets/demo.gif) ## 🛋️ 为什么做 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)。