尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证正在加载完整 README。 以下为已保存的摘录。
A band of hand-drawn animals that improvise music together. Pick the players, hand them instruments, choose a style (or a standard), and press play. Every movement on stage follows the notes actually being played.查看完整 README ↗A band of hand-drawn animals that improvise music together. Pick the players, hand them instruments, choose a style (or a standard), and press play. Every movement on stage follows the notes actually being played.
Live: https://jamming.wustep.me
Bruno (bear), Lily (frog), Hoot (owl), Rusty (fox), Mochi (cat), Clover (rabbit), Tuck (elephant), Pip (penguin), Olive (sheep), Rocco (raccoon) and Fern (deer). Each has a default instrument, and any of them can play any of the 14 instruments. Rocco plays a drawbar organ with a rotating speaker; Fern holds the harmony on a string machine. Olive the cellist plays countermelodies, bowed pads, and pizzicato comping. She takes over the bass line only when the band has no bassist.
pnpm install
pnpm dev # http://localhost:3000 (/art-lab, /sheet-lab, /audio-lab are test benches)
pnpm test
In development, the key mock (in either key field) answers with a canned band so you can try the model flows offline.
The band can think through the Vercel AI Gateway (every model in the pickers) or straight to Anthropic (Claude models only, via @ai-sdk/anthropic). Keys come from two places:
localStorage, sent with each model request to /api/llm (over HTTPS when deployed), used for that call and dropped. The server never logs or stores it. clear next to a field removes it from the browser..env.local (see .env.example). Anyone who can reach the server then spends these keys, so leave them unset on a public deployment.
IMPROV_TROOP_SERVER_KEY: a Vercel AI Gateway key.ANTHROPIC_API_KEY: an Anthropic key, for Claude models.For each call, the first of these that applies is used:
IMPROV_TROOP_SERVER_KEY, for any modelANTHROPIC_API_KEY, for a Claude modelSo a visitor's own key always beats one the server lends, and at the same level the gateway beats a direct Anthropic key. With only Anthropic keys, GPT and Gemini models are greyed out in the pickers, and a run that still names one stops before calling anything, with a message saying to pick a Claude model. A rejected key is reported as the visitor's or the server's, by provider. The route never falls back to ambient credentials such as Vercel OIDC.
What a jam costs. Measured on Anthropic directly with Claude Haiku 4.5 for every part: a 16-bar Improviser take is about 23 calls and 50,000 tokens, roughly $0.06–0.08 at list price; a Composer take is about 7 calls and $0.03. A Sonnet 5.5 leader adds its count-off (or the plan, in Composer) at twice Haiku's price. The debug panel (“peek under the hood”) shows each run's tokens and an estimate at list price.
pnpm eval:gateway plays the composer and improviser on real models through the same route and scores each take with the app's own validators (repairs by kind, realize issues, structured-output rate, how many accompanying bars came in short or long, tokens, cost at list price). It uses the server keys above (IMPROV_TROOP_SERVER_KEY, or ANTHROPIC_API_KEY for Claude models) and spends credits, so it isn't part of pnpm test.
EVAL_MODELS=google/gemini-3.8-flash,anthropic/claude-haiku-4.5 \
EVAL_STYLES=swing,funk EVAL_MODES=composer EVAL_OUT=/tmp/takes pnpm eval:gateway
# also: EVAL_DIRECTOR (a separate director model), EVAL_STANDARD, EVAL_BARS, EVAL_SEEDS=11,12 (one take per seed)