# muse4ai (andrew-babo/muse4ai)

> It lets your AI agent generate pictures and videos through your own Muse account. It runs as a local Windows app and exposes REST, MCP and OAuth endpoints for agents to call.

- GitHub: https://github.com/andrew-babo/muse4ai
- GitHub.Locker page: https://github.locker/andrew-babo/muse4ai
- Stars: 487
- Language: TypeScript
- License: MIT
- Last push: 2026-11-04

## Questions and answers

Written by GitHub.Locker from the README and the repository; check the README below for details.

**Is it a standalone app or a library I import into code?**

It is a standalone Windows desktop app. It runs on your own PC and serves its API while it is open, so agents connect to it over the network instead of you importing it into a project.

**How do I get it running?**

Download the installer from the download page, run it, then add your Muse account in Accounts. Windows will warn that the file is unsigned, so choose More info, then Run anyway.

**Do I need anything else first?**

You need a Muse account. If you run from source instead of using the installer, you also need Node.js 22 or newer.

**Are there risks I should know about?**

It automates your Muse web session, so it can break when the site changes and may not fit Meta's terms of service. The project is unofficial and not affiliated with Meta, so read the terms before relying on it.

**Does it work on macOS or Linux?**

Not yet. It is Windows first, and macOS and Linux builds are not packaged or tested. The core code does not depend on Windows, so porting is on the roadmap.

**Where do my results and keys end up?**

Nothing is relayed through a server run by the authors. Results, keys and tokens stay on your PC in %APPDATA%\MuseStudio.

**Can the agent keep a conversation going?**

Yes. A chat request returns a conversation id, so the agent can continue the same thread and attach files to it.

**Do I have to paste an API key?**

No. You can paste a key once, and keys are scoped and individually revocable. Or you can connect through OAuth, approving with a 6-digit code shown in the app.


---

## README (checked against GitHub 2026-11-05)

Source: https://github.com/andrew-babo/muse4ai/blob/main/README.md

<div align="center">

<img src="docs/hero.png" alt="Muse4AI — AI agent bridge, works with Muse" width="100%" />

# Muse4AI

**Let your AI agent make the pictures and the videos.**

Muse4AI runs on your own Windows PC and hands your Muse session to ChatGPT, Claude,
Cursor, Codex, n8n or anything else that speaks **REST**, **MCP** or **OAuth** —
with no cloud middleman and no per-seat fee.

