# tauri-plugin-audio
Desktop-only Tauri plugin for listing audio capture devices and controlling one active CPAL/PipeWire capture stream.
The command interface is exposed through `plugin:audio|get_devices`, `plugin:audio|create_stream`, and `plugin:audio|stop_stream`.
## Install
```bash
cargo add tauri-plugin-audio
pnpm add tauri-plugin-audio-api
```
Register the Rust plugin in your Tauri builder:
```rust
tauri::Builder::default()
.plugin(tauri_plugin_audio::init())
.run(tauri::generate_context!())?;
```
## JavaScript API
The npm package entrypoint is generated from the Rust command and Specta type metadata:
- `pnpm --dir tauri-plugin-audio generate` refreshes `guest-js/index.ts`.
- `pnpm --dir tauri-plugin-audio build` regenerates `guest-js/index.ts` and compiles `dist-js/index.js` plus `dist-js/index.d.ts`.
Use it from another Tauri app frontend as:
```ts
import { commands, type StreamEvent } from "tauri-plugin-audio-api";
const devices = await commands.getDevices();
```