inferix-code
v0.6.1
Published
INFERIX CODE — a terminal coding agent that builds whole projects
Maintainers
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-codeOn 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.cmdThe -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-codeSign 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
editon 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 | shand 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, projectWithout 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 runChange 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, checkpointsAn 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