nanoMuse

nano-museGPL-3.0活跃维护

跨设备个人 AI 智能体,在手机、电脑和浏览器上运行,能操作屏幕和电脑完成任务,关掉应用也继续工作,记住你的偏好,不可逆操作前先征求同意。

nanoMuse: an open-source personal agent for every device you own. One agent with a name and a look of its own that does things, keeps working while the app is closed, remembers you, and asks before anything you cannot undo. On Android, iPhone and iPad, Windows / macOS / Linux and in the browser; your phone's screen and your computer as its hands.

v1.0.9发布于 2026-10-29 15:07 UTC3,387star +94 / 7 天407fork同步于 2026-11-10 23:41 UTC

怎么上手

由 README 提炼,执行前请确认
bash scripts/self-host.sh --local
docker compose up -d app
硬件要求按 README 说明

README 未说明显存或 GPU 要求;Android 需 8.0+ 且 arm64,macOS 需 12+(Apple Silicon 或 Intel),Windows 需 10+,Linux 为 x64;手机端在 APK 内以 proot 运行 Alpine Linux。

支持 Apple Silicon有 Docker 镜像
下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

开源个人智能体,跨手机、电脑和浏览器运行,能动手做事、记住你、关掉应用也继续跑

跨设备个人 AI 智能体,在手机、电脑和浏览器上运行,能操作屏幕和电脑完成任务,关掉应用也继续工作,记住你的偏好,不可逆操作前先征求同意。

核心能力

  • 提供 Linux shell、浏览器、MCP 服务器与技能来执行任务
  • 开启 Hands 后通过屏幕操作手机应用和电脑窗口
  • 删除、发送、付款前先停下询问,密码由你自己输入
  • 用 @Mac 等前缀把任务派发到其他设备,审批回到手边设备
  • 目标按计划检查、例程在应用关闭时运行,记忆存为可编辑 Markdown

容易踩的坑

