caffienerd
startpage
JavaScript

Professional Terminal Start Page is a sleek, customizable browser start page built around an interactive terminal. It combines productivity tools like semantic AI routing, Gemini integration, real-time weather, and network utilities with a premium aesthetic and multiple themes. Designed for speed and flexibility.

Last updated Jun 23, 2026
117
Stars
15
Forks
0
Issues
0
Stars/day
Attention Score
63
Language breakdown
No language data available.
โ–ธ Files click to expand
README

Terminal Start Page

A sleek, fast, and feature-rich browser start page driven by an interactive terminal. Boost your productivity with semantic AI routing, direct Gemini integration, open directory search, shelf bookmarks, and a growing suite of built-in utility tools โ€” all wrapped in a premium, modern aesthetic.

โ†’ Try it live: caffienerd.github.io/startpage

Inspired by ahmetdem/start-page
Open directory search inspired by ewasion/opendirectory-finder

Index

- Search Prefixes - Open Directory Prefixes - System Commands - Theme Commands

Demo


Themes


Install as Browser Extension

Use Terminal Start Page as your new tab page โ€” works in Chrome, Firefox, Brave, Edge, and more.

| Browser | Status | Link | | :--- | :--- | :--- | | Chrome / Brave / Edge | โœ… Available | Coming soon to Chrome Web Store | | Firefox | โœ… Available | Coming soon to Firefox Add-ons | | Opera | โœ… Available | Load manually (see below) | | Vivaldi | โŒ Not supported | Vivaldi blocks new tab overrides |

Load manually (all Chromium browsers)

node build.js chrome        # sets manifest.json for Chrome/Brave/Edge
  • Open chrome://extensions (or brave://extensions, edge://extensions)
  • Enable Developer mode
  • Click Load unpacked โ†’ select this folder

Firefox

node build.js firefox       # sets manifest.json for Firefox
  • Open about:debugging โ†’ This Firefox
  • Click Load Temporary Add-on โ†’ select manifest.json
Focus tip: For best experience in Firefox, go to about:config and set
browser.newtabpage.activity-stream.improvesearch.handoffToAwesomebar โ†’ false
This lets the terminal receive focus automatically on new tab.

Opera

node build.js opera         # sets manifest.json for Opera

Load via Opera's extension developer mode. The extension uses a background service worker to intercept new tabs since Opera doesn't support chromeurloverrides.


Getting Started

As a localhost web page

You need a static file server. Opening index.html directly works for most features, but serving it properly is recommended for API requests.

Option 1: Python (Quickest)

python -m http.server 6174

Option 2: Caddy

Copy Caddyfile.example to Caddyfile, set your directory path, then:
caddy run --config Caddyfile

Other options

Any static server works โ€” npx serve, nginx, etc.

Visit http://localhost:6174 in your browser.

Version management

Version is defined once in version/version.js and stamped into all manifests by the build script:

# Edit version/version.js, then:
node build.js chrome     # stamp + set Chrome manifest
node build.js firefox    # stamp + set Firefox manifest
node build.js opera      # stamp + set Opera manifest
node build.js            # stamp only, don't touch manifest.json

Features

  • Interactive Terminal โ€” Command-driven interface with autocomplete (Tab), syntax highlighting per command type, and command history (โ†‘/โ†“).
  • Semantic AI Router โ€” Use ai: to navigate by intent. Intelligently routes to YouTube, Maps, Reddit, or search.
  • Gemini Integration โ€” Direct AI prompting via gem: or gemini:. Responses appear in a clean, non-intrusive modal.
  • Open Directory Search โ€” Power-user Google dorking via dir/<category>/<engine>: keyword. Search public open directory indexes filtered by file type, with full autocomplete and an interactive builder (:dir).
  • Shelf Bookmarks โ€” A hidden second layer of bookmarks that surface dynamically as you type, filling slots vacated by non-matching upfront bookmarks. See Shelf Bookmarks.
  • 8 Themes โ€” Light, Dark, AMOLED Black, Nord, Newspaper, Coffee, Root (Hacker), and Neon (Cyberpunk).
  • Syntax Highlighting โ€” Color-coded input for commands, themes, search prefixes, directory tokens, URLs, and more โ€” fully customizable via :customize.
  • Live Dashboard โ€” Local time and real-time weather at a glance.
  • Onboarding Tour โ€” Interactive guided tour on first launch. Replay anytime with :tour.
  • Utility Suite:
- Spell Check โ€” Smart spelling suggestions via spell:. Press D to define the selected word. - Pronunciation โ€” Human-readable syllable breakdown + audio playback via pronounce:. Works on any word, including scientific and technical terms. - IP Info โ€” Detailed network info (IPv4, IPv6, ISP, ASN, location) via :ipconfig. - Speed Test โ€” Integrated network performance testing via :netspeed.
  • Bookmark Management โ€” Fully customizable bookmark grid via visual editor or raw JSON. Includes a separate Shelf tab for hidden bookmarks.
  • Custom Tags โ€” Override built-in search prefixes or define entirely new ones via :tags.
  • Backup & Restore โ€” Export and import all settings (including shelf bookmarks) as a single JSON file.

