Skip to content

Repository files navigation

Lookout

The web from your machine.

Lookout is a local-first web instrument for agents and apps: search, fetch, extract, cache with citeable excerpts — no required API key, tiny default install, same API on SDK · CLI · MCP.

Primary competitive anchor: wigolo (learn multi-surface + honesty; do not require multi-GB browser/model warmup).

Product docs

Doc Purpose
docs/POSITIONING.md Strategic positioning
docs/COMPETITIVE.md Peer anchors and wedge
docs/EVIDENCE_CONTRACT.md Evidence = result contract
docs/TOOL_SURFACE.md Few clear tools policy
docs/PRODUCT_INDEPENDENCE.md This repo is SSOT
docs/IPPB.md Independent public product bar
docs/PUBLISH.md npm/git publish status

Agent skill surface

See skills/lookout/SKILL.md.

Why Lookout (vs multi-GB “local web” stacks)

Typical agent web path Lookout
Paid search API keys Default public adapters, $0/query
Multi-GB browser + model warmup Tiny default — HTML search/fetch/extract
Opaque snippets Cite spans + extract route + warnings
One mega-tool Clear tools: search · fetch · extract · cache (+ advanced crawl)

Primary competitive anchor: wigolo — learn multi-surface honesty; do not require heavy browser/model installs on the default path.

Evidence is a result contract (spans, routes, warnings) — not a tool named evidence_first.

Install (30 seconds)

npm install -g @sylphx/lookout
# brand bin
lookout doctor
lookout search "model context protocol"

Claude Code:

claude mcp add lookout -- npx @sylphx/lookout

Install (dev)

git clone https://github.com/SylphxAI/lookout.git
cd lookout
bun install
./bin/lookout tools
./bin/lookout extract   # via engine with -- see CLI
# CLI
./bin/lookout doctor
./bin/lookout tools
./bin/lookout search "local-first agents"
./bin/lookout fetch https://example.com
./bin/lookout extract https://example.com
./bin/lookout cache stats
./bin/lookout crawl https://example.com --depth 0 --pages 2

# MCP (stdio)
bun src/mcp.ts
# or: ./bin/lookout mcp

SDK

import { Lookout } from '@sylphx/lookout'

const lookout = Lookout.create()
const search = await lookout.search('model context protocol')
const page = await lookout.fetch('https://example.com')
const extracted = await lookout.extract({ url: 'https://example.com' })

Tools (clear, not merged)

Tool Job
web_search Public adapters (DuckDuckGo HTML + Wikipedia + npm registry + HN Algolia), rank fusion, query-term boost, host filters
web_fetch SSRF-safe HTTP(S) fetch, redirects, size limits, cite spans
web_extract Title, description, JSON-LD, tables, spans from HTML/URL
web_cache (advanced) Local disk cache query/stats/clear/prune (LOOKOUT_CACHE_DIR, optional max age)
web_crawl (advanced) Same-origin, depth-limited crawl (not a full-site crawler)
web_research (advanced) Search then fetch/extract top pages with citeable excerpts

Environment

Var Purpose
LOOKOUT_CACHE_DIR Cache directory (default ~/.cache/lookout)
LOOKOUT_CACHE_MAX_AGE_MS Optional max age for search/fetch cache hits
LOOKOUT_LIVE=1 Enable optional live network tests
LOOKOUT_USER_AGENT Optional User-Agent override for fetch
LOOKOUT_FETCH_TIMEOUT_MS Optional fetch timeout (ms)
LOOKOUT_FETCH_MAX_BYTES Optional max response body bytes

Safety

  • Private IPv4/IPv6, localhost, link-local metadata hosts denied
  • Only http/https
  • Redirect cap + response size cap

Family

Citra · Iris · Cue · Prism · Spine · Lookout

Company portfolio knowledge (docs only — not a product monorepo): This repository is product SSOT. Sibling agent tools are separate repositories and are not vendored here.

License

MIT

About

Lookout — local-first web instrument for agents. Search/fetch/extract/cache with citeable excerpts. No required API key. SDK · CLI · MCP.

Resources

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages