Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ jobs:
{ cat /tmp/release-notes.md; echo ""; cat CHANGELOG.md; } > CHANGELOG.md.tmp
mv CHANGELOG.md.tmp CHANGELOG.md
else
{ echo "# Changelog"; echo ""; cat /tmp/release-notes.md; } > CHANGELOG.md
cp /tmp/release-notes.md CHANGELOG.md
fi

- name: Commit, tag, and push
Expand Down
3 changes: 0 additions & 3 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
- ci: replace npm pack check with npm pkg fix idempotency check
- chore: add fetch + rebase step to /pr command
- fix(ci): narrow npm pack check to publish warnings only
- fix(ci): narrow npm pack check to publish warnings only
- docs: add retroactive changelog for v0.1.0
- ci: add release workflow with npm trusted publishing and changelog generation
- ci: add npm pack validation and OIDC release workflow
Expand Down Expand Up @@ -44,8 +43,6 @@
- chore: recommend opencode-pulse@latest
- docs: add tmux popup keybind tip to README

# Changelog

## v0.1.0 (2026-03-13)

Initial release.
Expand Down
93 changes: 88 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,89 @@ Select a session and pulse attaches you to its tmux pane, then exits.

> **Requires [Bun](https://bun.sh)**

### Install with your LLM

Paste this into [OpenCode](https://opencode.ai), [Claude Code](https://docs.anthropic.com/en/docs/claude-code), or any LLM coding agent:

```
Install and configure opencode-pulse: https://raw.githubusercontent.com/fetep/opencode-pulse/main/README.md
```

Or follow the manual steps below.

<!--
## LLM Installation Guide

If you are an LLM agent helping a user install opencode-pulse, follow this
interactive workflow instead of having the user manually run each step.

### Step 1: Check prerequisites

Run these checks (don't ask the user, just detect):

```bash
command -v bun >/dev/null 2>&1 && echo "bun=$(bun --version)" || echo "bun=missing"
command -v opencode >/dev/null 2>&1 && echo "opencode=found" || echo "opencode=missing"
command -v tmux >/dev/null 2>&1 && echo "tmux=found" || echo "tmux=missing"
command -v pulse >/dev/null 2>&1 && echo "pulse=already-installed" || echo "pulse=not-installed"
```

- bun missing → Tell the user to install Bun first (https://bun.sh) and stop.
- opencode missing → Warn that OpenCode is needed, but proceed with installation.

### Step 2: Add the plugin to OpenCode config

Read the existing config:
```bash
cat ~/.config/opencode/opencode.json 2>/dev/null || cat ~/.config/opencode/opencode.jsonc 2>/dev/null || echo "no-config"
```
Comment on lines +43 to +46

- If the file exists: add "opencode-pulse@latest" to the existing "plugin" array.
Preserve all other config entries.
- If no config exists: create ~/.config/opencode/opencode.json with:
{ "plugin": ["opencode-pulse@latest"] }
- If "opencode-pulse" is already in the plugin array: skip this step.

### Step 3: Install pulse globally

```bash
bun add -g opencode-pulse
```

This gives the user a fast `pulse` command, which is recommended for tmux
bindings (avoids the resolution overhead of bunx on every invocation).

### Step 4: Ask about tmux integration

Only ask if tmux was detected in Step 1. Ask the user:

"Would you like a tmux popup keybinding for pulse? This lets you press a
key combo to pop up a session overview as an overlay."

If the user says NO: skip to Step 5.

If the user says YES:
Ask: "What key would you like to bind? (default: P, used as prefix + P)"

Append this line to ~/.tmux.conf (create the file if it doesn't exist):
bind-key <KEY> display-popup -E -w 90% -h 50% pulse

Replace <KEY> with the user's choice (default: P).

If tmux is currently running, reload the config:
tmux source-file ~/.tmux.conf 2>/dev/null || true

### Step 5: Verify and finish

Run `pulse --help` to confirm the binary works.

Tell the user:
- Restart any running OpenCode sessions for the plugin to take effect.
- Run `pulse` (or press their tmux keybinding) to see active sessions.
- Sessions appear once OpenCode starts generating events (status changes,
permissions, errors, etc.).
-->

### 1. Enable the plugin

Add `opencode-pulse` to your OpenCode config (`~/.config/opencode/opencode.json` or `~/.config/opencode/opencode.jsonc`):
Expand All @@ -23,10 +106,10 @@ Restart OpenCode. The plugin installs automatically and begins tracking sessions
### 2. Run the TUI

```bash
bunx --bun opencode-pulse
bunx --bun opencode-pulse@latest
```

Or install globally for a persistent `pulse` command:
Or install globally for a faster `pulse` command (recommended for tmux bindings):

```bash
bun add -g opencode-pulse
Expand All @@ -37,18 +120,18 @@ pulse
<summary>npx</summary>

```bash
npx opencode-pulse
npx opencode-pulse@latest
```

Bun must be installed — pulse uses `bun:sqlite` for database access.
</details>

### 3. Tmux popup (optional)

Add this to your `~/.tmux.conf` to pop up pulse with `prefix + P`:
Install globally (see above), then add this to your `~/.tmux.conf` to pop up pulse with `prefix + P`:

```tmux
bind-key P display-popup -E -w 90% -h 50% 'bunx --bun opencode-pulse'
bind-key P display-popup -E -w 90% -h 50% pulse
```

Select a session and pulse switches you there, closing the popup automatically.
Expand Down
Loading