Files
buzz/docs/try-voice-workspaces.md
2026-09-21 15:10:01 -04:00

97 lines
4.6 KiB
Markdown

# Try the voice workspace prototype
Branch: `am-blockUI-proto-chief` in `block/buzz`.
This prototype adds workspace navigation and a persistent command capsule.
Type or speak to open conversations and apps, create workspaces, and arrange
windows. Jev interprets requests; Buzz validates and applies the selected actions.
## Run on macOS
The staging launcher uses your own existing Buzz identity from macOS Keychain
and connects to the Block production community. Sign in to the regular Buzz app
first. The prototype has a separate app name and local settings. You need the
desktop development prerequisites in [CONTRIBUTING.md](../CONTRIBUTING.md),
including Xcode command-line tools. This is a source-build prototype, not a signed
installer; the first build downloads toolchains and compiles the native sidecars.
In a fresh checkout:
```sh
git clone --branch am-blockUI-proto-chief https://github.com/block/buzz.git buzz-voice
cd buzz-voice
. ./bin/activate-hermit
pnpm install --frozen-lockfile
```
Create a root `.env` file if you do not already have one, and add your Jev key:
```dotenv
TYPESAFE_API_KEY=your-key-here
```
Use your own TypeSafe key, or a shared trial key supplied privately by the demo
owner. `.env` is ignored by Git. Keys are read by the native process at runtime;
they are not bundled into the app or exposed as frontend `VITE_*` variables.
Your Buzz signing identity is separate from the Jev key and is never shared with
other testers.
From the repository root, build and launch with `.env` loaded:
```sh
node --env-file=.env --input-type=module -e '
import { spawnSync } from "node:child_process";
const result = spawnSync("bash", ["scripts/run-blockui-staging.sh"], {
stdio: "inherit", env: process.env,
});
process.exit(result.status ?? 1);
'
```
For subsequent launches of the same build, add `"--no-build"` after the script
path in the argument array. Quit the staging app before relaunching. Use this
launcher after changing the key; opening the `.app` from Finder does not inherit
the terminal's environment. People using another community should follow the
normal desktop development setup instead of this Block-specific launcher.
## Try it
- Click the keyboard icon to type; **Enter** submits and **Shift+Enter** inserts
a line. Click the mic icon or press **Cmd+B** to start live listening.
- Click the voice waveform to mute. Speech recognition runs locally; the first
activation downloads the speech model and macOS requests microphone access.
- Say **“projects on the left”**, then **“make it bigger.”** Enable Projects in
Settings → Experiments if it is unavailable in your build.
- Open two conversations, then say **“move Kenny and Cynthia right”** and
**“move them more.”** Substitute people in your own directory. The remembered
selection is scoped to the current workspace and cleared on workspace changes.
- Try **“create a workspace with music and weather,” “split screen,” “all windows
25% smaller,”** or **“use focus layout.”** Focus is a vertical reading column;
newly opened windows go to its top.
- Try **“start a DM with Matt and Jared.”** This opens an unsent draft. Names use
your own directory and recent activity; unclear recipients prompt for a choice.
- Workspaces have their own layouts and icons. Use the top tabs to switch between
them. The floating dock remains available in source through
`desktop/src/features/pulse/lib/navigationLayout.ts`.
Live listening can act before you stop talking. Jev receives transcript text and
matching app, workspace, and people metadata; microphone audio stays on-device.
Interface commands do not send messages, run agents, or change permissions.
Some widgets contain sample data. Home summaries separately use your locally
signed-in Codex CLI; see the [implementation briefing](../desktop/src/features/pulse/README.md).
## Troubleshooting
- **Missing key / authentication error:** check `TYPESAFE_API_KEY` in `.env`,
then quit and restart through the command above.
- **Missing Buzz identity:** sign in to the normal Buzz app and allow Keychain
access when the staging launcher requests it.
- **Microphone unavailable:** allow Buzz Block UI Staging in macOS Privacy &
Security → Microphone. Typed commands use the same Jev planner.
- **Unclear target:** use the full person, conversation, or workspace name.
“It” and “them” refer to the last successfully selected window or group.
- **Stale build or missing sidecars:** rerun the launcher without `--no-build`.
This branch is for trying the prototype. It has not been submitted for merge or
published as an official Buzz release.