Skip to content

Seven new extensions: Browser, Media, Projects, Timers, Ports, Network, AI - #11

Merged
stevenpersia merged 4 commits into
mainfrom
feat/new-extensions
Oct 27, 2026
Merged

stevenpersia merged 4 commits into
mainfrom
feat/new-extensions

Conversation

@stevenpersia

Copy link
Copy Markdown
Contributor

Extensions

Extension What it does
Browser History and bookmarks of Firefox, Chrome, Brave, Chromium, Edge and Vivaldi (merged, with favicons); open Firefox tabs.
Media Controls Now playing for any MPRIS player, live, with play/pause, next, previous, volume and cover art; no-view commands to bind to keys.
Code Projects Recent projects of VS Code, VSCodium, Cursor, Zed and JetBrains IDEs, plus git folders; branch and pending changes; open in the editor, a terminal or on the forge.
Timers Pomodoro, presets and custom durations as systemd user timers, so they ring with a notification even when Backslash is closed.
Ports What listens on each port (via ss), with its process and project folder; open it, stop it or kill it.
Network & Devices Wi-Fi (join, password, forget, on/off), Bluetooth (connect, battery), audio output and microphone, VPNs and Tailscale.
AI Ask AI with saved conversations and follow-ups; fix, improve, summarize, translate and explain the copied text. Streams from Claude (default claude-opus-5-5, server-side refusal fallback on), OpenAI, Mistral, Groq, OpenRouter or a local Ollama.

Each extension keeps its parsing in lib.ts, covered by lib_test.ts. CI now runs deno test extensions. The registry entries for the seven extensions are added and pinned to e2762ad.

Merging

  • Needs backslash-app/backslash feat/streaming-detail merged first: CI type-checks against the SDK on main, and AI uses streamed details.
  • Use a merge commit, so the pinned commit stays reachable.

Testing

  • 27 unit tests; deno check and deno lint pass; scripts/validate.ts verifies all 12 entries against GitHub.
  • Each command ran in the launcher (virtual display) and through backslash run, inside the sandbox, against fakes:
    • browser profiles (Firefox and Chrome databases, a session file);
    • editor histories;
    • a mock MPRIS player on D-Bus;
    • fake nmcli, bluetoothctl, pactl, tailscale and systemd-run;
    • real dev servers for Ports;
    • a mock streaming server for AI.
  • Not exercised on real hardware or services here: Wi-Fi, Bluetooth, systemd timers, Spotify, and a live Claude or OpenAI call (request building and stream parsing are unit-tested).

Generated by Claude Code

…k, AI

- Browser: history and bookmarks of Firefox and Chromium browsers, favicons, Firefox tabs.
- Media Controls: now playing and controls for any MPRIS player, over busctl.
- Code Projects: recent projects of VS Code, Cursor, Zed, JetBrains and git folders.
- Timers: systemd timers that ring with a notification even when Backslash is closed.
- Ports: listening ports with their process and project; open or stop them.
- Network & Devices: Wi-Fi, Bluetooth, audio outputs, VPNs and Tailscale.
- AI: ask questions and work on copied text with Claude, OpenAI, Mistral,
  Groq, OpenRouter or Ollama, streaming the answer.

Each has its parsing in lib.ts with tests; CI runs them.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WzDMDJteorsmKRm6FVPX94
Deno 2.9.8's lint (no-control-regex) rejects \x00 in a regular
expression; \p{Cc} matches the same characters.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WzDMDJteorsmKRm6FVPX94
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WzDMDJteorsmKRm6FVPX94
@stevenpersia
stevenpersia merged commit 4377dc5 into main Oct 27, 2026
1 of 2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants