npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@sylphx/lookout

v0.2.1

Published

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

Readme

Lookout

Zero-config (no install)

npx -y @sylphx/lookout

Starts the MCP server on stdio. CLI:

npx -y @sylphx/lookout doctor
npx -y @sylphx/lookout search "local first agents"

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