Mthandizi Code

An AI coding agent in your terminal, paid in kwacha. Start it in your project folder and type what you want to build or change: it reads the project, proposes each change and command for your yes, and keeps going with you until you are happy.
Mthandizi Code is in beta and open to everyone with a paid plan. Things may still change; if something goes wrong, type /report and send it to us (see Reporting a problem).

What you need

  • A paid Mthandizi plan. Free plans cannot run the agent; see the plans.
  • Node.js 22.13 or newer. Type node --version in a terminal to check; you can get Node.js from nodejs.org.
  • A terminal on Windows, macOS or Linux (WSL included), and an internet connection.

Install

Install Node.js 22.13 or newer for your system (below), then install Mthandizi Code with the same command everywhere:

npm install -g mthandizi-code

Then check it is there:

mthandizi-code --version

Windows

Install Node.js with the Windows installer (LTS) from nodejs.org, or in PowerShell:

winget install OpenJS.NodeJS.LTS

Open a new PowerShell or Command Prompt window, check node --version, then run the install command above. If PowerShell says running scripts is disabled on this system, use Command Prompt instead, or allow scripts for your own account only:

Set-ExecutionPolicy -Scope CurrentUser RemoteSigned

macOS

Install Node.js with the macOS installer (LTS) from nodejs.org, or with Homebrew:

brew install node

Then run the install command above in Terminal. If npm says EACCES (permission denied), do not use sudo: install Node.js with nvm instead, as for Linux below, so global installs go into your own folder.

Linux

Your distribution's Node.js is often too old. Install nvm, the Node version manager (follow the steps at github.com/nvm-sh/nvm), open a new terminal, then:

nvm install 22

Then run the install command above, without sudo. If npm says EACCES (permission denied), Node.js was installed for the whole system: use nvm as above.

WSL (Windows Subsystem for Linux)

Mthandizi Code works inside WSL as on Linux: install Node.js inside WSL with the Linux steps, because Node.js installed on Windows is not used inside WSL. Keep your projects in WSL's own folders (for example ~/my-app), not under /mnt/c, which is much slower. When you sign in, open the printed address in your Windows browser.

Sign in

mthandizi-code login

It prints an address and a code. Open the address in your browser, check that the code matches, and approve. If you start the agent without signing in, it starts this sign-in for you.

On macOS the sign-in is kept in the Keychain and on Windows in the Credential Manager; on Linux and WSL it lasts until you exit. Signing in, checking your account and choosing a model spend no credits.

Your first task

Go to your project folder (or make one for a new project) and start the agent there:

mkdir my-app
cd my-app
mthandizi-code

The first time in a folder it asks whether to trust it: working there sends the code it reads to Mthandizi's AI model, and your answer is remembered for that folder. Then type what you want, for example:

mthandizi-code> Build a small booking page in Flask

Everything you type goes to the agent, and a follow-up carries the earlier messages ("now add a test for it"). /new starts fresh. It works only in the folder you start it in, and refuses your home folder, the top of a drive and system folders.

Changes and commands

Each change is shown before it is written: the whole of a new file, a diff for an edit. Answer y to write it, a to write it and every other change in this task, or anything else for no. A change to a file that decides what commands run (package.json, a Makefile, a CI workflow, a shell script) is always asked about. /undo reverses everything the agent wrote in its last task.

The agent may ask to run a command a project needs: installs, builds, tests, the app itself, git. It shows the exact command and the folder, and nothing runs without your yes. A risky command (deleting files, downloading and running code, administrator rights, reaching outside the folder) runs only if you type yes in full. Ctrl+C (or Esc) stops the agent at any moment.

Commands

Type these at the prompt. Anything else you type goes to the agent.

