№ 0827GitHub
aonia
Named profiles for the Muse Code CLI: keep several logins on one machine, run two at once and let each project pick its profile. Published on npm and tested against Muse Code 1.3.0.
# aonia
Named profiles for the Muse Code CLI. Keep more than one login on one machine, run two of them
at the same time, and let a project choose which one it uses.
> **Status: 0.1.0.** The library and CLI below work on macOS, Linux and Windows against Muse Code 1.3.0.
> Design and the evidence behind it: [`docs/SPEC.md`](docs/SPEC.md), [`docs/CONTEXT-2026-09-21.md`](docs/CONTEXT-2026-09-21.md).
> On npm as [`@harjjotsinghh/aonia`](https://www.npmjs.com/package/@harjjotsinghh/aonia); the command is still `aonia`.
Aonia is the district around Mount Helicon, and "Aonian" was the classical epithet for the Muses.
It is a sibling to [Helicon](https://github.com/HarjjotSinghh/helicon), which will consume this as a library.
## What it does
Muse Code has one login per machine. `muse login` writes to `~/.config/muse/auth.json`, and every
`muse` process on that machine uses it — there is no `--account` and no profile flag. So work and
personal, or a client credential and your own, or two subscriptions, all mean logging out and back
in, with a browser round trip each time.
`aonia` gives each account its own config and data root, and starts `muse` pointed at one of them:
```bash
npm install -g @harjjotsinghh/aonia
aonia add work --name "Work" # create a profile (its id is the directory name)
aonia login work # runs `muse login` inside it; Muse's own browser flow, unchanged
aonia list # ids, names, emails, login state, last used
aonia run work # `muse`, under that profile
aonia run work -- serve # anything `muse` takes, under that profile
aonia bind ~/code/client work # a directory (and everything under it) selects its own profile
aonia env work # print the variables, if you would rather write your own shim
aonia doctor # inherited META_API_KEY, missing muse, profiles without a login, disk use
aonia rm work # asks first; `--yes` skips the question
```
`aonia add work --seed-from-default` copies your `settings.json` and `trust.json` from the default
Muse config root into the new profile so it starts with your model, effort and trusted folders.
It never copies `auth.json`.
From code:
```ts
import { createAonia } from "@harjjotsinghh/aonia";
const aonia = createAonia(); // or { home, mus


ChatForm
Tgmlabs