五分钟上手墨斗
从下载到第一条弹直的墨线。本页命令以 Windows 为例,Android 上的对应操作在每节末尾注明。
01下载与启动
从下载页获取约 4 MB 的 mdo.exe,放进任意有写权限的目录并双击运行。首次启动会在 exe 旁创建 mdo-home/,随后打开原生窗口——这就是完整的全部安装过程:不写注册表、不进 AppData,C 盘零占用。
# 下载后直接运行,无需安装 .\mdo.exe # 无窗口只读启动做冒烟检查:不创建、不修改任何文件 .\mdo.exe -- --help
Android 端安装约 3.8 MB 的 APK 后首次启动即创建应用私有 Home,无需任何目录配置。
02首个任务
启动后在默认项目里新建任务即可对话。默认项目的新任务使用 mdo-home/workspace/ 作为专用工作目录,首次创建任务时自动建立——不占用程序目录或启动目录。已有会话保留创建时记录的工作目录,显式指定的项目或会话路径始终优先。
时间线会实时呈现流式回复、工具调用、产物与推理过程——事件经同端口 WebSocket 推送、无需轮询;每个带副作用的动作(写入、编辑、联网)都会先弹出审批请求。打开旧任务按轮分页加载历史,上下文压缩不会删除显示历史。顶栏可切换中文、English 与 Русский 三种界面语言。
03配置模型
内建免费默认模型 ornith-1.5-35b(默认 Responses 协议,同时提供 Chat Completions 与 Anthropic 接口,240K 上下文窗口)开箱即用,无需配置任何 Key。
接入自有模型走设置 → 模型页:先建 provider(endpoint、TLS 校验、超时),再建 model profile(wire 模型名、协议集、上下文与输出窗口)。provider 与 model 分离,同一模型可以挂到不同连接上。
{
"providers": [{
"id": "my-provider",
"endpoints": { "responses": "https://api.example.com/v1" },
"credential": { "secret_ref": "env:MY_PROVIDER_KEY" }
}],
"items": [{
"id": "my-model", "provider": "my-provider",
"wire_model": "example-large", "protocols": ["responses"]
}]
}普通 JSON 配置不允许保存 api_key、token、password 等明文敏感值:凭据只能写成 secret_ref 引用(env:、file:、keychain: 或 prompt:),使用时才解析、解析后即释放。字段权威定义见仓库 配置合同。
04权限与审批
mdo 的默认姿态是"先过准绳":文件写入需要写准入令牌,联网工具受域名与地址策略约束,Agent 的每次带副作用调用都会弹出逐调用审批,可以在设置中调整严格程度。
- 中断恢复:运行被取消或进程中断后,恢复视图列出全部未落账的持久调用,每个都需要你显式选择
RETRY(重跑并再次过权限)或RECORD_UNCERTAIN(不调用,向会话写入可追溯的不确定结果);只有已知只读的工具才允许自动重试。 - 联网三件套:
web_search与web_open真正联网且限制公网地址,web_find只读进程内文档快照;搜索能力经账号登录(PKCE)获得,凭据设备内加密保存。 - 审计:审批决定、工具结果与恢复历史全部落账,可回放。
05便携与多 Home
运行时数据只进入可执行文件旁的 mdo-home/——不写注册表、不进 AppData、不上传云端。担心挤爆 C 盘?把 exe 放到任意盘,或用 --home / MDO_HOME 把数据目录指到 D 盘、移动硬盘或 U 盘(前者优先)。两者都只计算路径,不触发目录创建;卸载即删除一个文件夹,零残留。
# U 盘便携模式:exe + Home 一起带走 E:\mdo.exe -- --home E:\mdo-home # C 盘零占用:常驻 D 盘 $env:MDO_HOME = "D:\mdo-home"; .\mdo.exe
旧版本可执行文件旁的 data/ 与用户目录 .mdo/ 通过设置 → 迁移导入:显式预览、二次确认、原子发布,目标 Home 必须不存在,旧目录永远保留。详见旧数据迁移说明。
06进阶扩展
- 记忆:全局与项目各维护
MEMORY.md。Agent 用普通文件工具读写,你在设置页编辑同一份文件;快照指纹让直接改文件后的过期 UI 保存显式失败,不会静默覆盖。 - Skill:外部 Skill 目录是完整信任边界,同 ID 外部目录会整体遮蔽内置 Skill;脚本与资源只有在 front matter 显式声明后才可被 API 读取。
- MCP:支持 stdio 与 HTTPS Streamable HTTP 两种传输;secret 只在候选注册期内短暂存在,目录与状态 API 永不回传。
- C 模块:
agents/、subagents/、tools/放置 C 源码模块,经受限 TCC 编译、事务式热重载,公共 ABI 见include/mdo/module.h。 - 计划任务:设置页创建的定时任务复用普通 Agent 运行的全部权限与审计链,重启后续跑。
07设备互联
登录同一会员账号后,手机与电脑可以在侧栏的设备入口互相选择、互相控制。本机远控默认关闭:在设置页显式开启后,设备才会主动连接官方中继(TLS 加密传输,出站连接、免开端口)。
- 选中即接管:选择目标设备后,对话、项目、文件、审批、设置与更新全部作用于目标设备;界面顶部始终显示目标设备标识与只读/控制模式。
- 只读观望:可以先以只读模式查看目标设备的工作状态,再决定是否切换到控制模式。
- 写操作有回执:写请求携带唯一 ID 与内容指纹,目标设备去重执行并回执;断线后写操作冻结,绝不回退到控制端本机。
- 同账号隔离:服务端校验会员会话与设备所有权;跨账号设备不可查询、不可连接。
- 移动端克制:Android 仅在远控开启期间申请后台资源,关闭、撤销或退出账号即释放;受系统与厂商后台策略影响,不承诺无限后台在线。
- 中继不留存:转发内容仅在内存中经过,不写数据库、不落访问日志。
完整协议与验收记录见仓库 设备远程控制合同;数据安全总承诺见数据安全保证。
更多合同细节(会话存储、备份恢复、Web 工具边界、模块 ABI……)请直接阅读 MIT 开源仓库的 docs/ 目录——每一篇都与代码同仓演进。