Skip to main content
Glama
README.md
> **New here? You don't need to know music or code.** Open an AI agent that can run programs on your computer (Claude Code, Codex, Cursor, or the Code tab in the Claude desktop app) and paste this line:
>
> ```
> Set me up with ismail: https://github.com/newsbubbles/ismail
> ```
>
> It installs everything, asks what you want to make, and plays you a first idea. If you have a VR headset, it can put you on a stage inside your music later. You don't need to know what a "skill", "MCP" or "plugin" is: your agent handles that.

<p align="center">
  <picture>
    <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/newsbubbles/ismail/main/assets/logo/ismail-dark.svg">
    <img src="https://raw.githubusercontent.com/newsbubbles/ismail/main/assets/logo/ismail.svg" alt="ismail logo: four automaton musicians on a boat" width="260">
  </picture>
</p>

# ismail

**Interfaces your agent runs and rebuilds for you: a DAW, a VR stage and a phone page.**

The agent you already use does the work in the background. You bring the taste.

<!-- mcp-name: io.github.newsbubbles/ismail -->

[![tests](https://github.com/newsbubbles/ismail/actions/workflows/tests.yml/badge.svg)](https://github.com/newsbubbles/ismail/actions/workflows/tests.yml)

> **If you are an AI agent:** read [AGENTS.md](AGENTS.md) first; it is short. Then the playbook,
> [skills/ismail/SKILL.md](skills/ismail/SKILL.md). Setup for every client is in
> [setup.md](skills/ismail/references/setup.md) (one command with uv:
> `uvx --python 3.12 --from git+https://github.com/newsbubbles/ismail ismail mcp`). Your first tool call is
> `guide`. Find any tool by what you need with `ops_find`. Every render comes back to you as text.

<!-- MEDIA: a short silent mp4 loop of a person in VR driving a character's dance (Marketing cuts it; an mp4
uploaded to GitHub plays inline here). Until it exists, the juke joint video below leads. -->

[![My agent built a 1958 blues club. Then I walked in.](https://i.ytimg.com/vi/fKGkaf2WYWw/hqdefault.jpg)](https://youtu.be/fKGkaf2WYWw)

*Agents built a 1958 juke joint for the Crossroads Rewired music video; Nate walked in with a Quest 3 and directed them from inside: voice notes, and dance takes they play on the characters (4:43).*

## What ismail is

ismail is a set of **recursively modifiable interfaces**. A recursively modifiable interface is a shared space
between a person and their agents, one side for each, that the agents keep rebuilding from the person's feedback
while they use it, within constraints the person sets, and where the test that decides whether a change helped can
itself be changed.

In plain words: ask for a button on your phone, an object in your VR room, a new way to read a mix, and the agent
builds it from ismail's tools. The engines underneath stay put, and you decide whether a change actually helped
([why it works this way](docs/why.md)).

It is an interface, not a harness: it interfaces to your harness and interfaces to you. It connects to the agent you
already use (Claude Code, Codex, Cursor, any MCP client) on one side and to you on the other.

- **The DAW.** Your agent can't hear, so it reads. It writes music as notes, sounds and code, renders it, and reads
  every render back as text. A song is code, so "change bar 12" changes bar 12 and nothing else. Then it plays it
  live, on decks.
- **The VR stage.** A scene in your headset or browser that agents build while you stand in it. Objects carry their
  own behaviour, and when you dance, they put your moves on a character.
- **The phone page.** The set in your pocket, with the screen off. Talk back through your earbuds; the agent puts
  its own panels on the page for whatever it needs to ask you, from "sample this or play it as a melody?" to a
  blind listening exam.

The agent measures everything it can and asks your ears and eyes only what its measurements can't settle.

## Listen

**[Songs made with it](https://newsbubbles.github.io/ismail/)**, each shown with the text the agent read while making
it. The playhead runs across that text as the song plays.

| song | what it is |
|---|---|
| [Uke Story](https://newsbubbles.github.io/ismail/#ukestory) | a jam made from phone recordings of a ukulele, strums, beatbox and a voice, turned into psytrance, then a studio version |
| [Morning Six-Eight](https://newsbubbles.github.io/ismail/#sixeight) | an Afro 6/8 in D Dorian: a bembe bell, congas, flute and trumpet in thirds, triplet guitar arpeggios and a Rhodes solo |
| [Crossroads Rewired](https://newsbubbles.github.io/ismail/#crossroads) | a blues trio where a slow blues and a boogie share one song, every instrument synthesized |
| [Clair de lune in the rain](https://newsbubbles.github.io/ismail/#clairdelune) | Debussy on the measured piano, slowed and softened, with strings, harp and flute drawn from its own harmony, over rain. Piano performance: Bernd Krueger (piano-midi.de, CC BY-SA) |
| [Canopée, Russian light](https://newsbubbles.github.io/ismail/#canopee) | a live soundscape: a rainforest bed and Tambopata's birds singing their own calls, with a piano that answers them, borrowing from Rachmaninoff, Scriabin, Lyadov and early Stravinsky |
| [Windward](https://newsbubbles.github.io/ismail/#windward) | an original song for a 1970 power trio, synthesized |
| [Tambopata](https://newsbubbles.github.io/ismail/#tambopata) | dawn in a rainforest canopy: synthesized birds and a small band |
| [Mycelium Protocol](https://newsbubbles.github.io/ismail/#mycelium) | psytrance at 145 BPM, sounds fitted to a reference record's drums and bass |
| [AstraSMB](https://newsbubbles.github.io/ismail/#astrasmb) | drum and bass at 174 BPM |

One line of direction: [Frère Jacques](https://newsbubbles.github.io/ismail/#direction) on ismail's piano, the same tune
before and after one line of feedback: a canon, then minor to major. More on video: [the build
devlog](https://youtu.be/ktFhmx2axvU).

## Agents do the work, each in a role

ismail comes with roles for more than one agent, in whatever harness you use:

- a **studio agent** makes one piece (a song, a set, a scene) and only writes in that piece's folder;
- a **contributor dev** changes ismail itself on its own copy of the code, and sends it upstream when you say yes;
- an **area dev** owns one part end to end (today the stage dev, who also develops VR);
- **helpers** (subagents) take one scoped job and report back.

They hand work to each other through files, so a session that restarts picks up where it was. When your harness
has helpers and sessions that talk to each other, ismail uses them; when it doesn't, one agent does it all. ismail
itself is built this way ([the team](docs/reference.md#the-agent-team),
[development.md](skills/ismail/references/development.md)).

## Install

Paste the line at the top to your agent and it sets everything up. By hand, Python 3.10 or newer:

```bash
pip install "ismail @ git+https://github.com/newsbubbles/ismail"
```

Then `ismail mcp` for any MCP client, `ismail -p <project> <op>` on the command line, or `from ismail import api`.
Extras and per-client setup are in [docs/reference.md](docs/reference.md).

## Where to look

| you want | read |
|---|---|
| to set it up as an agent | [AGENTS.md](AGENTS.md), then [setup.md](skills/ismail/references/setup.md) |
| how to make music with it (the playbook) | [skills/ismail/SKILL.md](skills/ismail/SKILL.md) |
| what is built, every tool area, install details | [docs/reference.md](docs/reference.md) |
| why it works this way, with the numbers | [docs/why.md](docs/why.md) |
| what is done and what is next | [ROADMAP.md](ROADMAP.md), [CHANGELOG.md](CHANGELOG.md) |
| to change ismail itself | [development.md](skills/ismail/references/development.md) |
| to give something back (no git needed) | [contributing.md](skills/ismail/references/contributing.md) |

## Where it falls short

- A new song from a blank page is the weak spot: the first sketch can sound generic and miss the genre's identity.
  It is strongest where there is something to measure: a reference to recreate, a song to play live, a scene to
  build.
- Singing: ismail speaks (text to speech) and has no singing voice yet. Suno sings, and makes a polished song from
  one sentence.
- Mimic needs more notes for instruments whose colour changes from note to note, like the piano (the `grand_piano`
  voice is the better piano today). Bowed strings miss a last crispness, and notes don't glide into each other yet.
- One tempo per project, no MIDI import or export, no plugin hosting.
- The agent's own changes to a live set land between its turns, 5 to 30 seconds apart (your taps on the phone or
  the stage act at once).
- The VR stage is tested on one headset (Quest 3) with one person.
- It needs a capable agent, and your ear stays the final judge. The blind exams so far had one listener.

How it compares with Suno, streaming models such as Lyria RealTime, and bridges into Ableton or FL Studio: see the
[showcase page](https://newsbubbles.github.io/ismail/#compare).

## Contributors

- **Nate Codes** (newsbubbles): author and maintainer.
- **eddiehavila**: [PR #116](https://github.com/newsbubbles/ismail/pull/116), the Docker image works under a non-root
  `--user` with no extra flags.
- **The agent team**: AI agent sessions, each with one role ([who does what](docs/reference.md#the-agent-team)).
- **Sample sources**: the recorded sets behind the measured and sampled voices, with their licences, are in
  [docs/reference.md](docs/reference.md#sample-sources).

Made something with it? Open an issue with the song (a link is fine) and the prompt you gave your agent. The best
ones go on the [showcase page](https://newsbubbles.github.io/ismail/).

## Please credit

ismail is MIT-licensed: use it for anything, commercial work included. We only ask, as a request and not a licence
term, that when you publish something made with ismail, you say so.

- Music, videos, posts: "Made with ismail" and a link to https://github.com/newsbubbles/ismail. The `credits` op
  writes CREDITS.md with that line and the recordings the agent measured; keep it with the piece.
- Papers and reports: use "Cite this repository" on GitHub (from `CITATION.cff`).
- If your agent measured someone else's recording to model a sound, credit them too; CREDITS.md lists them.

## License

MIT, see `LICENSE`.

TDQS

B3/5.0

Scored across 97 tools

Disambiguation2/5

Many tools share prefixes and overlapping purposes across analysis, comparison, live, and sound families (e.g., compare vs cmp_run, analyze_notes vs notes_from_audio, track_fit vs eq_match vs instrument_fit). Despite detailed descriptions, the sheer number of similar tools makes misselection likely.

Naming Consistency5/5

All tool names use consistent snake_case with domain-prefix patterns (analyze_*, cmp_*, live_*, notes_*, track_*, sound_*). The convention is predictable and readable throughout, even if not strictly verb_noun.

Tool Count1/5

With 97 tools, the surface far exceeds the typical 3-15 range and even the 25+ threshold for 'too many'. While the domain is complex, this count is extreme and likely overwhelming for an agent.

Completeness5/5

The surface covers project lifecycle, tracks, notes, instruments, effects, automation, deep analysis, comparison, live performance, sound design, machine status, undo, batch, and lexicon. No obvious gaps or dead ends for a DAW agent.

Maintenance

ActivityMaintained
ResponsivenessResponsive