Shelf Bookmarks

Shelf bookmarks are a hidden second layer that lives behind your main grid. They don't appear on the page โ€” but as soon as you start typing, matching shelf items surface into the slots vacated by non-matching upfront bookmarks.

How it works:

  • Your main (upfront) bookmarks fill the grid normally when the terminal is empty.
  • As you type, upfront bookmarks that don't match your query fade out.
  • Shelf bookmarks that do match slide into those empty slots.
  • Clear the terminal โ†’ everything resets to default instantly.
Matching rules:
  • Matching is by title only (not URL) โ€” so short alias titles like yt, gh, gpt work great.
  • Priority: upfront startsWith > shelf startsWith > upfront includes > shelf includes.
  • The best match gets the primary highlight and is what Enter launches.
Example:

Upfront: YouTube, Reddit, Discord, GitHub, Gmail Shelf: CyberChef, RemoveBG, Cobalt

Type c โ†’ Discord stays (matches), CyberChef and Cobalt slide into the slots where non-matching upfront items were. Everything else fades out.

Managing shelf bookmarks:

Run :bookmarks โ†’ click the Shelf tab. Same grid editor and JSON toggle as upfront bookmarks. Shelf bookmarks are included in :export / :import backups automatically.


Configuration

Run :config to open the settings modal.

| Setting | Description | | :--- | :--- | | Identity | Customize your terminal username | | Weather | Set your location (e.g. New York, London, Delhi) | | Gemini API Key | Get one from Google AI Studio | | Gemini Model | Default is gemini-2.5-flash-lite | | System Prompt | Optional personality for your Gemini assistant | | AI Mode | Toggle between explicit (ai:) and automatic intent routing | | AI Route Badge | Control when the route preview badge is shown | | Default Search Engine | Google, DuckDuckGo, or Bing โ€” also used as the fallback for dir: searches |

Run :customize to change the active theme and independently adjust the syntax highlight color for each input type. Colors persist across theme changes.


Command Reference

Search Prefixes

| Prefix | Example | Destination | | :--- | :--- | :--- | | yt: | yt: lo-fi beats | YouTube Search | | r: | r: mechanical keyboards | Reddit Search | | maps: | maps: central park | Google Maps | | ddg: | ddg: privacy tools | DuckDuckGo | | ggl: | ggl: something | Google (explicit) | | bing: | bing: something | Bing Search | | amazon: | amazon: mechanical keyboards | Amazon Search | | imdb: | imdb: Breaking Bad | IMDb Search | | alt: | alt: notion | AlternativeTo | | def: | def: ephemeral | Dictionary (OneLook) | | the: | the: happy | Thesaurus (OneLook) | | syn: | syn: fast | Synonyms (OneLook) | | quote: | quote: time | Quotes (OneLook) | | spell: | spell: recieve | Built-in Spell Checker | | pronounce: | pronounce: ephemeral | Built-in Pronunciation | | cws: | cws: ublock origin | Chrome/Firefox Extension Store | | gem: | gem: explain black holes | Gemini Direct Prompt | | ai: | ai: directions to central park | Semantic AI Router |

Open Directory Prefixes

Search public open directory indexes using Google dorking (intitle:index.of). Syntax:

dir/<category>/<engine>: keyword

Both <category> and <engine> are optional. Omitting the engine uses your configured default.

| Prefix | Example | Description | | :--- | :--- | :--- | | dir: | dir: interstellar | Open dir search, no file filter | | dir/media: | dir/media: interstellar | Video files (mkv, mp4, aviโ€ฆ) | | dir/books: | dir/books: dune | Ebook formats (pdf, epub, mobiโ€ฆ) | | dir/music: | dir/music: pink floyd | Audio files (mp3, flac, oggโ€ฆ) | | dir/software: | dir/software: photoshop | Executables & archives (exe, iso, zip, apkโ€ฆ) | | dir/images: | dir/images: wallpapers 4k | Image files (jpg, png, psdโ€ฆ) | | dir/other: | dir/other: keyword | Raw open dir, no file filter |

Engine override โ€” append /ggl, /ddg, or /bing before the colon:

dir/music/ddg: flac albums
dir/books/bing: operating systems pdf
dir//ggl: keyword        โ† no category, explicit Google

Category aliases:

| Category | Aliases | | :--- | :--- | | media | vid, video | | books | book, ebook | | music | audio, mus | | software | soft, iso, app | | images | img, pics |

Tab autocomplete works after dir/ (suggests categories) and after dir/category/ (suggests engines).

System Commands

| Command | Description | | :--- | :--- | | :help | Show all commands | | :config | Open settings | | :customize / :custom | Open customization (theme & syntax colors) | | :bookmarks / :bm | Edit bookmarks (upfront + shelf tabs) | | :dir | Open interactive directory search builder | | :dirconfig | Customize file extensions per dir/ category | | :ipconfig / :ip | Show detailed network info | | :netspeed / :speed | Run speed test | | :aimode | Toggle automatic AI routing | | :update | Check for a newer version on GitHub | | :version | Show current app version | | :export | Export all settings to a JSON backup file | | :import | Import settings from a JSON backup file | | :reset | Clear all settings, cache & localStorage (with confirmation) | | :gemini | Open Gemini website | | :tags | Override search URLs & add custom prefix shortcuts | | :tour | Replay the onboarding tour | | :history | Browse & recall command history | | :helpairouter | Guide for ai: routing |

