Productivity toolkit for claude.ai
Firefox Extension · Manifest V3 · React 19 · TypeScript
Features • Installation • Development • Architecture • Contributing
Claude Voyager adds focused productivity tools directly into the claude.ai interface. Every feature is designed to look and feel native to Claude — no visual noise, no heavy overlays. Enable or disable each tool independently from the popup settings.
| Feature | Description |
|---|---|
| Timeline Navigation | Dot timeline on the side of messages for quick jumps. Long-press to star important points. |
| Folder Organization | Native-style sidebar folder entry with drag-and-drop conversation sorting. |
| Prompt Library | Reusable prompt snippets with save, search, and one-click insert into the chat input. |
| Chat Export | Export conversations as JSON, Markdown, or PDF-ready output. |
| Adjustable Chat Width | Change the max chat width directly from the extension popup. |
| Tab Title Sync | Keep browser tab titles aligned with the active conversation title. |
| Formula Copy | Copy LaTeX source from rendered KaTeX formulas directly to clipboard. |
- English (
en) - Deutsch (
de)
- Download the latest
claude-voyager-x.x.x.zipfrom Releases - Extract the archive to a folder of your choice.
- Open a terminal within that folder and run
npm installfollowed bynpm run build. - Open Firefox and navigate to
about:debugging#/runtime/this-firefox. - Click Load Temporary Add-on...
- Select the
manifest.jsonfile located in the.\distdirectory.
# Clone the repository
git clone https://github.com/CheswickDEV/claude-voyager.git
cd claude-voyager
# Install dependencies
npm install
# Build for production
npm run build
# Load dist/ in Firefox via about:debuggingRequirements: Node.js 20+, npm, Firefox 142+
npm run dev # Watch build — rebuilds on file changes
npm run build # Production build (typecheck + bundle)
npm run typecheck # TypeScript validation only
npm run clean # Remove dist/- Run
npm run devfor watch mode - Load
dist/manifest.jsonas a temporary add-on in Firefox - After changes, click Reload in
about:debugging - Test on
https://claude.ai/*
+------------------+
| Popup (React) | Settings UI with feature toggles
+--------+---------+
|
MessageService
|
+-----------+-----------+
| |
+---------+----------+ +---------+---------+
| Background Worker | | Content Script |
| Settings + Sync | | Feature Lifecycle |
+--------------------+ | DOM Observation |
| SPA Navigation |
+---------+----------+
|
+---------------+---------------+
| | | | |
Timeline Folder Prompt Export ...
| Service | Purpose |
|---|---|
DOMService |
Centralized CSS selectors, DOM queries, MutationObserver management |
StorageService |
Settings, folders, prompts persistence with migration support |
MessageService |
Typed IPC between popup, background, and content script |
LoggerService |
Structured logging with [Claude Voyager] prefix |
src/
core/
services/ # DOM, Storage, Messaging, Logger
types/ # Global types, feature keys, defaults
utils/ # Debounce, ID generation
features/
timeline/ # Timeline navigation + starring
folder/ # Folder organization + drag-and-drop
prompt/ # Prompt library + search
export/ # Chat export (JSON/MD/PDF)
widthAdjust/ # Adjustable chat width
tabTitleSync/ # Tab title synchronization
formulaCopy/ # LaTeX formula copy
i18n/ # EN + DE translations
pages/
background/ # MV3 background script
content/ # Content script entry + feature orchestration
popup/ # React settings UI
public/
icons/ # Extension icons (16/48/128px)
banner.png # Extension banner
_locales/ # Firefox i18n (en, de)
manifest.json # MV3 manifest for Firefox
vite.config.firefox.ts
This extension requests minimal permissions:
| Permission | Reason |
|---|---|
storage |
Persist settings, folders, prompts, and starred messages |
tabs |
Notify open claude.ai tabs when settings change |
Content script is scoped to https://claude.ai/* only.
Added UI should look and feel native to Claude.
- All custom elements use Claude's own CSS variables and design patterns
- Features are independently toggleable — nothing is forced
- Zero tracking, zero analytics, zero external requests
- DOM selectors are centralized in
DOMServicefor easy maintenance when claude.ai updates
- Fork the repository
- Create a feature branch (
git checkout -b feature/my-feature) - Make your changes
- Run
npm run buildto verify TypeScript + build - Submit a pull request
This project is not affiliated with or endorsed by Anthropic. Claude and claude.ai are trademarks of Anthropic.
This project is licensed under the MIT License — see LICENSE for details.
You're free to use this optimizer personally, commercially, in your own projects, or as part of a larger system.
If this optimizer saves you time or improves your Claude results, please consider starring the repo — it helps others discover it and motivates continued development.
⭐ Star this repo | 🐛 Report an issue | 💡 Request a feature
Made with 🖤 by cheswick.dev · Not affiliated with Anthropic

