ericclemmons / ericclemmons/aside
Raycast extension: context-aware dispatch to AI coding agents
- Dominant language
- Swift
- Stars
- 8
- Forks
- 1
- PR merge metrics
- No merged PRs in 30d
Description
## Summary
Aside as a Raycast extension — a **context-aware dispatch tool** for AI coding agents. Not a dictation tool. The extension auto-gathers what you're looking at (selected text, URLs, screenshots, clipboard) and dispatches your prompt + context to a running OpenCode Desktop session.
Voice input is intentionally out of scope — users can use SuperWhisper, macOS dictation, or just type. Aside's value is the **context capture + quick dispatch**, not the recording.
## The Flow
1. **Hotkey** → Form opens, prompt field focused
2. User types/pastes their intent (or it's pre-filled by SuperWhisper)
3. Context auto-detected and shown as toggleable checkboxes
4. `Enter` → send to most recent session / `Cmd+Enter` → new session / `Cmd+K` → pick session
5. Done. Back to work.
## Context Sources (v1)
| Source | How | Permission |
|---|---|---|
| Selected text | `getSelectedText()` Raycast API | None |
| Previous app + window | `getFrontmostApplication()` Raycast API | None |
| Browser URL | AppleScript (Chrome/Safari/Arc) | Automation |
| Clipboard | Raycast Clipboard API | None |
| Recent screenshots | Glob `~/Desktop/Screenshot*.png` by mtime | None |
## Dispatch Target (v1)
- **OpenCode Desktop** only (requires it to be running)
- Server discovery via `ps ewwA` (same mechanism as native app)
- Dispatch via `opencode-cli run --attach --session -- `
- Session list from OpenCode server HTTP `/session` endpoint
- Files (screenshots) attached via `--file=` flags
Claude Code does not currently support live session sync/server mode, so it's out of scope for v1.
## What It Replaces from the Native App
| Native Aside | Raycast Extension |
|---|---|
| CGEvent tap for Right Option hotkey | Raycast hotkey system |
| Hold-to-talk recording | Out of scope (use SuperWhisper etc.) |
| Custom floating overlay + waveform | Raycast Form UI |
| Custom session picker | Raycast List + footer actions |
| 8-step setup wizard | Single gate: "OpenCode Desktop required" |
| Accessibility permission | Not needed |
| Microphone permission | Not needed |
| Code signing / notarization | Not needed |
## UX Details
- **Onboarding**: Extension checks for running OpenCode Desktop server on launch. If not found, shows a message with link to open it. No wizard.
- **Session picker**: Raycast footer primitives — `Enter` for most recent session, `Cmd+Enter` for new session, `Cmd+K` to browse sessions list
- **Context checkboxes**: All checked by default except screenshots. User can toggle with keyboard.
- **Prompt editing**: If user corrects a transcription typo, the extension can diff original vs edited and auto-learn corrections to a custom vocabulary
## Non-Goals
- Voice recording / STT (use your preferred tool)
- Showing agent output (go look at OpenCode Desktop)
- Claude Code / Codex integration (until they support live dispatch)
- Background processing / persistent daemon
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.