Theme Commands

| Command | Theme | | :--- | :--- | | :light | Light mode | | :dark | Dark mode | | :black / :amoled | Full black / AMOLED | | :nord | Arctic Nord | | :newspaper | Classic Newspaper | | :coffee | Organic Coffee | | :root / :hacker | Hacker terminal | | :neon / :cyberpunk | Cyberpunk Neon |


Keyboard Shortcuts

Terminal

| Shortcut | Action | | :--- | :--- | | Tab or โ†’ | Accept autocomplete suggestion | | Enter | Execute command / navigate | | Ctrl+Enter | Open result in new background tab | | Ctrl+Shift+Enter | Open result in new focused tab | | โ†‘ / โ†“ | Navigate command history |

Ctrl+Enter and Ctrl+Shift+Enter work for bookmarks, search prefixes, direct URLs, plain-text searches, and dir: queries.

Spell Check (spell:)

| Key | Action | | :--- | :--- | | โ†‘ / โ†“ | Navigate suggestions | | Enter | Copy selected suggestion to terminal | | D | Define the selected (or confirmed) word via OneLook | | Esc | Close |

Pronunciation (pronounce:)

| Key | Action | | :--- | :--- | | Space | Play / stop audio | | D | Define the word via OneLook | | Esc | Close |


Utility Tools

Spell Check โ€” spell:word

Checks spelling using the Datamuse phonetic API with frequency scoring to eliminate false positives. Works on single words and multi-word phrases.

  • โ†‘ / โ†“ to navigate suggestions, Enter to copy the selected correction to the terminal.
  • Click or press D on any suggestion โ€” or on a confirmed-correct word โ€” to open its definition in OneLook.

Pronunciation โ€” pronounce:word

Displays a human-readable syllable breakdown (e.g. nyooยทmuhยทnohยทuhlยทtruh...) with the original IPA below it for reference. Plays audio using real MP3 recordings where available, falling back to browser speech synthesis for any word that lacks one โ€” including scientific, chemical, and technical terms.

  • Works on single words and multi-word phrases. Each word is fetched independently and played in sequence.
  • Press Space or click Play to hear the pronunciation.
  • Press D to jump to the OneLook definition.

IP Info โ€” :ipconfig

Shows your IPv4 and IPv6 addresses fetched from separate protocol-locked endpoints, plus ISP, ASN, timezone, location, and VPN detection from ipapi.co.

Speed Test โ€” :netspeed

Runs an in-browser download/upload speed test and displays latency.


Customization

Bookmarks

The start page uses a 4-column layout. Customize bookmarks two ways:

  • Visual Editor (:bookmarks) โ€” grid editor that maps directly to the 4-column layout. Switch between the Upfront and Shelf tabs to manage each set independently.
  • JSON Mode โ€” toggle "Edit as JSON" inside the bookmarks modal for bulk edits or to share your setup.

Shelf Bookmarks

Open :bookmarks โ†’ click the Shelf tab. Add bookmarks here that you don't need visible all the time โ€” they'll surface automatically when your terminal input matches their title. Short, memorable titles work best (e.g. gpt, cyberchef, bg).

Search Overrides & Custom Tags

Run :tags to override built-in search prefix URLs (e.g. point amazon: to amazon.in) or define entirely new prefixes. Custom prefixes get full syntax highlighting and autocomplete automatically.

Open Directory Extensions

Run :dirconfig to customize which file extensions each dir/ category searches for. Click ร— on a pill to remove an extension, type a new one and press Enter to add it, or use โ†บ to reset to defaults.

Syntax Colors

Run :customize to set the highlight color for each input type independently. Colors are stored separately from themes โ€” switching themes never resets your color choices.

Backup & Restore

Use โ†“ Export and โ†‘ Import in :config to save all settings (bookmarks, shelf bookmarks, colors, API keys, custom tags, dir extensions) to a single JSON file and restore them anytime.


Privacy

All settings, including your Gemini API Key, are stored locally in your browser. When running as an extension, the API key is stored in the browser's encrypted extension storage (chrome.storage.local) โ€” never in plain localStorage. No data is sent to any external server except for:

  • Google Gemini โ€” when using gem: or ai: prompts
  • Open-Meteo โ€” for real-time weather
  • Wiktionary / Free Dictionary API โ€” for pronounce: IPA lookup (no key, no tracking)
  • Datamuse โ€” for spell: suggestions (no key, no tracking)
  • ipapi.co / ident.me โ€” for :ipconfig (your IP is sent by nature of the request)

Star the repo โค๏ธ

Star History Chart

๐Ÿ”— More in this category

ยฉ 2026 GitRepoTrend ยท caffienerd/startpage ยท Updated daily from GitHub