macOS 版未公证,首次打开需右键选择 Open;Windows 版首次运行需点 Run anyway;iPhone/iPad 目前只能通过 TestFlight 安装 beta 版;自建中继需单独运行 self-host 脚本或 docker compose。

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本v1.0.9
  1. v1.0.9nanoMuse 1.0.9 · Tiller最新正式版2026-10-29 · 2026-10-29 15:07 UTC

    nanoMuse 1.0.9 · Tiller

    🐉 nanoMuse 1.0.9 “Tiller”: a fix release the same day as Crew. The desktop starts again when you are signed in, the relay's console loads on a large record, and the runtime takes a budget for a task and recalls from the whole memory store.

    1.0.8 went out this morning, and its desktop did not start for anyone who was signed in. The plugin pointed the nanoMuse Cloud provider row at the loopback door it opens for the relay and waited for that settings write while the plugins were still starting; the write waits for the plugins, so the Host never announced its address and the window sat on Starting… for good, with nanoMuse is still starting every ten minutes (#701, fixed in #703). A fresh install was never affected, which is why the release check passed; everyone who had used 1.0.7 or signed in was. The same day the hosted relay's console stopped loading: the Usage page's table of the turns people ran on keys of their own read a week of them from the record itself, where a turn's provider and cached count sit behind its request and answer, and on 40 GB one call took minutes while holding the read connection's lock, so every page waited behind it (#708). Both are fixed here, together with three runtime changes that landed in between: a task can be given a budget and recall reads the whole memory store, both by @hobostay (#697, #696, for #685), and a contact's card folds its long lines, by @Yicheng-Mark (#702). Nothing changed on the phones; they move to 1.0.9 so every device reads the same version.

    Highlights

    • The desktop starts again when you are signed in. The loopback door now asks for the port it had last, so the provider row is usually right as it is; when it is not, the row is rewritten once the Host is up, without being waited for. If your 1.0.8 sits on Starting…, quit it and install 1.0.9 over it: your settings, your chats and your sign-in stay where they were, and nothing else is needed (#703, #701).
    • The relay's console loads on a large record. The relay keeps the figures of a turn run on a key of the person's own in one small row (own_figures: account, time, provider, model, the three token counts), written with the turn and removed with it; the Usage page's table reads those rows in milliseconds instead of walking the record. The own turns kept before this version are filled in by a paced backfill after the restart, 200 a page, and the usage answer says own_keys_pending while it runs (#708).
    • A task can be given a budget: tokens, money, time, and the size of one request. Off unless set. [agent.budget] in config.toml takes max_total_tokens, max_cost_usd (with your own per-million rates) and max_seconds; a task that reaches one stops with a sentence that says which, and the turn's usage goes to the audit log as a task_budget entry, only when a limit is set or reached. agent.max_context_tokens caps the approximate size of one request: tool results are shortened to a labelled head and tail and old exchanges dropped as whole groups; the saved conversation keeps the original text. By @hobostay (#697, #685); docs/runtime-budgets.md has the details.
    • Recall searches the whole memory store. Keyword search and recall by meaning read every memory, not only the newest 1,000
  2. v1.0.8nanoMuse 1.0.8 · Crew2026-10-29 · 2026-10-29 06:31 UTC
    查看更新说明

    nanoMuse 1.0.8 · Crew

    🐉 nanoMuse 1.0.8 “Crew”: four days after Logbook, your devices keep each other posted. A scheduled task on the computer that needs a yes asks on your phone; every device reads the step another is on and says when it is waiting for you; the wait before a first token is spoken of, with your place in the queue; a thumb on a reply or the reason for a Stop goes to the account's record as one word, and the operator reads the record question by question. The phone no longer crashes when you stop talking, the iPhone no longer stops your music, the desktop's Library takes documents of your own, and the runtime behaves on Windows.

    1.0.7 went out on 2026-10-25. Since then seventy-two pull requests were merged, and this version is the fifth look at the whole project, with one change at its centre: the devices keep each other posted. Until now a task that ran on one device was a closed box to the others: the phone saw Mac is working… until the reply came, a scheduled task on the computer that hit a step needing a yes waited for someone at the keyboard, and a person at the back of the relay's queue saw the typing dots and nothing else. Now a scheduled run on nanoMuse Desktop sends its permission card to the account's phones, payment steps included, with Allow once, Always in this task and Deny; the first answer on the computer or on any phone decides and the other cards close, and the grant stays on the computer (#652, #672 by @cutey-none, with the grants per chat and per task of #642). Every tool call tells the relay the step, in the model's own words when it gave them, so the line under another device's prompt reads Pixel 8 is working: 打开携程网站 and Pixel 8 is waiting for you while a card holds its run (#617 by @z1010223zero-pixel, #635, for #610). The relay tells a streamed turn where it stands while it waits for a provider slot and keeps the line alive while the provider thinks, and the apps draw the wait under the typing dots: The model is busy, 15 s so far with Cancel, or 3 ahead of you; the phones also compact a conversation at 32k tokens instead of 108k and carry about an eighth less in every call, since the time to the first token grew with the prompt (#626). Around the record that 1.0.7 opened: every call says who started it (a person, a scheduled task, the feed, a goal's check, another device) and where it sits in the conversation, a turn on a key of your own joins the training view when Help improve is on, what happened around a turn reaches the relay as codes and never as words (what the Sentinel decided, how an approval went, why a reply was stopped, a thumb up or down), and the operator's console counts the record by questions rather than calls and lays each question out once (#653, #654, #655, #660, #661, #662, #663); its figures read an index instead of every body, which on the hosted relay's 30 GB turned half a minute into a third of a second (#680, #681). The rest is what a check and the people using it found. @Yicheng-Mark made the runtime at home on Windows: a private file stays its owner's, a config.toml Notepad or PowerShell wrote is read, a file is written with the lines the

  3. v1.0.7nanoMuse 1.0.7 · Logbook2026-10-25 · 2026-10-25 05:27 UTC
    查看更新说明

    nanoMuse 1.0.7 · Logbook

    🐉 nanoMuse 1.0.7 “Logbook”: two days after Beacon, the relay keeps the record of every conversation with the account's models, screenshots included, and the apps add the turns they ran on a key of your own, so your devices share one history whichever of them, and whichever key, answered; the drawn face's clips travel between devices; nanoMuse Cloud answers the nanoMuse apps only; the operator's console is rebuilt around what the model endpoint is doing; and Data controls on every app says what is held and deletes it with one tap.

    1.0.6 went out on 2026-10-23. Since then twenty-seven pull requests were merged, and this version is the fourth look at the whole project, with one change at its centre: the record. From relay 0.29 nanoMuse Cloud keeps each chat turn it answered, in full: the request as it sent it to the model (the system prompt with your memory and SOUL, every message, what tools returned, the screenshots of a screen operation) and the answer as the model gave it; the pictures are stored once each as files named by their hash, so a screenshot an app resends on every step is one file. It is the account's own data: your devices read it back, the person running the relay can see a problem whole, nobody else can, and one tap under Data controls removes all of it. The 1.0.7 apps take part from both sides: each chat call names the device and the conversation it belongs to, and a turn answered on a key of your own goes up afterwards with its pictures, never the key or the address, so the record is whole wherever the model was (#579, #591). Around it, three more things the account does: the face's clips travel with the face, so a look drawn and animated on one device is worn and moves on the others without a second rendering job; each device says in its hello which provider and model answer its chats (the two ids, nothing else), so the Devices list and the operator's Platforms page can say what people run; and the models answer the nanoMuse apps only (relay 0.28): a pool worker, an SDK or a script on an account key is turned away with 403 client_not_supported and a sentence pointing to a key of its own, while every app of 1.0.6 and earlier goes on unchanged (#570, #573). The operator's console at /app/admin is a new application, in 简体中文 and English, with a Live page that reads the provider gate every three seconds and pages for platforms, retention, screen operation and data quality; the relay writes one row per chat call saying how it went, never what was said, and its heavy pages read on a second connection off the requests' path, so a month of the ledger costs the operator the wait and nobody else anything. The rest is the kind of thing a check finds: the runtime names itself on every model call, treats a remote MCP server as sending data out, asks before telling a coding agent what to do, keeps a webhook's key out of the transcript and shares connector addresses without their secrets; the desktop keeps a failed push's lines for the next one; the phone stops the account's work before signing out; the iPhone keeps a second account's profile and files apart from the first. Beside the check, @mongo027 made a thinking model's reasoning show while it thinks (#484); @cutey-none added Parallel as a web search provider (#566) and fixed the desktop settings' tint (#569); @Mola-maker let one scheduled task fire at several times a day (#558); @hobostay made the desktop check who stops or approves a remote task (#567); @z1010223zero-pixel

  4. v1.0.6nanoMuse 1.0.6 · Beacon2026-10-24 · 2026-10-24 08:02 UTC
    查看更新说明

    nanoMuse 1.0.6 · Beacon

    🐉 nanoMuse 1.0.6 “Beacon”: nine days after Lookout, a third look at the whole project with the forty-eight pull requests that arrived in between; nanoMuse Cloud serves one multimodal model and leaves pictures and clips to a provider of your own, the relay's sign-in gives nothing away, the runtime finishes what a restart interrupted, the desktop asks before a restart, and the phone reads the Feed posts you liked.

    1.0.5 went out on 2026-10-14. Since then forty-eight pull requests were merged, more than in any week before, and this version reads the project through once more with them in: the relay, the Python runtime, the web console, the desktop, the Android and iPhone apps, the docs and the workflows, area by area. The largest change is to the account: nanoMuse Cloud now serves one model, Qwen/Qwen3.6-27B-FP8, which reads text and pictures and does both the chat and the operating of a screen, and it no longer pays for image or video generation (#536, #539, #545, #546). A drawn face, a picture asked for in a chat and the face's clips come from a provider of your own on every client, the pickers list only sources that can, and an empty row names who could; the default dragon and the four new preset looks are pictures already made, so a look is yours without a key. The relay is 0.27.0: a wrong password and an unknown account get the same answer, every limit is decided in one transaction, a Hub credential speaks for one device, and an invite bonus waits for real use (#465). The rest is the kind of thing a check finds: a reminder or a routine the runtime did not get to finish runs at the next start; the browser tool refuses local and private addresses as web_fetch always has; a streamed reply is retried only before its first word; restarting the desktop's Host asks first, as quitting does; a face drawn with your own key while signed out is worn rather than refused (#521); a remembered answer to an approval relayed from another device covers that step, not every step that starts the same way; hidden steps on the iPhone stay hidden after a reset (#548). Beside the check, @Mola-maker made forgetting a memory visible and undoable and gave the web console's settings a search (#533, #541) and fixed nine things on Android and the desktop; @jiangkaiqi2005 taught the Windows desktop to download its updates in the background and install them on quit (#458, #459, #460); @cutey-none's @ menu lists your other devices on the iPhone and a task sent to the desktop streams its text back (#506, #513, #515); @Battleplus added a fourth trigger kind and the data download (#487, #489); @Yicheng-1218 let each avatar mood carry a clip of your own (#427, #481); @isHeSatoshi put a search in the desktop's settings (#523); @hobostay kept a trimmed catalogue trimmed (#527, #530); @henrikdukefoss added Standard Compute ([#482](https://git

  5. v1.0.5nanoMuse 1.0.5 · Lookout2026-10-13 · 2026-10-13 18:10 UTC
    查看更新说明

    nanoMuse 1.0.5 · Lookout

    🐉 nanoMuse 1.0.5 “Lookout”: the day after Compass, a second look at the whole project together with the day's reports; the daily feed is written out of sight, the Android approval card fits the screen, the desktop's dead buttons work and a quit protects the work in progress, the Windows release can update itself, and the relay's console finds anything.

    1.0.4 went out on 2026-10-13. The same day we read nanoMuse through once more, this time with the reports and pull requests that arrived while Compass was being built, and nine passes again went over the relay, the Python runtime, the web console, the desktop, the Android and iPhone apps, the hosted showcase, the documentation and the workflows (#444 to #455). What they found fills this version. Some of it you will see at once: the chat the daily feed is written in no longer sits in your chat list on any device, and a routine's turn opens with its result; a long command no longer pushes the Android approval card's buttons off the screen (#436, reported by @HBSTAR0501); the ChatGPT sign-in on a phone with a proxy has a way through (#441, reported by @Kooooooo-G); the iPhone's conversation scrolls under the header, Siri understands the app's phrases in nine languages, and an emoji face set on the desktop shows on the phone (#435, reported by @Yousanflics); eight desktop buttons that quietly did nothing do their job again, and quitting the desktop asks before it ends a reply, a hands run or a task another device is waiting on. Others you will not see and should not have to: a disabled account cannot be told apart from any other through the sign-in routes, the proxy file on the desktop is the owner's alone, a hub socket that died under the desktop is noticed within a minute, and one address is one endpoint on the runtime. Beside the check, @jiangkaiqi2005 built the quit and the Windows update feed (#442, #443), @cutey-none brought DeepSeek Harness to the Python runtime (#433), and @Mola-maker's two Android fixes are in (#429, #431). Nothing moves for a person upgrading: the Android package installs over 1.0.4 and keeps everything, the desktop keeps its settings, and a 1.0.4 client works against the relay (0.26.0) unchanged.

    Highlights

    • The daily feed is written quietly, and a routine speaks first. On Android, the iPhone and the desktop the conversation the feed is written in no longer appears in the drawer, the chat list or search, and Write today's feed. no longer stands anywhere as a message in your voice; on Android, posts written while the app was in the background are announced by one notification that opens the Feed. The prompt a routine sends is shown as one quiet line, Routine · 〈label〉 · 08:00, and the agent is told the turn is the routine's, so it opens with the result rather than thanking you for asking (#437).
    • The Android approval card fits the screen, and the ChatGPT sign-in has a way through a proxy. A long command made the card taller than the screen, so Allow, Deny and the composer sat below the bottom edge and the chat looked frozen; the card now takes at most two thirds of the screen, a command longer than six lines is folded behind Show all, and the buttons stay in view (#436). The ChatGPT sign-in sends the browser back to localhost:1455, which a proxy or VPN app on the phone can swallow; after ten seconds wi

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    nanoMuse is an open-source personal agent for every device you own. One agent with a name and a look of its own, in the style of Meta's Muse: it does things instead of answering questions, keeps working while the app is closed, remembers you, and stops to ask before anything you could not undo.

    nano means the whole set, small enough to run and deploy yourself: the phone app, the desktop app, the web console and the relay that joins them are all in this repository, under GPL-3.0-or-later. Free, open source, non-profit. Let's build it together. Sign in and you get a free allowance of model use on the community relay (the developer pays for it); when it is gone, use your own key. The same relay runs on a server of yours, so nothing has to leave your house. Latest: 1.0.9 Tiller, release notes · try it in the browser.

    [!NOTE] nanoMuse keeps evolving

    A personal agent should not live only in someone else's cloud, so nanoMuse is the open-source, low-cost alternative: on your own devices, with a model you choose and a relay you can host yourself. We want to build it with developers and users everywhere, so that each person truly owns a personal agent. Open an issue or send a pull request; either one helps nanoMuse get better.

    https://github.com/user-attachments/assets/c7694d5a-9450-4f99-9254-5d70560d7565

    🗞️ News

    • 2026-10-21 ⭐ 2,000 stars on GitHub and first on GitHub Trending's Swift list (Trendshift: third on October 20, first on October 21), twenty-six days after the first release. Thank you for every try, every report and every pull request; we keep going, a version every few days, and the roadmap says what comes next.
    • 2026-10-13 ⭐ 1,000 stars on GitHub, eighteen days after the first release.
    • 2026-10-09 🚀 Version 1.0.0 Keel is out, for the phone, the desktop and the browser; it installs over the version before and keeps your data, and its release notes list every change.
    • 2026-10-08 🤗 Our paper is on Hugging Face Daily Papers, ranked third on the list for October 8; questions and comments are welcome on the paper page.
    • 2026-10-07 📄 Our paper is available on arXiv: nanoMuse: An Open-Source Personal Agent for Every Device You Own, by Guangyi Liu, Yong Liu and Jiangning Zhang (Zhejiang University); the citation is at the end of this page.
    • 2026-09-25 🎉 nanoMuse is released on GitHub under GPL-3.0-or-later: an Android app built on OpenMinis 1.13; the relay, the desktop app and the iPhone app came in the days after.

    Every version: releases.

    Install

    Browserdemo.nanomuse.dev: a nanoMuse on a simulated phone, after a sign-in. A demo; the apps below are the real thing
    Android 8.0+, arm64nanoMuse-1.0.9-arm64.apk: every version is signed with the same key and installs over the last
    iPhone / iPadTestFlight: a beta that passed Apple's beta review; the link installs it · iOS
    macOS 12+Apple Silicon · Intel. Not notarised: right-click → Open the first time
    Windows 10+nanoMuse-Desktop-1.0.9-win-x64.exe: click Run anyway once
    Linux x64AppImage · .deb · tar.gz
    Dockerbash scripts/self-host.sh --local for your own relay; docker compose up -d app for the web app on a server of yours; see self-hosting

    All downloads come from the latest release; the same files are on nanomuse.cn/dl when GitHub is slow where you are. Open the app, sign in with an e-mail or a mainland-China phone number, and it has a model to think with. The phone, the desktop and the web share one account and show the same conversations.

    What it does

    How it works

    Each device runs its own agent: the phone inside the APK (Alpine Linux under proot, a shell, a browser, MCP), the computer inside nanoMuse Desktop (DeepSeek Harness with the Python runtime for the hands). Signed in, they meet on the relay and can ask each other for things; the text of the conversations travels through it, files and screenshots stay where they were made.

    docs/every-device.md explains the devices, docs/hub.md the frames, docs/cloud.md the relay, docs/privacy.md what it keeps.

    Compared with Muse and OpenMinis

    Meta MuseOpenMinisnanoMuse
    Where the agent runsA cloud VM per userThe phone it is installed onYour phone, your computer, or a server of yours, one account across them
    Apps without an APIOut of reach; the VM never touches your devicesAn accessibility CLI on AndroidThe screen as a hand on the phone and the computer: screenshots, APIs first, you take over for logins. Not on iOS, where the system does not allow it
    Other devicesClients of one VMThe one it is installed onDevices ask each other for things over the hub, with approvals where you are
    ModelsMeta'sBring your ownThe relay's free allowance, or your own
    LicenceClosedGPL-3.0GPL-3.0-or-later, built on OpenMinis

    Docs

    nanomuse.cn/docs: install per platform, every device, hands, connectors, memory, self-hosting, the protocols. The sources are in docs/; what changed in each version is in the CHANGELOG and docs/releases/.

    Self-host

    One VPS, one hour: docs/self-hosting.md. Three ways: no server at all with your own key, your own relay with scripts/self-host.sh, or a runtime of your own for the web app.

    Contribute

    Use it for a real task, report what broke, then pick something focused: CONTRIBUTING.md has the setup and the conventions, AGENTS.md the rules a coding agent follows in this tree, and the roadmap says where to start. Issues · Discussions · Discord.

    Maintainers

    Community Contributors

    Everyone whose change has landed on main, from GitHub's contributors list.

    ⭐️ Citation

    If you find nanoMuse useful, please cite the paper.

    @misc{liu2026nanomuseopensourcepersonalagent,
          title={nanoMuse: An Open-Source Personal Agent for Every Device You Own}, 
          author={Guangyi Liu and Yong Liu and Jiangning Zhang},
          year={2026},
          eprint={2610.08699},
          archivePrefix={arXiv},
          primaryClass={cs.AI},
          url={https://arxiv.org/abs/2610.08699}, 
    }
    

    Acknowledgements

    nanoMuse stands on other people's work; THIRD_PARTY_NOTICES.md has the terms.

    Disclaimer

    nanoMuse is an independent community project, not affiliated with or endorsed by Meta Platforms, Inc.; Muse is their trademark. The dragon is the project's own.

    License

    GPL-3.0-or-later. The phone app is based on OpenMinis 1.13 (GPL-3.0), modified since 2026-09-24; see NOTICE. Earlier versions of the Python line were MIT (tag pre-openminis).