User Guide
4got is a metasearch engine. It queries dozens of upstream engines simultaneously, deduplicates and ranks the results, and serves them to you without tracking. This page covers everything you can do from the search bar.
Basic search
Type a query and press Enter. Results come back ranked by cross-engine consensus: pages that multiple engines agree on float to the top.
Category tabs across the top switch between result types:
| Tab | What you get |
|---|---|
| Web | General web results |
| Images | Photos, illustrations, stock images |
| Videos | YouTube, Vimeo, PeerTube, Dailymotion, etc. |
| News | Recent articles from wire services and aggregators |
| Music | Tracks from SoundCloud, Bandcamp, Deezer, etc. |
| Science | Academic papers from arXiv, PubMed, Crossref, etc. |
| IT | Code repos, package registries, docs |
| Files | Torrents (Pirate Bay, 1337x, Solid Torrents, etc.) |
| Maps | OpenStreetMap and Photon geocoding |
| Social | Reddit, Lemmy, Mastodon, HN, Lobsters |
| Books | Open Library, Gutenberg, Goodreads |
| Q&A | Stack Exchange network (SO, Super User, Unix SE, etc.) |
| Packages | Linux distro packages (Arch, NixOS, Alpine, Void, AUR, Flathub) |
| Weather | wttr.in and Open-Meteo |
| Lyrics | Genius |
Quoted phrases
Wrap terms in double quotes to require an exact phrase match:
"rust async trait" stabilization
Engines that support phrase matching will enforce it; the rest filter client-side.
Time filters
Add a time constraint from the settings or URL parameter time=:
| Value | Window |
|---|---|
day or d | Past 24 hours |
week or w | Past 7 days |
month or m | Past 30 days |
year or y | Past 365 days |
Example: /search?q=linux+kernel&time=week
Bang commands
Start your query with ! followed by a shortcode. Bangs come in three flavors.
Redirect bangs
These take you directly to the target site. No 4got results page.
| Bang | Target |
|---|---|
!g | |
!d or !ddg | DuckDuckGo |
!b | Brave Search |
!w | Wikipedia |
!yt | YouTube |
!gh | GitHub |
!r | |
!so | Stack Overflow |
!a | Amazon |
!imdb | IMDb |
!maps | OpenStreetMap |
!nix | NixOS Packages |
!arch | Arch Linux Packages |
!aur | AUR |
!crates | crates.io |
!npm | npm |
!pypi | PyPI |
!mdn | MDN Web Docs |
Example: !gh rust async runtime opens GitHub search for “rust async runtime”.
Engine bangs
These run the search through 4got but force results from a single engine.
| Bang | Engine |
|---|---|
!brave | Brave |
!startpage | Startpage |
!mojeek | Mojeek |
!marginalia | Marginalia |
!wiby | Wiby |
!hackernews or !hn | Hacker News |
!youtube | YouTube |
!soundcloud or !sc | SoundCloud |
!flickr | Flickr |
!pexels | Pexels |
!yandex | Yandex |
!qwant | Qwant |
!bing | Bing |
!baidu | Baidu |
!yahoo | Yahoo |
!wikipedia or !wiki | Wikipedia |
!google | |
!duckduckgo | DuckDuckGo |
Oracle bangs
These redirect to an external instant-answer service.
| Bang | Service |
|---|---|
!wolfram or !wa | Wolfram Alpha Short Answers |
!ddg-ia | DuckDuckGo Instant Answers API |
Oracles (instant answers)
Oracles are local computations or lightweight API calls that produce an answer box above the search results. No upstream search engine is involved. They trigger automatically when your query matches a pattern.
Calculator
Evaluates arithmetic expressions inline.
2 + 2 → 4
15% of 200 → 30
sqrt(144) → 12
2^10 → 1024
sin(1.5) → 0.9974949866
log10(1000) → 3
7 mod 3 → 1
Supported functions: sqrt, cbrt, sin, cos, tan, asin, acos, atan, log (base 10), log2, log10, ln, abs, ceil, floor, round, exp.
Supported operators: +, -, *, /, %/mod, ^/**.
Unit converter
Converts between units of length, weight, volume, speed, and temperature.
10 km to miles → 6.2137119224 miles
72 fahrenheit to celsius → 22.2222222222 celsius
5 gallons to liters → 18.92705 liters
100 kph to mph → 62.1371192237 mph
Supported units:
- Length: km, m, cm, mm, mi, yd, ft, in
- Weight: kg, g, lb, oz, st
- Volume: l, ml, gal, qt, pt, cup, floz
- Speed: mph, kph, mps, knot
- Temperature: celsius/c, fahrenheit/f, kelvin/k
Timezone
Shows current time in a city or IANA timezone.
time in tokyo → Monday, May 12, 2026 2:30 AM JST
time in UTC → Sunday, May 11, 2026 5:30 PM UTC
time in America/Chicago → Sunday, May 11, 2026 12:30 PM CDT
Knows 70+ cities including Tokyo, New York, London, Paris, Berlin, Sydney, Mumbai, Shanghai, Seoul, Dubai, and more.
Base converter
Converts between decimal, hex, binary, and octal.
0xff in decimal → 255
255 in hex → 0xFF
255 in binary → 0b11111111
0b1010 in decimal → 10
0o77 in hex → 0x3F
Color converter
Converts between hex, RGB, and HSL. Shows a color swatch.
#FF5500 → rgb(255, 85, 0) · hsl(20, 100%, 50%)
rgb(0, 128, 255) → #0080FF · hsl(210, 100%, 50%)
hsl(120, 100, 50) → #00FF00 · rgb(0, 255, 0)
Also accepts 3-digit hex (#F50).
Currency converter
Live exchange rates via exchangerate.host.
100 usd to eur → 92.15 EUR
50 gbp in jpy → 9,432.50 JPY
Uses standard 3-letter ISO currency codes (USD, EUR, GBP, JPY, BTC, etc.).
IP geolocation
Look up the physical location and ISP of a public IP address.
8.8.8.8 → Mountain View, California, United States · ISP: Google LLC
1.1.1.1 → Los Angeles, California, United States · ISP: Cloudflare
Also responds to where is 8.8.8.8 and geolocate 1.1.1.1.
Private IP helper
Detects private/reserved IPs and tells you what range they belong to.
192.168.1.1 → 192.168.1.1 is a private/reserved address in range 192.168.0.0/16 (Class C private)
Reverse DNS
Looks up PTR records.
rdns 8.8.8.8 → dns.google
reverse dns 1.1.1.1 → one.one.one.one
nslookup 8.8.4.4 → dns.google
DNS lookup
Type a bare domain name (or prefix with dig/dns) to see its A, AAAA, MX, and TXT records.
example.com → A 93.184.216.34, MX 0 ., TXT "v=spf1 -all"
dig archlinux.org → A 95.217.163.246, MX 10 mail.archlinux.org, ...
Package versions
Check the latest version of an npm or PyPI package.
latest lodash → lodash 4.17.21
npm express → express 4.19.2
pip requests version → requests 2.31.0 — Python HTTP for Humans
pypi flask → Flask 3.0.2 — ...
Radio stations
Find internet radio stations by location or genre.
radio tokyo → [list of stations with inline audio players]
fm berlin → [list of stations with inline audio players]
Results come from radio-browser.info.
Translation
Translate text explicitly or automatically.
translate hello world to french → bonjour le monde
translate こんにちは to english → hello
Auto-translation: if you search in a language that isn’t in your known_languages list, 4got translates the query and shows the translation in an oracle box above the results.
Translation backends rotate by priority: DeepL, Papago (CJK), Lingva, NLLB, Microsoft. Rate limits are per-cookie. See translation.kdl for configuration.
Wolfram Alpha
Queries the Wolfram Alpha Short Answers API. Requires an API key (server-level or per-user via the apikey_wolframalpha cookie).
population of france → 67.75 million people (2023)
distance earth to mars → 225 million km (average)
Trivial/conversational queries (greetings, etc.) are suppressed. Negative results are cached for 30 days to avoid redundant API calls.
DuckDuckGo Instant Answers
Returns definitions, abstracts, and factual answers from DuckDuckGo’s Instant Answer API.
define serendipity → [Definition from Wiktionary]
albert einstein → [Wikipedia abstract]
DDG IA and Wolfram are tried in that order. The first one that returns a non-empty answer wins.
AI research agent
When you search the same query twice (or click the “Research” button), 4got activates the AI research agent. This is a tool-using LLM that:
- Reads the top search results
- Fetches and analyzes the linked pages
- Runs code in a sandboxed Lua environment if needed
- Streams findings to you in real time via the oracle box
The agent shows an ETA timer and intermediate results as it works. When done, the final synthesized answer replaces the stream.
The research agent requires server-side configuration (see ai-research.md). Operators choose the LLM provider (Cerebras, OpenRouter, Ollama, or any OpenAI-compatible API) and can restrict access to specific user groups.
Settings
Visit /settings to customize your search experience. All preferences are stored as cookies (nothing server-side unless you enable history).
| Setting | Cookie | What it does |
|---|---|---|
| Safe search | safesearch | 1 (on) or 0 (off) |
| Temperature unit | temp_unit | C or F |
| Region | region | ISO country code hint sent to engines (e.g. us, de, jp) |
| Engine badges | badges | always (show source badge on every result), multiple (only when >1 engine), never |
| Fanout hard window | hard_window | Maximum ms to wait for engine responses (default 1000) |
| Fanout idle timeout | idle_timeout | Stop waiting if no new results arrive in this many ms (default 500) |
| Cache max age | cache_max_age | Cache TTL in minutes (default 1440) |
| Priority engine | priority_engine | Engine that must respond before results are shown |
| NSFW banners | nsfw_banners | Show NSFW banners on the landing page |
| History | history_enabled | Enable/disable search history recording |
| Browser history | browser_history | Store search history in browser localStorage |
| Server history | server_history | Store search history on the server |
| Share searches | share_searches | Allow searches to appear in the trending/live feed |
| Live feed | live_feed | Show live search feed on the trending page |
| Autocomplete | autocomplete | Enable/disable search suggestions (disable by setting to off) |
| Show scores | show_scores | Show ranking scores next to results |
| Prefer indie | prefer_indie | Boost results from independent/small web sites |
| Progressive SSE | progressive_sse | Stream results as they arrive via server-sent events |
| Speedtest graph | speedtest_graph | Show engine response time graph |
| Smart tab oracles | smart_tab_oracles | Show oracle answers in non-web category tabs |
| Show favicons | show_favicons | Display site favicons next to results |
| Search method | search_method | POST or GET for the search form |
| Bookmarks | bookmark_mode | Enable/disable bookmark saving |
| Show filters | show_filters | Show time/region filter bar on results page |
| Disabled engines | disabled_<category> | Per-category comma-separated engine IDs to skip |
| Engine weights | weight_<engine> | Override ranking weight per engine (higher = more influence) |
| URL rewrites | rewrite_<service> | Per-service hostname overrides (YouTube, Reddit, Twitter, etc.) |
| Archive links | archive_links | Show Wayback Machine archive links on results |
| Known languages | known_languages | Languages you read, comma-separated ISO 639-1 codes (controls auto-translation) |
| Tracker detection | tracker_detection | Highlight known tracking domains in results |
| Translation privacy | translation_private | Avoid sending translations through third-party APIs |
| Hidden tabs | hidden_tabs | Comma-separated list of category tabs to hide |
| AI stream | ai_stream | Enable/disable streaming for AI research results |
| Research debug | research_debug | Show debug info during AI research |
| Wolfram API key | apikey_wolframalpha | Personal Wolfram Alpha API key (uses server key if empty) |
Settings can also be set via URL parameters on /settings?nsfw=yes®ion=de&... to create a shareable preferences link.
URL rewriting
By default, 4got rewrites result URLs to point at privacy-friendly frontend alternatives:
| Service | Default rewrite |
|---|---|
| YouTube | yewtu.be (Invidious) |
| old.reddit.com | |
| Twitter/X | nitter.net |
| Medium | scribe.rip |
| Imgur | rimgo |
| TikTok | ProxiTok |
| Fandom | BreezeWiki |
Override any rewrite in settings with a custom hostname, or set it to off/none/disabled to keep original URLs.
Privacy features
- No tracking. No analytics scripts, no user profiles, no fingerprinting.
- No accounts. Preferences are stored as cookies in your browser, never on the server.
- Proof-of-work gate. First-time visitors solve a visual captcha (IQ test). Returning visitors solve a client-side PoW challenge. This keeps bots and scraper farms out without requiring JavaScript tracking.
- URL rewriting. Results from major trackers are rewritten to privacy frontends (see above).
- Tracking parameter stripping. UTM tags, fbclid, gclid, and other tracking parameters are removed from all result URLs.
- Image proxy. Images can be proxied through the 4got server to prevent your IP from leaking to image hosts.
- No server-side history by default. Search logging is off unless you explicitly enable it in settings.
- OpenSearch support. Add 4got as a browser search engine via
/opensearch. - RSS feeds. Subscribe to search results via
/feed/search?q=...without visiting the site.
API
4got exposes a JSON API at /api/v1/search?q=QUERY&cat=web. Per-category endpoints also exist: /api/v1/web, /api/v1/images, etc. See /api on your instance for full documentation, or /api/openapi.yaml for the OpenAPI 3.0 spec.
Keyboard shortcuts
- Enter — Search
- Enter twice (same query) — Trigger AI research agent
- Tab — Cycle category tabs