Docs
Quickstart
Install dawg, open a session, make a loop and hear it.
Install
dawg needs Bun 1.3.14 or newer. The install script adds Bun if it is missing, downloads the latest release tarball from GitHub, verifies it against SHA256SUMS and runs bun add -g:
$ curl -fsSL https://dawg.sh/install | shEach release also ships the tarball on its own, so bun add -g with the tarball’s URL works too. To run from source instead:
$ git clone https://github.com/hraness/dawg.git
$ cd dawg
$ bun install --frozen-lockfile
$ bun run dawgdawg is also on npm: npm i -g @hraness/dawg or bun add -g @hraness/dawg. For sound, install ffplay (FFmpeg) or SoX; macOS falls back to afplay.
Make a loop
Open a terminal in any project folder and run:
$ dawgdawg creates .dawg/session there and reuses it every time you come back. Type commands at the prompt; each one is an edit you can undo with Ctrl-Z.
tempo 96
/track drums
pattern kick 0 2.5 4 6.5
pattern snare 1 3 5 7
pattern hat every 0.5
/track bass
instrument bass
add A2 at 0 for 0.75
reverb 0.2Press Space on an empty prompt to play. The highway scrolls the notes toward the hit line; the header shows the track, session, tempo, revision and sync state.
Ask the agent
Anything that isn’t a command goes to the agent once a provider is set up. Run dawg login once (see Login and providers), then just say what you want:
dusty minor groove at 96, drums and a bass lineEach accepted tool call shows up as a card in the activity strip with its revision, and Ctrl-Z undoes exactly that change. Esc stops the turn and keeps what was already accepted.
Open more windows
Run dawg again in another terminal in the same folder. The new window joins the same session and takes the next track nobody else has, so each window can play a different instrument while one transport keeps them in time. See Sessions.
Render a WAV
$ dawg render out.wavThis writes the current session without starting audio. The same score always produces the same bytes; the command prints the size and sha256.