https://github.com/iosmanthus/zenodotus
Intelligent browser tab grouping powered by LLM
https://github.com/iosmanthus/zenodotus
browser-extension chrome-extension claude fastify llm openapi tab-management typescript
Last synced: 3 months ago
JSON representation
Intelligent browser tab grouping powered by LLM
- Host: GitHub
- URL: https://github.com/iosmanthus/zenodotus
- Owner: iosmanthus
- Created: 2026-03-31T05:23:38.000Z (3 months ago)
- Default Branch: master
- Last Pushed: 2026-04-05T14:46:29.000Z (3 months ago)
- Last Synced: 2026-04-05T17:03:00.458Z (3 months ago)
- Topics: browser-extension, chrome-extension, claude, fastify, llm, openapi, tab-management, typescript
- Language: TypeScript
- Size: 336 KB
- Stars: 2
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Zenodotus
Intelligent browser tab grouping powered by your local coding agent (Claude Code / Codex).
## How It Works
Zenodotus collects your open tabs (URL, title, meta description), sends them to a local server which calls your coding agent, and applies the returned grouping to your browser. Groups are color-coded by name.
```
Chrome Extension --> Local Server (:18080) --> Claude Code or Codex (via subscription)
```
## Prerequisites
- [Claude Code](https://claude.com/product/claude-code) or [Codex](https://github.com/openai/codex) CLI installed and logged in
- Chromium-based browser (Chrome, Brave, Edge, etc.)
## Setup
```bash
git clone && cd zenodotus
# Enter dev shell if using Nix:
nix develop
# Or use direnv: direnv allow
# Install dependencies
pnpm install
# Generate types from OpenAPI spec (already committed, but run after spec changes)
pnpm generate
```
## Running
### 1. Start the server
```bash
pnpm dev:server
```
The server listens on `http://localhost:18080` by default. To use a different port:
```bash
PORT=9090 pnpm dev:server
```
To use Codex as the default provider:
```bash
PROVIDER=codex pnpm dev:server
```
### 2. Load the extension
```bash
pnpm build:extension
```
Then in your browser:
1. Go to `chrome://extensions` (or `brave://extensions`)
2. Enable **Developer mode**
3. Click **Load unpacked**
4. Select `extension/.output/chrome-mv3`
Or download the latest release from [GitHub Releases](https://github.com/iosmanthus/zenodotus/releases).
## Usage
Click the Zenodotus extension icon to open the popup.
### Organize Tabs
Click **Organize Tabs** to group all open tabs across all windows. The agent analyzes each tab and assigns it to a group. Existing groups are preserved and reused.
### Auto-group
Toggle **Auto-group new tabs** to automatically group new tabs when they finish loading. New tabs are batched (2s debounce, 10s max wait) to reduce agent calls.
### Settings
Expand **Settings** to configure:
- **Server URL** -- Backend address. Default: `http://localhost:18080`
- **Provider** -- `claude-code` (default) or `codex`
- **Model** -- Model name. Default: `sonnet` for Claude Code. Leave empty for Codex default.
- **Enable thinking** -- Turn on extended thinking for more deliberate grouping. Off by default for speed.
- **Custom Prompt** -- Additional instructions. Example: `"Group by project, use Chinese names"`
Click **Save** to persist settings.