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

@simular-ai/sai-mcp

v0.2.3

Published

Sai MCP server — drive your Sai computer-use agent from Claude Code, Codex, or Cursor.

Readme

@simular-ai/sai-mcp

Give your coding agent a computer. This MCP server lets Claude Code, Codex, Cursor or any MCP client hand tasks to Sai, Simular's computer-use agent, #1 on OSWorld 2.0 (73%). Sai uses apps and websites the way a person does, by seeing the screen, clicking and typing, so your agent can get work done where there is no API: web apps behind a login, admin consoles, desktop software, forms with no import. Sai runs on a cloud computer we host; the free plan includes one.

Run a workflow once and Sai can save it as code: later runs replay that code and ask the model only where the screen matters, so they are faster and cheaper, and the agent takes over when the UI changes.

You need Node.js 22.12 or newer and a Sai API key (sapi_…). Sign in at platform.simular.ai and create one under API Keys. It is shown once.

Docs: platform.simular.ai/documentation

When to use Sai

Use Sai when:

  • There is no API, or the API doesn't cover the task: vendor portals, admin consoles, legacy web apps.
  • The task needs a real browser session with someone's accounts. Sign-ins, passwords and phone checks go to the human as an approval link.
  • The work happens in a desktop app, on Windows or macOS.
  • It is a one-off, and a script would cost more to write and keep working than the task itself.
  • You need to see what a real user sees: testing a sign-up flow, reproducing a bug report.
  • It is a workflow you will repeat (see below).

Write code yourself when a documented API or SDK does the job, the data is already local, or you need exact, byte-for-byte output.

Run once, replay as code

  1. Run the task once with Sai.
  2. Ask: Save this as a replayable skill named invoice_export, with vendor and month as parameters.
  3. Next time: Run invoice_export for vendor Acme, month March. Sai replays the code; when a step breaks because the UI changed, the agent takes over.

The research behind it: Neuro-Symbolic Computer Use (Sep 2026). Learned policies cut per-run cost 15–217× and latency 3.4–5.1×, and raised Pass^3 by 3.6–15.8 points over the base agent on OSWorld-Verified and ScienceBoard.

Example tasks

  • Open our staging site in Chrome, sign up with the test Gmail account, click the verification email, and tell me where the flow breaks.
  • Log in to the vendor portal (it has no API) and list last month's invoices with their totals.
  • Enter each row of the uploaded CSV into the supplier form at <url>, which has no import, and report the rows that failed validation.
  • Follow the steps in this bug report in Chrome on Windows and describe exactly what happens at each step.

Install

Replace sapi_YOUR_KEY with your key.

Claude Code

claude mcp add sai -e SAI_API_KEY=sapi_YOUR_KEY -- npx -y @simular-ai/sai-mcp

Optional: install the sai skill, which teaches Claude Code how to run a task from start to finish, including when the MCP server isn't loaded:

npx -y @simular-ai/sai-mcp init-claude            # ~/.claude/skills/sai
npx -y @simular-ai/sai-mcp init-claude --project  # ./.claude/skills/sai

It never overwrites a SKILL.md you edited; --force does.

Codex

codex mcp add sai --env SAI_API_KEY=sapi_YOUR_KEY -- npx -y @simular-ai/sai-mcp

Or in ~/.codex/config.toml:

[mcp_servers.sai]
command = "npx"
args = ["-y", "@simular-ai/sai-mcp"]
# sai_task_wait holds for up to 110 s; Codex's default tool timeout is 60 s.
tool_timeout_sec = 120

[mcp_servers.sai.env]
SAI_API_KEY = "sapi_YOUR_KEY"

Cursor

In ~/.cursor/mcp.json (or .cursor/mcp.json in a project), then restart Cursor:

{
  "mcpServers": {
    "sai": {
      "command": "npx",
      "args": ["-y", "@simular-ai/sai-mcp"],
      "env": { "SAI_API_KEY": "sapi_YOUR_KEY" }
    }
  }
}

The same block works for any client that runs stdio MCP servers.

Try it

Ask your agent something like:

Use Sai to open Notepad on my cloud computer, type "Hello from Sai", and tell me the window title.

Tools

| Tool | What it does | | ------------------ | -------------------------------------------------------------------------- | | sai_machines | Lists your computers. Skip it when you have one. | | sai_models | Lists the models Sai can use on your plan. | | sai_task_start | Hands Sai a task in plain English. Returns a session_id right away. | | sai_task_wait | Waits for progress: running, needs_approval, idle (done) or error. | | sai_task_approve | Answers a permission request: approve, approve_for_task or deny. | | sai_task_abort | Stops a task. | | sai_upload | Uploads a local file so a task can use it. |

A task keeps running on the computer between calls. When Sai asks for something only you can do, such as signing in to an account, your agent gives you a link to finish it and keeps waiting. Sai remembers earlier tasks on the same computer; new_session: true starts fresh.

There is no screenshot tool: Sai sees the screen itself and reports in text.

Watch Sai work

Each task comes with a live view: the computer's screen, Sai's steps, permission requests you can answer, and the result.

  • Apps that show MCP Apps (Claude desktop and web, ChatGPT, Cursor, VS Code): the view appears in the conversation under the task. In Claude, Open in a window pops it out so it stays in sight while you chat.
  • Everywhere else (Claude Code, Codex): your agent gives you a watch_url link to the same view, served by this server on your own computer (127.0.0.1). Your API key never reaches the browser. Codex shows the view inline but keeps it offline, so open the link for the live screen.
  • Or open the Playground.

One view watches a computer at a time. If another one takes over the screen, the view says so and offers Watch here.

Environment

| Variable | Required | Meaning | | ---------------- | -------- | -------------------------------------------------------------------- | | SAI_API_KEY | yes | Your Sai API key (sapi_…). | | SAI_PUSH | no | 1 turns on Claude Code channels (below). Leave it unset otherwise. | | SAI_LOCAL_VIEW | no | 0 turns off the local watch_url page. |

Claude Code channels (research preview)

With channels, results are pushed into your Claude Code session instead of your agent polling for them, so it can carry on with other work during a long task. Only Claude Code supports this; Codex and Cursor poll, which works everywhere.

claude mcp add sai -e SAI_API_KEY=sapi_YOUR_KEY -e SAI_PUSH=1 -- npx -y @simular-ai/sai-mcp
claude --dangerously-load-development-channels server:sai

Only set SAI_PUSH=1 together with that flag. Without it, pushed results are dropped and your agent is told not to poll.

Support

[email protected]