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

@infolang/cursor-setup

v0.6.0

Published

Install InfoLang MCP, Cursor hooks, and rules for hosted memory

Readme

@infolang/cursor-setup

Install InfoLang for Cursor in one command: remote MCP, agent hooks, and rules. No IL runtime on your machine.

One-click install (MCP only)

Add to Cursor Add to VS Code

Points the client at https://api.infolang.ai/v1/mcp/ with client-native OAuth (no hand-edited JSON). For hooks, rules, and the usage HUD, use the CLI below.

Quick start (full Cursor setup)

npx @infolang/cursor-setup

Opens browser login (OAuth), stores session + a backup API key in ~/.config/infolang/session.json, and points Cursor at a local MCP proxy on http://127.0.0.1:17342/mcp/ (forwards to https://api.infolang.ai/v1/mcp/).

If OAuth refresh later fails, the proxy automatically uses the backup il_live_* key.

On macOS, setup also installs a LaunchAgent (ai.infolang.mcp-proxy) so the proxy stays up across reboots.

npx @infolang/cursor-setup proxy status   # health check
npx @infolang/cursor-setup proxy install  # re-install LaunchAgent only

Paste-key mode (skip OAuth; write Bearer into mcp.json):

npx @infolang/cursor-setup --key il_live_YOUR_KEY

Installs globally under ~/.cursor/:

| Artifact | Path | |----------|------| | MCP server infolang (tools + usage side panel) | ~/.cursor/mcp.json | | Local token proxy (OAuth) | http://127.0.0.1:17342/mcp/ | | Usage stats (tokens saved, queries) | ~/.config/infolang/mcp-usage-stats.json | | Prompt hooks (retrieve + memorize) | ~/.cursor/hooks.json | | Rules | ~/.cursor/rules/infolang-memory.mdc, infolang-output-brevity.mdc |

InfoLang Usage button (Tools & MCP)

Click InfoLang Usage under Settings → Tools & MCP → infolang to reopen the floating overlay (top-right HUD). Same as infolang_open_overlay or cursor-setup overlay.

Requires OAuth session (npx @infolang/cursor-setup once). Close the HUD with × or Esc.

Setup also launches the floating overlay automatically (top-right HUD):

  • InfoLang Usage button in Tools & MCP reopens it after close
  • Frosted glass card — Saved (tokens + % less input; $ in tooltip only) · Used · Left + query progress
  • Polls http://127.0.0.1:17342/usage every 30s
  • Token savings are this device · this UTC month; Used/Left prefer account D1 ledger when available
  • Draggable; stays above the editor
  • Close with the × button or Esc — relaunch with cursor-setup overlay
# Restart overlay only (requires OAuth session from setup)
npx @infolang/cursor-setup overlay

# Close overlay
npx @infolang/cursor-setup overlay stop

# Or launch the HUD package directly
npx -y @infolang/overlay

# First-time: sign in once (creates ~/.config/infolang/session.json)
npx @infolang/cursor-setup

HUD lives in @infolang/overlay (Electron). Headline is tokens saved and measured % less input (tokens_saved / baseline_tokens). Dollar estimate stays in the tooltip only (API list price for the last model on InfoLang’s LLM proxy — Fable 5, Opus, Sonnet, GPT-5.x, Grok 4.5, etc.). Fallback rate: $3 / 1M input. Override with IL_TOKEN_PRICE_PER_MTOK or token_price_per_mtok / model in ~/.config/infolang/il_config.json.

Team / repo setup

cd your-repo
npx @infolang/cursor-setup --project

Writes the same files under ./.cursor/ so you can commit hooks + rules for the team. Session secrets stay in ~/.config/infolang/.

Flags

| Flag | Effect | |------|--------| | (default) | Browser OAuth + local proxy + backup API key | | --oauth | Same as default (compat alias) | | --key <il_live_…> | Skip OAuth; paste key into mcp.json | | --url <url> | Dedicated MCP endpoint (key mode / enterprise) | | --project | Also install into ./.cursor/ | | --global-only | Only ~/.cursor/ (default) | | --no-hooks | Skip hooks.json | | --no-rules | Skip .mdc rules | | --no-overlay | Skip launching the usage HUD (OAuth) | | --overlay / overlay | Launch or restart the usage HUD only | | --dry-run | Print sample JSON; no writes | | --no-proxy-service | OAuth only: skip macOS LaunchAgent (one-shot background process) | | workspace link\|sync\|watch\|status\|unlink | Local Obsidian vault / folder sync (see below) |

