Skip to main content

An agent + CLI giving agents and robots non-TTS (non-speech) audio: express meaning through pleasant sonic signatures — chimes, flutes, pulses, and tonal motifs mapped to intent, confidence, urgency, state, and identity. Turns text/sentences into notes and audio (text-to-notes / text-to-audio).

Project description

harmonics-cli

harmonics-cli gives an agent or robot its own non-speech VOICE. It is the inverse of text-to-speech: instead of turning words into speech, it renders an agent's live meaning into short, pleasant sonic gestures — chimes, flutes, pulses, tonal motifs — that a listener recognizes by who is speaking and what they mean. It reproduces no words or phonemes; it maps meaning, not the sound of words (text-to-notes / text-to-audio).

A recognizable non-speech voice makes a headless agent or robot present and legible by ear: with no screen to read and no speech to synthesize or parse, you can tell who is working, who just succeeded, and who is stuck.

The design spine — intent → sound

Everything the domain renders resolves to five expressive axes:

Axis Example values Sonic mapping
intent ack, question, success, failure, thinking, handoff timbre / motif family (chime vs. flute vs. pulse)
confidence low → high consonance, pitch stability, resolved vs. suspended cadence
urgency calm → urgent tempo, attack sharpness, repetition
state idle, working, blocked, done sustained pad vs. discrete events
identity which agent signature motif / key / instrument per agent

Urgency is carried by tempo, attack, and repetition — never by dissonance or raw loudness — so the palette stays pleasant and non-fatiguing even at the urgent end, playing repeatedly next to a human without becoming an alarm.

Voice, not soundtrack

harmonics is a first-person utterance an agent emits as itself, live and in the moment, driven by its own axes. It is not a third-person spectator soundtrack. The contrast is league-of-agents' replay score, which narrates a match from the outside off an event log; harmonics is the inverse — the agent's own voice, not an ambient bed you tune out. And it is not TTS: no words, no phonemes, only meaning.

Status

Scaffold today: the agent-first CLI, mesh identity, skill kit, and CI baseline are in place; the audio domain is being built. The pure text→notes core is designed to stay dependency-free and offline-testable — tests assert on note sequences, not on a speaker. Coming text-to-notes verbs:

  • harmonics play --intent success --confidence high --urgency low — render explicit axes to a note sequence (dry-run by default; --play/--out produce sound or a file).
  • harmonics say "done, tests all green" — infer the axes from a sentence, then render.

What you get today

  • An agent-first CLI cited from teken (afi-cli) — the runtime package has no third-party dependencies.
  • A mesh identityculture.yaml (suffix + backend) and the matching resident prompt file (AGENTS.colleague.md, since this agent runs backend: colleague).
  • The canonical guildmaster skill kit (11 skills) under .claude/skills/, vendored cite-don't-import. See docs/skill-sources.md.
  • A build + deploy baseline — pytest, lint, the agent-first rubric gate, and PyPI Trusted Publishing wired into GitHub Actions.

Quickstart

uv sync
uv run pytest -n auto                 # run the test suite
uv run harmonics whoami      # identity from culture.yaml
uv run harmonics learn       # self-teaching prompt (add --json)
uv run teken cli doctor . --strict    # the agent-first rubric gate CI runs

CLI

Installed from PyPI as harmonics-cli (uv tool install harmonics-cli); the command you run is harmonics.

Verb What it does
whoami Report this agent's nick, version, backend, and model from culture.yaml.
learn Print a structured self-teaching prompt.
explain <path> Markdown docs for any noun/verb path.
overview Read-only descriptive snapshot of the agent.
doctor Check the agent-identity invariants (prompt-file-present, backend-consistency).
cli overview Describe the CLI surface itself.

Every command supports --json. Results go to stdout, errors/diagnostics to stderr (never mixed). Exit codes: 0 success, 1 user error, 2 environment error, 3+ reserved.

Contributing

See CLAUDE.md for the full conventions — the design-spine mapping, the offline-testable text→notes rule, dry-run-by-default for audio verbs, version-bump-every-PR, the cicd PR lane, and deploy setup.

License

Apache 2.0 — see LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

harmonics_cli-0.5.0.tar.gz (213.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

harmonics_cli-0.5.0-py3-none-any.whl (71.4 kB view details)

Uploaded Python 3

File details

Details for the file harmonics_cli-0.5.0.tar.gz.

File metadata

  • Download URL: harmonics_cli-0.5.0.tar.gz
  • Upload date:
  • Size: 213.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for harmonics_cli-0.5.0.tar.gz
Algorithm Hash digest
SHA256 776e3b1036aa589dfebf225397380ce1adc5fefcd971682ed1b247abec5d5a8d
MD5 a303548d021cb6c91e2da846fdc6d8e3
BLAKE2b-256 08aaebf5df41497f1e4f3dd58b8a80e29fc46c5352bbd08a7f0279a9a50af47a

See more details on using hashes here.

File details

Details for the file harmonics_cli-0.5.0-py3-none-any.whl.

File metadata

  • Download URL: harmonics_cli-0.5.0-py3-none-any.whl
  • Upload date:
  • Size: 71.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for harmonics_cli-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 45a609d6787b3d0bb545816cc26fe1b7e1bc79870ae509793d789094ef1433e8
MD5 93ed9e26c55af09b68f65b517c960b51
BLAKE2b-256 b204490cde50b27b88367ffc7a1a357f4618aae5d7fb0f6727204a2b8dad5ee4

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page