[**Website**](https://muse4ai.andrewbabo.com) ·
[**Download**](https://muse4ai.andrewbabo.com/download) ·
[**Guide**](https://muse4ai.andrewbabo.com/docs) ·
[**For agents**](https://muse4ai.andrewbabo.com/agents) ·
[Tiếng Việt](docs/README-vi.md)

![Website muse4ai.andrewbabo.com](https://img.shields.io/badge/website-muse4ai.andrewbabo.com-1A50D7?style=flat-square)
![MIT licensed](https://img.shields.io/badge/license-MIT-2D664D?style=flat-square)
![Windows](https://img.shields.io/badge/Windows-10%20%2F%2011-1A50D7?style=flat-square)
![Node.js 22+](https://img.shields.io/badge/Node.js-22%2B-5F5A52?style=flat-square)
![740 tests](https://img.shields.io/badge/tests-740-2D664D?style=flat-square)
![v2.0.0-beta.32](https://img.shields.io/badge/version-2.0.0--beta.32-B4762B?style=flat-square)

</div>

---

## How it fits together

```text
   ChatGPT · Claude · Cursor · Codex · n8n · your own script
                       │
                       │  REST  ·  MCP  ·  OAuth
                       ▼
              ┌─────────────────────┐
              │   Muse4AI on your PC│   local library, queue,
              │   (Windows app)     │   keys, tokens, history
              └─────────────────────┘
                       │
                       │  your own signed-in Muse session
                       ▼
                     Muse
```

Nothing is relayed through a server we run. The app talks to Muse from your machine,
with your session, and keeps every result, key and token in
`%APPDATA%\MuseStudio` on that same machine.

## What you can ask an agent to do

<table>
  <tr>
    <td width="50%">
      <h3>🎬 Generate video &amp; images</h3>
      One call, text-only or with reference photos. Repeat a prompt, pick the account,
      watch it appear in the in-app queue.
    </td>
    <td width="50%">
      <h3>💬 Chat that remembers</h3>
      Ask questions or iterate on an idea. The conversation id comes back, so the
      agent can keep the thread going and attach files.
    </td>
  </tr>
  <tr>
    <td>
      <h3>⏱ Extend a finished video</h3>
      Keep a clip rolling, up to <b>6 steps</b> and about <b>60 seconds</b> per chain,
      in the same conversation it was born in.
    </td>
    <td>
      <h3>🛠 Edit a video by describing it</h3>
      Attach an MP4 and say what to change in words — no timeline, no rendering settings.
    </td>
  </tr>
  <tr>
    <td>
      <h3>🔑 Two ways to connect</h3>
      An <b>API key</b> you paste once, or real <b>OAuth</b>: the agent asks, and you
      approve with the 6-digit code the app shows on screen.
    </td>
    <td>
      <h3>📚 Built-in guide</h3>
      Every screen has a bilingual guide (English / Vietnamese) with real screenshots,
      plus a Skill your agent can read.
    </td>
  </tr>
</table>

## See it in action

<table>
  <tr>
    <td width="50%"><img src="docs/screens/studio.png" alt="Studio with a prompt ready to run" width="100%" /></td>
    <td width="50%"><img src="docs/screens/queue.png" alt="Queue with image and video jobs running" width="100%" /></td>
  </tr>
  <tr>
    <td align="center"><b>Studio</b> — write the prompt, attach references, run.</td>
    <td align="center"><b>Queue</b> — live status, thumbnails, quick preview.</td>
  </tr>
  <tr>
    <td><img src="docs/screens/library.png" alt="Library grid of generated images and videos" width="100%" /></td>
    <td><img src="docs/screens/agents.png" alt="Settings screen showing how to connect an agent" width="100%" /></td>
  </tr>
  <tr>
    <td align="center"><b>Library</b> — everything you made, searchable.</td>
    <td align="center"><b>API &amp; agent</b> — connect an agent in one paste.</td>
  </tr>
</table>

## Quick start

### 1. Install (easiest)

Grab the installer from the
[download page](https://muse4ai.andrewbabo.com/download), run it, then add your Muse
account in **Accounts**. Windows will warn that the file is unsigned — choose
**More info → Run anyway**.

### 2. Run from source

Needs **Node.js 22+**.

```bash
cd desktop
npm install
npm run build
npm start
```

The app opens on your desktop and serves its API on `http://127.0.0.1:47821`.

## Connect an agent

Open **Settings → API & agent** in the app. It shows a ready-made snippet with your
key already filled in — paste it into your agent's config.

### OAuth (no key to copy)

The app is a real OAuth authorization server: it publishes
`/.well-known/oauth-authorization-server`, registers clients dynamically and signs its
own tokens. Point the agent at the MCP endpoint and let it redirect:

```json
{
  "mcpServers": {
    "muse4ai": { "url": "http://127.0.0.1:47821/mcp" }
  }
}
```

The app then shows a **6-digit code**. Type it into the consent page and the token is
issued. Anyone who only knows the link cannot grant themselves access. Revoke any app
later under **Settings → API & agent → Connected apps**.

### API key

Create a key in the same screen (`msk_…`), then send it as a bearer token:

```bash
curl -X POST http://127.0.0.1:47821/v1/jobs \
  -H "Authorization: Bearer msk_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"kind":"video","prompt":"a coffee cup on an oak desk, warm morning light"}'
```

Keys are scoped, rate-limited and individually revocable.

### What the agent gets

| REST | MCP tool |
| --- | --- |
| `POST /v1/jobs` — image / video | `muse_generate` |
| `POST /v1/jobs` with `kind:"chat"` | `muse_chat` |
| `GET /v1/jobs` · `GET /v1/jobs/{id}` | `muse_list_jobs` · `muse_get_job` |
| `POST /v1/jobs/{id}/cancel` | `muse_cancel_job` |
| `POST /v1/assets/{id}/extend` · `POST /v1/conversations/{id}/extend` | `muse_extend_video` · `muse_get_extend` |
| `GET /v1/status` · `GET /v1/health` | `muse_status` |

Full machine-readable contract: `GET /v1/openapi.json`.
For agents that prefer Markdown: [llms.txt](https://muse4ai.andrewbabo.com/llms.txt).

## Project layout

| Path | What lives there |
| --- | --- |
| `desktop/` | The app itself — main process, renderer, REST/MCP/OAuth API, tests, installer |
| `content/` | Guide, agent and use-case text shared by the app and the website |
| `agent-kit/` | The Muse4AI Skill, so an agent can learn the tool on its own |

## Development

```bash
cd desktop
npm test            # 740 tests
npm run typecheck   # strict TypeScript
npm run package:win # Windows ZIP + installer inputs
```

## Honest notes

- **Unofficial.** Muse4AI is an independent project. It is **not affiliated with,
  endorsed or sponsored by Meta Platforms, Inc.** "Meta" and "Muse" are trademarks of
  their owners.
- **You own the risk.** The app automates *your* Muse session. Automating a web app can
  break when the site changes, and may not fit Meta's terms of service — read them
  before you rely on it.
- **Windows first.** macOS and Linux builds are not packaged or tested yet; the core
  code does not depend on Windows, so porting is on the roadmap.
- **No cloud account.** There is no sign-up, no telemetry server and no subscription.

## License

[MIT](LICENSE) © 2026 Andrew Babo. Third-party notices: `desktop/LICENSES/`.

Questions or ideas: [the website](https://muse4ai.andrewbabo.com) ·
[guide](https://muse4ai.andrewbabo.com/docs) ·
[changelog](https://muse4ai.andrewbabo.com/changelog).

