Docs
302me turns your browser's address bar into a command line for the web. Create a shortcut, type it in your omnibox, and you're there. No clicking, no bookmarks menu, no searching through folders.
The 30-second version
- Create an account
- Create a searchbar
- Add shortcuts --
ghgoes tohttps://github.com, for instance - Install the searchbar in your browser
- Type your keyword in the omnibox. Done.
That's the whole thing. Everything else is optional power-user stuff.
A searchbar is a named collection of shortcuts. You install it as a search engine in your browser, and your shortcuts become available from the omnibox.
You might have one searchbar for work, one for personal stuff, one for a side project. Each gets its own slug, its own URL, and its own install configuration.
Visibility
| Level | Who can see it |
|---|---|
personal | Only you |
unlisted | Anyone with the link |
public | Listed on the Explore page, composable by others |
Fallback URL
When someone types a query that doesn't match any shortcut, the searchbar can redirect to a fallback. Set it to https://duckduckgo.com/?q=%s and unmatched queries become web searches. The %s gets replaced with whatever was typed.
Shortcuts are the individual entries in a searchbar. Each one maps a keyword to a URL.
Basic shortcuts
The simplest kind. A keyword goes to a URL.
gmail https://mail.google.com cal https://calendar.google.com slack https://myco.slack.com
Shortcuts with arguments
Use %s in the URL. Whatever comes after the keyword gets substituted in.
gh https://github.com/%s so https://stackoverflow.com/search?q=%s jira https://myco.atlassian.net/browse/%s
Type gh rails/rails and you land on https://github.com/rails/rails.
Nested shortcuts
Use colons to create hierarchy. This is just a naming convention -- there's no actual nesting logic -- but it keeps things organized.
gh https://github.com/%s gh:pr https://github.com/%s/pulls gh:issues https://github.com/%s/issues
Bulk import
You can paste a list of shortcuts, one per line, in shortcut url format. Whitespace-separated.
gh https://github.com/%s gmail https://mail.google.com cal https://calendar.google.com jira https://myco.atlassian.net/browse/%s
Duplicates are skipped. If a shortcut already exists in the searchbar, the import won't overwrite it.
Require authentication
You can lock a searchbar so that only you -- signed in -- can resolve shortcuts through it. Anyone else who tries to use the resolution URL gets bounced. Useful if your shortcuts contain internal URLs you don't want leaking through a shared browser profile.
Each searchbar has an install page with browser-specific instructions. The short version:
Chrome / Edge / Arc / Brave
Quick install: Use the search form on the install page. Chrome auto-detects it as a search engine. Then go to chrome://settings/searchEngines, find it under "Site search", and set a keyword.
Manual install: Copy the search URL template from the install page, go to chrome://settings/searchEngines, click "Add", and paste it in. No autocomplete with this method.
Firefox
Visit the searchbar's resolution page, right-click the address bar, and select "Add a Keyword for this Search." Firefox picks up the OpenSearch descriptor automatically, so autocomplete works.
Safari
Safari doesn't support custom search engines. Nothing we can do about that.
Compositions let you pull shortcuts from other searchbars into yours. Someone publishes a searchbar with AWS shortcuts, you compose it into your own, and those shortcuts work alongside yours.
How it works
- Go to your searchbar and click "Compose"
- Browse public searchbars
- Preview the shortcuts you'd get
- Set an optional prefix to avoid collisions
- Add it
Prefixes
If you compose a searchbar with the prefix a, all its shortcuts are available as a:shortcut. No prefix means the shortcuts merge directly -- if both have a gh shortcut, yours wins.
Limits
| Plan | Compositions per searchbar |
|---|---|
| Free | 2 |
| Personal | 10 |
| Team | Unlimited |
Encrypted searchbars use client-side AES-256-GCM encryption. Your bookmark URLs are encrypted in your browser before they're sent to the server. We store ciphertext. We never see your URLs and we never have your key.
How keys work
When you enable encryption, you either generate a key or derive one from a passphrase using PBKDF2. The key is stored in the URL fragment (#key=...), which browsers never send to the server.
Same passphrase always produces the same key. You can regenerate it if you remember the passphrase.
What this means in practice
- Your install URL contains your key. Bookmark it. Losing it means losing access.
- We cannot recover your data if you lose your key. This is a feature, not a limitation.
- Encrypted searchbars can't belong to an organization -- the whole point is that nobody else can see your URLs.
- The API returns ciphertext as-is. Decryption happens on your end.
Available on Personal and Team plans.
You can download any searchbar as a standalone HTML file. The file contains a working search form, your full shortcut table, and all the resolution logic. It runs entirely on its own with zero dependencies on 302me.
What's in the file
- A search input that resolves shortcuts locally
- A table of all your shortcuts and their URLs
- Fallback URL support
- For encrypted searchbars: the decryption logic, so shortcuts resolve client-side
Encrypted exports
If the searchbar is encrypted, you can optionally embed your key in the file. Anyone with the file can then decrypt your bookmarks. If you don't embed the key, the file will prompt for it.
You can also pull everything out as JSON through the API. Between the HTML export and the API, there's no lock-in.
Available on Personal and Team plans.
The API lets you manage searchbars and bookmarks programmatically. List, create, update, delete -- everything you can do in the UI, you can do over HTTP.
Authentication
Create an API token from your settings. Tokens are hashed server-side -- we store the hash, not the token. You see it once when it's created. If you lose it, revoke it and make a new one.
Pass it as a Bearer token in the Authorization header:
Authorization: Bearer your_token_here
Endpoints
Full endpoint documentation is on the API reference page. The short version:
| Method | Path | Does |
|---|---|---|
GET | /api/v1/searchbars | List your searchbars |
GET | /api/v1/searchbars/:slug | Get a searchbar with all bookmarks |
POST | /api/v1/searchbars | Create a searchbar |
PATCH | /api/v1/searchbars/:slug | Update a searchbar, optionally replace all bookmarks |
DELETE | /api/v1/searchbars/:slug | Delete a searchbar |
CLI
There's also a command-line tool for managing searchbars from your terminal. Sync, import, bulk edit. See the API reference page for the GitHub link.
Available on Personal and Team plans.
Paid plans include basic usage analytics. You can see which shortcuts are being used and how often. Useful for figuring out which bookmarks your team actually relies on and which ones are collecting dust.
Retention
- Free -- no analytics
- Personal -- 90 days of history
- Team -- 365 days of history
Data older than your plan's retention window is deleted. We don't keep it around.
Organizations let a group of people share searchbars. Create an org, invite people, and create searchbars that everyone in the org can use.
Roles
| Role | Can do |
|---|---|
| Owner | Everything. Delete the org, manage billing, promote admins. |
| Admin | Manage members, teams, invites, searchbars. Can't delete the org. |
| Member | See org-wide searchbars and searchbars for their teams. |
Invites
Admins create invite links. Links can have an expiration and a max use count. Share the link, people join. No email invitation flow -- just a URL.
Settings
Org admins manage everything from the org settings page -- general info, plan usage, members, teams, and invites. All in one place.
Available on the Team plan.
Teams are groups within an organization. They control which searchbars are visible to which people.
How visibility works
- Searchbars with no team assigned are org-wide -- every member sees them
- Searchbars assigned to a team are only visible to that team's members
- Admins and owners see everything regardless of team membership
Example
Acme Corp has an "Engineering" team and a "Design" team. The eng team's searchbar with CI and deploy shortcuts is invisible to designers. The org-wide "Acme Tools" searchbar with Slack and Jira links is visible to everyone.
A user can be on multiple teams. They see the union of all their teams' searchbars plus org-wide ones.
| Free | Personal | |
|---|---|---|
| Price | $0 | $2.00/mo |
| Searchbars | 2 | 10 |
| Bookmarks | 100 | 1,000 |
| Compositions | 5 per searchbar | 10 per searchbar |
| API access | Yes | Yes |
| Encryption | Yes | Yes |
| Export | Yes | Yes |
| Organizations | No | No |
| Analytics | No | 90 days |
If you need more than what your plan allows but can't or don't want to pay, email me. I'm not going to let pricing be the reason you stop using this.