Workspace sync (local Obsidian vault / markdown folder)

cursor-setup workspace <verb> syncs a local Obsidian vault (or any markdown folder) into hosted InfoLang memory via manifest-diff sync — only changed files/chunks are re-sent. Thin wrapper over @infolang/setup-core/lib/{sync,vault-parse,vault-ignore,vault-link,workspace-cli}.mjs.

cursor-setup workspace link ~/Notes --include "Projects/**" --include "Areas/**"
cursor-setup workspace sync            # first sync always previews (dry-run)
cursor-setup workspace sync --confirm  # actually sends
cursor-setup workspace watch           # sync on file change
cursor-setup workspace status
cursor-setup workspace unlink <name>

Privacy, non-negotiable: workspace link requires explicit --include <glob> (repeatable, never whole-vault by default; omit on a TTY to pick folders interactively). .obsidian/ and every binary/attachment are always excluded, and every sync summary reports what was skipped and why. The first workspace sync on a fresh link is always a dry-run (files/chunks/bytes/destination preview) until you pass --confirm; link and the first sync print a disclosure of what leaves the device, where it goes, and how to remove it later.

Parsing coverage: wikilinks (including multiple [[links]] inside one frontmatter field), embeds (![[...]], tagged distinctly from links), YAML frontmatter → tags/metadata, .canvas (JSON Canvas, never treated as markdown), and Dataview inline fields (key:: value).

Known limitation: production /v1/execute has been observed to reject a batched remember op (400 unknown op); sync falls back to bounded-concurrency individual /v1/remember calls automatically. Namespace isolation is via the X-InfoLang-Workspace-Id header only — RememberRequest.namespace in the body is known to be ignored by the managed edge. See @infolang/setup-core/lib/vault-transport.mjs.

Pin an InfoLang workspace

Accounts can own multiple workspaces (memory banks). Pin one per repo/Cursor project:

  1. Copy the UUID from Console → Workspaces (copy icon).
  2. Mint a key that allowlists it: API keys.
  3. Set in the project:
// il_config.json
{ "workspace": "YOUR-WORKSPACE-UUID" }

Or export INFOLANG_WORKSPACE=YOUR-WORKSPACE-UUID, or add MCP header X-InfoLang-Workspace-Id. Names can collide; always pin by ID.

With --key mode you can also put the header in mcp.json next to Authorization.

After install

  1. Restart Cursor
  2. Settings → Models → Override Base URL — e.g. https://api.infolang.ai/v1
  3. Settings → Hooks — confirm sessionStart and stop entries
  4. Do not add provider API keys in Cursor — the LLM proxy uses your console vault keys.
  5. Pin a workspace (above) if the account has more than one.

See docs/CURSOR_SETUP.md and Workspaces.

Local dev

cd packages/setup-core
npm install
npm test

cd ../overlay
npm install
npm run build
npm test

cd ../cursor-setup
npm install
npm test
node bin/cursor-setup.mjs --dry-run --key il_live_test123
npm link && cursor-setup --help
node bin/cursor-setup.mjs overlay   # launch HUD (OAuth session required)

cursor-setup depends on @infolang/setup-core via file:../setup-core in the services monorepo (scripts/publish-npm-packages.sh rewrites to ^semver for npm).

Publish

Publish @infolang/overlay and @infolang/setup-core first (core builds dist/ gateway bundles via prepare), then this package. Prefer the ordered helper (rewrites file:^semver for the tarball only, restores afterward):

# from services repo root
scripts/publish-npm-packages.sh
# or:
scripts/publish-npm-packages.sh cursor-setup

See also docs/CURSOR_SETUP.md, CLAUDE_SETUP.md, MCP_SETUP.md.