A file-tree sidebar for GitHub. Browse any repo without page reloads. Manifest V3, TypeScript, Bun — runs in your browser, no backend and no telemetry.
Install · Features · Themes · Architecture · Contributing · Support
GitHub reloads the whole page every time you open a folder. OctoNext puts a collapsible file tree next to the page instead, loading folders on demand from the GitHub REST API. Navigate, search, download, and review PRs in one tab.
You only need to sign in for private repos: paste a personal access token on the
options page. It is checked against GitHub, then stored in chrome.storage and
sent nowhere else.
Stars over time and commit activity, not a wall of count badges.
Features
| Area | What you get |
|---|---|
| File tree | Collapsible sidebar on github.com repo pages, lazy-loaded folders, expand all / collapse all, keyboard navigation, custom scrollbars |
| Icons | Two full file-icon packs — Material Icon Theme and Vira — plus a minimal pack |
| Themes | 22 themes including 5 animated ones — see Themes — with live preview in settings |
| Fonts | 8 bundled coding fonts or system stacks, with live preview and adjustable size |
| Search | Instant fuzzy file filtering with match highlighting |
| Pull requests | PR panel with stats summary, searchable + paginated changed files, and review comments — all without opening the diff page |
| Download | Checkbox selection; a single file downloads directly, multiple files or folders become a path-preserving ZIP |
| Sizes | Total repo size in the header, plus per-folder and per-file sizes |
| Bookmarks | Save repositories locally and jump back any time |
| Layout | Dock left or right, resize, pin open, drag the toggle to any height |
| Enterprise | GitHub Enterprise via per-domain opt-in (right-click the toolbar icon) |
Pull request panel
Everything comes from the API, so you read a PR without leaving the sidebar:
- Summary header — open / merged / closed / draft state, title, author,
base ← headbranches, and totals for changed files, additions, deletions, commits, and review comments. - Searchable changed files — type to filter with live match highlighting; results are cached in memory so filtering never re-fetches.
- Pagination — large diffs page through in fixed chunks instead of one
endless scroll, with an
X–Y of Nindicator. - Labels and reviewers — surfaced as chips right in the sidebar.
- Jump to anything — click a file to scroll straight to its diff, or a comment to open it in context.
Install (from source)
bun install
bun run build # outputs the unpacked extension to dist/- Chrome / Edge — open
chrome://extensions, enable Developer mode, click Load unpacked, and selectdist/. - Firefox — run
bun run packageand loadrelease/octonext-firefox-vX.Y.Z.zipviaabout:debugging→ This Firefox → Load Temporary Add-on.
Packaging for the stores
bun run packageProduces store-ready and self-distribution artifacts in release/:
| Artifact | Target |
|---|---|
octonext-chrome-vX.Y.Z.zip |
Chrome Web Store (MV3, service worker) |
octonext-chrome-vX.Y.Z.crx |
Signed CRX3 for direct Chrome install |
octonext-firefox-vX.Y.Z.zip |
Firefox Add-ons upload |
octonext-firefox-vX.Y.Z.xpi |
Installable Firefox package |
The CRX is signed with a key in keys/octonext.pem, generated on first run and
kept out of version control. Keep it safe to preserve a stable extension ID.
Development
bun run dev # rebuild on change into dist/ (fast incremental)
bun run typecheck # strict TypeScript checks
bun run test # unit tests for the core logic
bun run lint:structure # every file <=130 lines, no comments, kebab-case
bun run format # PrettierStructure rules, enforced in CI: no source file over 130 lines, no comments
in src, kebab-case filenames. See scripts/check/rules.ts.
22 themes, switched live from the options page. The last five are animated — motion on folder toggles, clicks, ripples, and hovers.
Full theme list
| Static | Animated |
|---|---|
| Auto (system) | Pixel |
| GitHub Light / Dark / Dark Dimmed | Cute |
| One Dark | Retro CRT |
| Dracula · Nord · Monokai | Hacker |
| Solarized Light / Dark | Synthwave |
| Gruvbox Dark · Tokyo Night | |
| Monokai Pro · Ristretto · Octagon | |
| Vira Teal · Vira Ocean |
No servers, no analytics, no tracking. The only requests go to the GitHub API
for the repo you are viewing. Your token, if you set one, stays in
chrome.storage and is sent only to GitHub.
Full privacy policy: decryptable.github.io/octonext
- Bun — package manager, bundler, test runner, and asset pipeline
- TypeScript (strict) — all source, no UI framework
- material-icon-theme + Vira — two bundled VS Code file-icon packs
- @fortawesome/* — UI icons
- webextension-polyfill — cross-browser
browser.*APIs
See ARCHITECTURE.md for the source map and data flow, and
CONTRIBUTING.md to get involved.
Free, and staying free. If it saves you time, you can tip: