Skip to content
dawg
Install
Theme
Appearance

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:

Terminal
$ curl -fsSL https://dawg.sh/install | sh

Each release also ships the tarball on its own, so bun add -g with the tarball’s URL works too. To run from source instead:

Terminal
$ git clone https://github.com/hraness/dawg.git
$ cd dawg
$ bun install --frozen-lockfile
$ bun run dawg

dawg 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:

Terminal
$ dawg

dawg 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.

dawg prompt
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.2

Press 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:

dawg prompt
dusty minor groove at 96, drums and a bass line

Each 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

Terminal
$ dawg render out.wav

This writes the current session without starting audio. The same score always produces the same bytes; the command prints the size and sha256.