Muse does the work.
You keep the records.

A Muse connector for hardware you own. Your device reads the records, tags every name and decides what Muse gets back.

Status, Oct 29: the whole path runs on a laptop with invented data, and 1,740 tests pass. The Muse app paired with it on Oct 28.

Muse Privacy

A private workspace for Muse.
Your documents and models stay on your device.

git clone https://github.com/Offline-Base/muse-privacy
cd muse-privacy && uv sync && uv run python -m base

The models it uses

Muse

Plans the job in Meta's cloud and calls six tools on the device. It works only with tags and summaries.

Liquid LFM3-VL-2B on your device

Every model step runs on your laptop: finding names, reading who a request is for, search and summaries. Your own rules, not a model, decide what can be shared.

Muse Spark 1.3

Wrote the 2,000 invented practice items and graded the tagged essays a second time. Never used for user data.

Muse Glimmer 30B

Used for the earlier benchmarks below, on OpenRouter with invented data. It is not part of today's device-only setup.

How it works

Everything inside the dashed line happens on your own device. Muse only gets what passes your rules and the final check, as tags. Pick an example to watch one go through.

This device
Your documentsRead only on the device. They never leave.
Local modelLFM3-VL-2B today, or your own Muse Glimmer
TaggingNames and identifiers become tags like [Student A]
Your rulesYour policy, what you taught it, and toggles like FERPA or HIPAA
Final checkLooks again for anything private
YouAsk on this device: answers never leave
Kept hereStays on the device, with a reason
Your OKYou see the exact text first
Cloud
MuseGets tags only, through the relay

    Watch one request go through

    Tags, not names

    Exact checks swap every roster name, nickname and identifier for a tag before any model reads the text. Letters are shuffled on each device, so a tag says nothing about the name.

    One exit, five checks

    Every result passes the same steps: tag names and identifiers, a name pass, who it is for, the privacy router and a final leak check. If a check cannot run, the result stays on the device.

    You decide on the device

    When the router asks, a card waits on an approval page only your machine serves, and Muse hears "Waiting for your OK on the device." Never-share topics are kept without asking.

    Dreaming, every night

    The device rebuilds the router's rules from your approve and deny answers and keeps them only if they score no worse on a holdout set, with zero leaks.

    Every model on your device

    With device-only mode on, no model is reached off your laptop. If the local model is down, results wait on the device. Only tagged results go to Muse, and each one gets a receipt.

    Privacy toggles for regulated work

    Fifteen toggles in six groups: students and children (FERPA, COPPA, state laws), health (HIPAA, 42 CFR Part 2), money (GLBA, PCI DSS, tax preparer rules), work (attorney-client, employee records), privacy laws (GDPR, CCPA) and government (CUI, CJIS, ITAR and EAR). Each tags more, locks the settings that could undo it, and holds results it should. The government ones send nothing to Muse at all. A toggle doesn't make anyone legally covered: your school, clinic, agency or company still decides whether Muse may be used.

    The results in these demos come from the earlier Muse Glimmer runs. Every student, guardian and record here is invented, and the tags are the guard's real output on one laptop. The field trip form, the scores, the class summary and the job ids are examples. The search example replays that laptop's decision log from the Muse app session on Oct 28. Sequences are shortened throughout.

    Who it's for

    Built for work with a name in every file

    Muse can already reach your files through connectors, but whatever it reads lands in its cloud VM, names and all. That keeps it away from the private, tedious work most ready for automation: grading student papers, medical records, city agency casework.

    First

    Teachers

    Grading and feedback, the job this build automates, has a student's name in every file. Under FERPA's school-official exception, a school may give education records to an outside service without parent consent only if, among other conditions, the service is "under the direct control of the agency or institution with respect to the use and maintenance of education records."

    US Department of Education, FERPA FAQ

    Here the essays stay on the teacher's laptop, and the feedback files with real names are written only there.

    Same pattern

    Clinics and city casework

    Anywhere records have to stay with whoever holds them: a clinic's charts, a caseworker's files. Muse plans with tags, and the device does the reading.

    What never leaves is set in one policy file of topics and rules. In the classroom policy, health details, home addresses and parent contacts never leave.

    Laptop today

    Hardware you own

    It installs on a laptop today. A Jetson Orin Nano box is the version a school could own outright, with a status light for working, waiting for your OK and sending to Muse.

    The Jetson path is designed and tested in simulation, not run on a board yet. Built solo by Ethan, who builds AI tools with school districts.

    What the tests show

    All reports

    Today's setup runs every model on the laptop, and the first two numbers measure it on invented students. The rest are earlier measurements with Muse Glimmer on OpenRouter, which is not part of today's setup.

    Two charts. Approval requests per simulated day fall from 10 to 9, 7, 6 and 6, with the 5 requests the teacher wanted every day. Agreement with the teacher on holdout items goes 75, 85, 90, 85, 85 and 90 percent over nights 0 to 5. Leaks are 0 everywhere.
    Five nights of dreaming A simulated teacher answers each request, and each night the device rebuilds its rules from her answers. Requests she didn't need fell from 5 a day to 1, and agreement on the holdout rose from 75% to 90%. The gate selects on the holdout, so its 90% is an upper bound; the unseen test's 72% to 81% is the more honest number. The leak line counts names and identifiers, not policy misses.

    What is not done yet

    Device numbers are new

    The laptop numbers are from one day of invented data, with no real class and no outside review. Grading and nightly learning have not been measured on the local model, and nothing has run on a Jetson in this setup.

    The Muse app is only partly tried

    On Oct 28 it paired, listed the six tools, listed the workspace and ran a search through the relay. Grading, approvals and the scheduled jobs have run only with a script playing Muse.

    Tagging can miss things

    The roster can't know siblings, guardians or staff, so the device also uses a name-shape check and the local model. A name written in lower case and missed by the model is not caught.

    Muse sees what you type

    Whatever you type into Muse reaches Meta before the device sees it. Meta's training setting is on by default, so the setup page asks you to turn it off, and Prepare a question tags your question first.

    The router is strict on a first day

    It asked about 21 of 25 results the simulated teacher would have shared tagged.

    Dreaming can learn too broad a rule

    On the unseen test it stopped asking about 8 of 25 items she wanted to see first. They went out tagged, so they are not leaks, but they are policy misses.

    The learning numbers are simulated

    The teacher is a policy file, and the rules are chosen on the holdout, so its 90% is an upper bound.

    Get started

    Run it on your laptop

    Laptop

    Needs llama.cpp and the LFM3-VL-2B model on your laptop. One command starts everything, and a setup page does the rest.

    git clone https://github.com/Offline-Base/muse-privacy
    cd muse-privacy && uv sync
    cp .env.example .env  # set DEVICE_ONLY=1
    uv run pytest -q
    scripts/start.sh

    Add it to Muse

    1. Deploy the relay once from relay/ with its deploy script.
    2. Register the laptop with the relay and keep the relay client running.
    3. Ask Muse in chat to create a custom connector for the relay's /mcp address, with OAuth.
    4. Type the pairing code the laptop prints on the relay's Link your device page.

    Full steps in docs/MUSE_SETUP.md

    Jetson Orin Nano

    Designed and tested in simulation, not run on a board yet. The installer builds llama.cpp, fetches an about 1.6-bit (IQ1_S) Muse Glimmer and sets up three services.

    sudo deploy/jetson/install.sh --build-llama
    sudo systemctl start \
      muse-privacy-glimmer muse-privacy

    deploy/jetson/README.md