preview phase

Beatly brings a live soundtrack to coding agents.

This homepage is intentionally minimal for now: a quick intro, a demo placeholder, and practical setup instructions so you can wire Beatly into your local workflows today.

browser demo (placeholder)

🎧 Interactive real-time demo coming soon.

Planned controls: start/stop, mood presets, intensity slider, and agent event triggers.

install Beatly in your local coding agent

Prefer npm install. Then run a tiny local bridge script that translates your agent events into Beatly signals.

1) install from npm

npm i @beatly/core

If you are testing before publish in your own workspace, use a local path temporarily: npm i ../beatly.

2) create a tiny local bridge

This bridge receives simple JSON events and forwards them to Beatly.

import { BeatlyEngine } from "@beatly/core";
import { ConsoleAdapter } from "@beatly/core/adapters";
import { createBeatlySkill } from "@beatly/core/skill";

const engine = new BeatlyEngine({ adapters: [new ConsoleAdapter()] });
const skill = createBeatlySkill(engine);

await skill.start({ agentId: "local-agent" });
await skill.handleEvent({ type: "task.started" });
await skill.handleEvent({ type: "task.completed" });
await skill.stop("done");

3) wire your favorite agent

Claude Code

Use a small shell wrapper or hook script around your local Claude Code runs. Emit events like task.started, task.blocked, and task.completed to your Beatly bridge process.

Codex

Same pattern: wrap Codex CLI/tool execution, send lightweight lifecycle events, and let Beatly derive mood/intensity from those signals.

Pi

Start with a sidecar event bridge today. Later, move to a native Pi integration skill/extension once your Beatly package API is fully stabilized.

4) supported event types today

task.started
task.blocked
task.completed
agent.idle

These map to Beatly signals internally and drive real-time mood/intensity updates.