microphone-cli
Agent-first CLI for USB microphones and microphone arrays: enumerate devices, select and inspect channels, control gain and sample format, and read direction-of-arrival from array firmware.
Status: scaffold. The identity, CI, and agent-first CLI baseline are in place; the microphone domain verbs are not implemented yet. What ships today is the introspection surface below.
What you get
- An agent-first CLI cited from teken
(
afi-cli) — the runtime package has no third-party dependencies. - A mesh identity —
culture.yaml(suffix+backend) and the matching resident prompt file (AGENTS.colleague.md, since this agent runsbackend: colleague). - The canonical guildmaster skill kit under
.claude/skills/, vendored cite-don't-import. Seedocs/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 microphone whoami # identity from culture.yaml
uv run microphone learn # self-teaching prompt (add --json)
uv run teken cli doctor . --strict # the agent-first rubric gate CI runs
The installed console script is microphone. Argparse still prints
microphone-cli as the program name in --help output; the runnable command is
microphone.
CLI
| 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.
Development
uv run pytest tests/test_cli.py # a single file
uv run pytest -k whoami # a single test
uv run black --check microphone_cli tests
uv run isort --check-only microphone_cli tests
uv run flake8 microphone_cli tests
uv run bandit -c pyproject.toml -r microphone_cli
Every PR bumps the version in pyproject.toml and adds a CHANGELOG.md entry,
even for docs- and CI-only changes. CI's version-check job catches a forgotten
bump by failing when the version still matches main; it does not verify the
version moved forward.
Markdown lint is an npm tool, not a uv one — install it separately, pinned to
the version CI uses:
npm install -g markdownlint-cli2@0.21.0
markdownlint-cli2 "**/*.md" "#node_modules" "#.local" "#.claude/skills"
See CLAUDE.md for the architecture, the CLI contracts (errors,
stream split, --json), and how to add a verb or noun group.
License
Apache 2.0 — see LICENSE.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file microphone_cli-0.8.2.tar.gz.
File metadata
- Download URL: microphone_cli-0.8.2.tar.gz
- Upload date:
- Size: 193.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
uv/0.12.10 {"installer":{"name":"uv","version":"0.12.10","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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f1af11265c543449c89812726ee9d979abd715331fd1c5e0a70b58ce5f6a7dc1
|
|
| MD5 |
40f6a53fbd658c0650a870ef2781b4e1
|
|
| BLAKE2b-256 |
b1d2ba0948475f78bfb91f87cdff6a2f244fbc429bc3d5dc937c9499a443010e
|
File details
Details for the file microphone_cli-0.8.2-py3-none-any.whl.
File metadata
- Download URL: microphone_cli-0.8.2-py3-none-any.whl
- Upload date:
- Size: 22.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
uv/0.12.10 {"installer":{"name":"uv","version":"0.12.10","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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fc3340a9f2d6d42b5c0ec94e9997b24b011c745397e6c946c2efd95db8d703f5
|
|
| MD5 |
4c6e18b5555ed42f1e37780336c9c4f1
|
|
| BLAKE2b-256 |
2212c35b72ef13eb59be2d5521d250b0fce189c705d901cb18985c7e7fd79413
|