ericclemmons / ericclemmons/aside

Raycast extension: context-aware dispatch to AI coding agents

Open
#4 1 comment 0 reactions 0 assignees View on GitHub
enhancement
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.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.