CommandWhat it does
/helpThis list
/newStart a new conversation; stops background commands
/resume [number]Pick up an earlier conversation in this folder (kept 30 days on this computer)
/undoReverse everything the agent wrote in its last task
/statusFolder, model, data mode and background commands (no network)
/costWhat this session and the last task cost, and your balance
/reportSave a bug report to email us (no code, messages or file names)
/whoamiYour account and credits
/model [name|default]Choose the model the agent uses
/data low|normalUse less mobile data, or normal
/theme [name]Choose how it looks: dark, light, colour-blind friendly, your terminal's colours or none
/limit [MWK|off]Ask before a task goes past a kwacha amount, such as /limit 500
/learn [mode]End each task with a plain explanation of its changes: on, chichewa or off
/loginSign in through your browser
/logoutSign out; stops background commands
/exitLeave (exit and quit work too); stops background commands

/model lists the models your plan can use in Code, with what each one is for and how much it costs, from ●○○ to ●●●; GPT-5.6 Luna is the default. After you choose, it says how many credits a step can hold. Unused credits come back.

/limit 500 asks before a task goes past MWK 500, so a long task never surprises you. /learn on ends each task with a short, plain explanation of what changed and why; /learn chichewa writes it in Chichewa. Both are kept on your computer until you change them.

Type @ and part of a file name to fill in a file from your folder; Up and Down bring back what you typed before. When you leave, it shows what the session changed, ran and cost.

/theme chooses how it looks in your terminal: dark, light, a colour-blind friendly dark or light, your terminal's own colours, or no colour. The picker shows each one on a sample change before you choose, and the first session asks once. Your choice is kept on this computer. --plain and the NO_COLOR setting turn colours off.

Start-up options

OptionWhat it does
-h, --helpShow this help and exit
-v, --versionShow the version and exit
--no-storekeep the sign-in until you exit
--debugadd technical detail to error messages (never secrets)
--low-datause less mobile data (compressed steps, shorter history)
--plainplain text; no colours, interactive menus or live status
--continuepick up the last conversation in this folder
--resumechoose an earlier conversation in this folder to pick up

Picking up later

cd my-app
mthandizi-code --continue

--continue picks up the last conversation in the folder; --resume or /resume lets you choose one. Each conversation is kept on your computer for 30 days, readable by you only, and is never uploaded.

Costs

Each step costs credits. The total so far shows as the agent works, and each task ends with its cost in credits and kwacha. /cost shows what this session and the last task cost, and your balance. When your balance is low it warns you; if your credits run out, the task pauses until your plan's credits renew or you upgrade, and carries on from the same step.

Privacy and safety

  • The agent reads, lists and searches the files of the folder it works in, and sends what it reads to Mthandizi's AI model.
  • Secret files (.env, keys, .npmrc and the like) are never read, and lines that look like passwords, keys or tokens are withheld before anything leaves your computer.
  • Commands run as you, with your files and your network: this is not a sandbox, and /undo does not reverse what a command changed.
  • Once a day it asks the npm registry for the latest version number, to tell you when an update is out; nothing about you is sent. Set MTHANDIZI_CODE_NO_UPDATE_CHECK=1 to turn it off.

The privacy policy has the full detail.

Using less data

On mobile data, type /data low or start with --low-data: steps are compressed and the history sent is shorter.

Troubleshooting

  • It refuses my folder. Start it inside a project folder, not your home folder or the top of a drive: mkdir my-app and cd my-app.
  • It says another window is using this folder. One window works in a folder at a time; close the other one first.
  • It says my plan isn't a paid one. The agent needs a paid plan: see the plans.
  • The command is not found after installing. Close the terminal and open a new one. If it is still missing, npm's global folder is not on your PATH.
  • A test run found no tests. It says so ("No tests were found, so nothing was checked") rather than reporting success.

Updating and removing

When a new version is out, Mthandizi Code asks at the start: Update now? y/n. Type y and it updates itself and starts the new version; anything else carries on, and it doesn't ask again that day. You can also update by hand:

npm install -g mthandizi-code@latest

To remove it, sign out first so its sign-in is revoked, then uninstall:

mthandizi-code logout
npm uninstall -g mthandizi-code

Reporting a problem

Type /report. It saves a report file with versions, steps, credits and outcomes, and no code, messages, file names, commands or account details. Attach it to an email to support@mthandizi.com with "Beta" in the subject.