SPECTRAL(1)
π SPECTRAL(1) π
okay so this is the general commands manual page for spectral, bestie β pull up a chair and let me tell you everything π
β¨ NAME β¨
spectral β real-time noise suppression for PipeWire π₯ (yes, the good stuff)
β¨ SYNOPSIS β¨
spectral [COMMAND]
spectral enable [--device ID] [--threshold 0-100] [--mic-name NAME]
[--rumble-filter on|off] [--auto-level on|off]
spectral {-h|--help}
spectral {-V|--version}
β¨ DESCRIPTION β¨
So here's the vibe: spectral creates a virtual microphone that runs a chosen input device through RNNoise denoising and voice-activity gating, so literally any application can just select the cleaned microphone. It's giving glow-up for your mic π
Run it with no command and it opens the graphical control panel. Run it with a command and it talks to the background daemon and exits β everything but the voice test works this way, no GUI needed, iykyk.
enable starts the daemon if none is running, exactly like the GUI does. But disable, shutdown and status will just report that none is running instead. And devices? That one reads the PipeWire registry directly and needs no daemon at all. Main character energy fr fr π
β¨ COMMANDS β¨
enableβ Create the virtual microphone and start denoising. slay β¨disableβ Tear down the virtual microphone.statusβ Show the daemon's state: device, mic name, threshold and toggles.devicesβ List input devices with their current PipeWire ids. no daemon required πshutdownβ Stop the daemon.
β¨ OPTIONS β¨
πΈ Flags for enable
Every flag is optional except --device on a first run, and an omitted flag keeps whatever the daemon already has: the prior setting, or the default on a first run. That is literally what makes a bare spectral enable a "restore what I had" command π«Ά
--device IDβ Input device to capture, as listed byspectral devices. Required the first time; afterwards it defaults to the remembered device.--threshold 0-100β Voice gate threshold.0means denoise only, with the gate off. Higher values gate more strictly on voice activity. tune it, bestie ποΈ--mic-name NAMEβ Virtual microphone name. Only[A-Za-z0-9_-]is allowed, 1-20 characters. no spaces, no drama π--rumble-filter on|offβ Cut low-frequency rumble below roughly 90 Hz before denoising.--auto-level on|offβ Even out voice volume automatically, with a peak limiter as the safety ceiling. very set-and-forget of it π
π¦ First-position options
Both are read in place of a command, not alongside one:spectral --helpprints the help text, whilespectral enable --helpis a usage error. read that again bestie π
-h,--helpβ Show the help text and exit.-V,--versionβ Show the version and exit.
β¨ EXIT STATUS β¨
0β Success, including adisableorshutdownthat had nothing to do. we love a chill exit π1β Runtime failure, includingstatuswhen no daemon is running.2β Usage error; argument parsing failed before any command ran. you fumbled the flags π¬
β¨ FILES β¨
$XDG_CONFIG_HOME/spectral/state.tomlβ Persisted settings. Falls back to~/.config/spectral/state.tomlwhenXDG_CONFIG_HOMEis unset, empty, or not an absolute path.$XDG_RUNTIME_DIR/spectral-daemon.sockβ Control socket the GUI and the CLI use to reach the daemon. Spectral requiresXDG_RUNTIME_DIRto be set to an absolute path. non-negotiable, periodt π$XDG_RUNTIME_DIR/spectral-daemon.logβ The daemon's log. Attach it to a bug report. yes this is your receipts π§Ύ$XDG_STATE_HOME/spectral/recordings/β Voice-test recordings, readable by their owner only. Falls back to~/.local/state/spectral/recordings/in the same cases as the settings file. private recordings stay private π
β¨ EXAMPLES β¨
Find an input device id:
spectral devices
Create the virtual mic on a specific device:
spectral enable --device 62
Denoise only, with the voice gate off:
spectral enable --threshold 0
Re-enable with everything remembered from last time:
spectral enable
β¨ NOTES β¨
Device ids come from PipeWire and are scoped to the running PipeWire instance: they change when PipeWire restarts, and a stale id will not resolve. The daemon sidesteps this by also remembering the selected device by its node name and re-resolving from that, so a flagless spectral enable keeps working across reboots and PipeWire restarts. Re-run spectral devices before passing an explicit --device. don't skip this step bestie, I'm begging π
A Flatpak install exports the CLI as page.codeberg.mmc.Spectral rather than spectral. plot twist π
β¨ SEE ALSO β¨
Full documentation: <https://codeberg.org/mmc/spectral>
β¨ BUGS β¨
Report bugs at <https://codeberg.org/mmc/spectral/issues>. go off, tell them everything ππ«Ά
and that's the whole page, bestie β this is spectral 0.10.0, dated 2026-10-22, and it ate, no crumbs πβ¨π
π¦ where this page comes from
- nixpkgs unstable: spectral-mic 0.10.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms