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

inferix-code

v0.6.1

Published

INFERIX CODE — a terminal coding agent that builds whole projects

Readme

INFERIX CODE

A terminal coding agent that builds whole projects. It runs locally, edits the directory you launch it in, and talks to the existing Inferix API — the server is unchanged.

  ██████████  ██      ██  ██████████  ██████████  ████████    ██████████  ██      ██
      ██      ████    ██  ██          ██          ██      ██      ██        ██  ██
      ██      ██  ██  ██  ████████    ████████    ████████        ██          ██
      ██      ██    ████  ██          ██          ██  ██          ██        ██  ██
  ██████████  ██      ██  ██          ██████████  ██    ████  ██████████  ██      ██

    ████████    ██████    ████████    ██████████
  ██          ██      ██  ██      ██  ██
  ██          ██      ██  ██      ██  ████████
  ██          ██      ██  ██      ██  ██
    ████████    ██████    ████████    ██████████

Install

npm install -g inferix-code

On Windows PowerShell, use Node.js 20 or newer and run:

npm.cmd install -g inferix-code
if ($LASTEXITCODE -eq 0) {
    $npmBin = (npm.cmd config get prefix).Trim()
    $env:Path = "$npmBin;$env:Path"
    & (Join-Path $npmBin 'inferix-code.cmd') --version
}
inferix-code.cmd

The -g installs the terminal command globally. Without it, npm installs a local project dependency. The .cmd commands avoid PowerShell script-policy errors without changing your execution policy. If a new terminal cannot find the command, run & (Join-Path (npm.cmd config get prefix).Trim() 'inferix-code.cmd'). If Node was just installed, reopen PowerShell before running these commands.

Then, from any project directory:

inferix-code

Sign in on first run with /login — it opens your browser, you approve, and the key is stored in your user profile (never in the project).

It keeps itself current: on start it checks the registry at most once every six hours, in the background, and installs a newer version when there is one. /update does it now; INFERIX_NO_UPDATE=1 skips it.

Dictation needs ffmpeg. You do not have to install it yourself — the first /voice installs it through winget, Homebrew or your package manager, then finds your real microphone. inferix-code install-deps does it up front.

What it does

Describe a feature, an app, or a whole project and it plans, writes every file, runs the build, reads the errors, and fixes them before telling you it's done.

  • Works continuously. It plans, writes, runs, reads the real output and keeps going until the task is actually finished — not one reply and stop.
  • Scratch pad. Big tasks get a live plan panel that ticks over as steps complete, the same mechanism the desktop app uses.
  • Real edits. Surgical edit on existing files with a coloured +/− diff for every change.
  • Verifies before claiming. Detects your build, type-check and test commands and runs them.
  • Refuses to wreck things. Disk formats, recursive root deletes, curl | sh and force pushes are blocked outright, regardless of permission mode.
  • Stays in the workspace. Every path is resolved and checked; nothing escapes the directory you launched in.
  • Keeps your secrets. .env, private keys and credential files are never read, and anything that looks like a token is masked out of file contents and command output before it can be uploaded.
  • Talk to it while it works. Type at any time; your message joins the running task at its next step instead of being thrown away or starting a second agent.
  • Stops when you say stop. Esc kills the request, the commands it started, and anything queued. Nothing keeps running in the background.
  • Paces itself. A client-side rate limit keeps a runaway loop from emptying your allowance in a couple of minutes.

Commands

| | | |---|---| | /model | switch model — the whole interface recolours to match | | /effort | low, medium, high — how hard it works and how many turns it gets | | /permissions | plan-only, ask first, auto-edit, or full auto | | /login /logout | browser sign-in, or forget the stored key | | /status | account, plan, model, server, version, dictation and this session at a glance | | /usage | limits, a 14-day code graph, your writing streak | | /search <query> | search the public internet with source links and readable page evidence | | /review | read your pending changes and report the real problems, without editing | | /fix | run the build and tests, then fix whatever fails until they pass | | /commit | write a proper commit message from the diff and commit | | /pet | a companion that reacts to the work | | /workspace | choose the folder it works in — opens a folder picker | | /voice /files | dictate a prompt · what changed this session | | /goal | a standing objective it keeps working toward across tasks | | /skill | teach it a procedure; it is applied when a request relates to it | | /remember | facts it should always know, stored locally | | /undo | revert every file the last task wrote or ran (or press Esc three times) | | /scratch | the live plan for the current task | | /diff /verify | review pending changes · run the checks | | /proof | tamper-evident task receipt: actions, changed files, verification and undo coverage | | /paste /attach | attach a screenshot for the model to look at | | /init /memory | write an INFERIX.md, or show the instructions in force | | /clear /compact /resume | clear the conversation · summarise it · reopen an earlier session | | /swarm | an architect, a coder and a reviewer on one task — only the coder may write | | /dash | file heatmap, live token cost, and the plan it is working through | | /say | hands free: it reads its replies aloud and takes yes/no out loud | | /connector | connect your accounts — GitHub for pushes and pull requests | | /watch | run the project's checks after every edit; a failure gets a fix you accept or reject | | /sandbox | run a snippet in a throwaway folder — nothing touches your project | | /roast | brutally honest & witty code review with funny banter and actionable fixes | | /architect | generate architecture blueprints, ASCII diagrams, and component interactions | | /refactor | spot anti-patterns, code smells, and suggest clean modern refactorings | | /explain | interactive code walkthrough with visual step-by-step traces | | /testgen | generate comprehensive unit/integration test suites for uncovered logic | | /update | check for a new version and install it (/update force to reinstall) |

The web is not a command. When the agent needs something it cannot see — a library's current API, an error nobody recognises, a version detail — it searches on its own and reads the actual pages, not just the links.

Nor is searching your own code. INFERIX CODE indexes the project locally the moment it opens — every function, class, type, route and test, with its file and line. Asking "where is the authentication handshake handled" is answered from that index in milliseconds, for nothing, instead of by reading files until one of them looks right. The index is cached and rebuilt only when the workspace actually changes.

For a plan before any edits, switch to plan-only with /permissions read-only and describe what you want: it explores and proposes without writing anything.

Keys

| | | |---|---| | Enter | send — while it works, your message is queued for the next step | | Ctrl+J / Alt+Enter | new line | | Esc | stop the task and everything it started, or clear the composer | | Shift+Tab | cycle permission mode | | Ctrl+V | attach the image on your clipboard | | ↑ ↓ | previous prompts | | Ctrl+C twice | quit |

Prefix a line with ! to run a shell command yourself, or # to save a project note the agent reads every session. Drag an image file onto the window, or write @shot.png, to attach it.

Plans and usage

Inferix Code is a paid feature — the Free plan cannot run it.

It has its own allowance, separate from the desktop app's, because a coding agent burns far more tokens per task: it reads files, runs builds, reads the output and iterates. The allowance is a multiple of the Free plan's baseline:

| plan | Inferix Code allowance | daily / weekly | |---|---|---| | Free | — | not available | | Starter | 8× | 16,000 / 40,000 | | Pro | 15× | 30,000 / 75,000 | | Teams | 30× | 60,000 / 150,000 | | Business | 60× | 120,000 / 300,000 | | Enterprise | unlimited | unlimited |

It spends your plan's daily and weekly usage and never touches purchased credits — a long run left unattended should not quietly drain a balance you paid for. When an allowance runs out it stops and says so; it refreshes on its own. /usage shows where you are.

Models

Sonnet 4.6 · Opus 4.6 · ChatGPT 5.5 · ChatGPT 5.4 · Gemini 3.8 Flash · DeepSeek V4 Pro · Kimi K3 · Fable 5

Each has its own mascot and accent colour; picking one retints the entire interface. Plan gating is enforced server-side — /model shows which plan unlocks each.

Permission modes

| mode | files | commands | |---|---|---| | read-only | never written | never run | | suggest (default) | ask each time | ask each time | | auto-edit | written freely | ask each time | | full-auto | written freely | run freely |

Approving a prompt offers "yes, and don't ask again", which holds for the rest of the session only.

Headless

inferix-code -p "add rate limiting to the login route"
inferix-code exec "fix the failing tests" --yes
inferix-code -p "audit this repo" --json      # newline-delimited JSON
inferix-code doctor                            # check endpoint, key, project

Without a TTY, edits and commands are refused unless you pass --yes — a script that cannot answer a prompt should not silently get full access.

Configuration

Precedence, highest first: --url flag → INFERIX_API_URL → saved config → built-in default (https://inferix-six.vercel.app).

INFERIX_API_URL    INFERIX_API_KEY    INFERIX_MODEL    INFERIX_PERMISSION
INFERIX_HOME       # move the whole data folder
INFERIX_NO_UPDATE  # skip the version check for one run

Change the server with inferix-code endpoint <url> (or endpoint default).

Where your data lives

Nothing is written inside your project. Everything lives in one hidden folder under your profile, keyed by workspace path:

~/.inferix/craft.json                settings and the stored key
~/.inferix/memory.json               facts you asked it to remember everywhere
~/.inferix/stats.json                usage history for /usage
~/.inferix/projects/<project>/       sessions, goal, skills, checkpoints

An older version kept a .inferix/ folder inside the project; it is moved out automatically the first time you open that project, and the system prompt is stripped from any session file that recorded one. inferix-code where prints them without starting up.

Session files hold your conversation only — never the agent's briefing, and never a credential: .env, private keys and credential files are refused outright, and tokens found in file contents or command output are masked before anything is sent or stored.

Development

npm run build          # typescript -> dist
npm test               # 10 suites: input, core, protocol, undo, mentions, errors,
                       # safety, context, paths, security, clear, keys, commands
npm run preview full   # fake TTY: splash|session|work|usage|pet|dialogs|picker|full