The monixcode command

Everything you can do from a terminal without opening the interface: start and stop the server, update, activate, diagnose, export, and connect other coding agents.

Starting

monixcode            # start the server if needed, then open the interface
monixcode attach     # open the interface against a server that is already running

monixcode tui does the same as plain monixcode.

Plain monixcode is the command you use every day. If no server is running it starts one in the background, then opens the interface. When you quit the interface the server keeps running on purpose, so scheduled tasks and GitHub polling continue. Stop it yourself with monixcode stop.

Run it from your project folder. An unknown word is an error with the usage text, never a silent start. If the running server comes from another version than the command you typed (for example after an update), monixcode and monixcode attach refuse with a hint to restart the server instead of connecting to it. monixcode attach without a running server is an error.

All commands

CommandWhat it does
monixcode server [start|stop|restart|status|run]Manage the background server. start is the default. status shows whether it runs and whether it matches the installed version. run keeps it in the foreground so you can watch it; stop it with Ctrl + C. Any other word is an error.
monixcode restartStop the server and start it again.
monixcode stopStop the server. Scheduled tasks do not run until it is started again.
monixcode update [--check|--force]Install a newer release your licence covers, then restart the server. --check only reports. --force installs even if you are up to date. Projects, settings and memory are untouched. See Licence & updates.
monixcode license activateActivate this machine without the interface. Reads three lines from standard input: email, password, licence code.
monixcode license moveMove your licence to this machine. Reads two lines: email, password.
monixcode license reloginSign this machine in again after monixcode logout, without a new licence code. Reads two lines: email, password.
monixcode logoutRelease this machine's seat and forget the licence here. You can sign in again from the interface or with license relogin.
monixcode doctorCheck the installation: the programs, whether the server answers and which version, whether the chosen provider has credentials, where the logs are, which language servers and semantic search are available.
monixcode export [file|-]Write every project's metadata and memory as readable JSON. Without a file, or with -, to standard output. Works without a licence — your data stays yours.
monixcode logs [server|tui] [-f] [-n N]Show the end of the logs: the server's, the interface's, or both. -f follows them, -n N sets the number of lines (default 120, or 80 with -f).
monixcode service [install|uninstall|status]Start the server at login and restart it if it dies, using launchd on macOS and a user service on Linux. install is the default. This is what makes every morning at nine true after a reboot. On Linux, to run while you are logged out, also run loginctl enable-linger once.
monixcode integrate <agent>Connect Monixcode's project memory to Claude Code, Codex, opencode or Claude Desktop (claude, codex, opencode, claude-desktop), or show status (the default without an argument). Access per project is never granted here, only in the interface. Options: --curator also adds the curator tools, --dry-run shows the change without making it, --uninstall removes only Monixcode's entries. See Other coding agents.
monixcode mcp [--curator]The memory server those agents start themselves. You normally never run it by hand.
monixcode hookThe entry point the connected agents' hooks call. Also not meant to be typed.
monixcode versionPrint the version. --version and -v do the same.
monixcode helpPrint the usage text. --help and -h do the same.

Why the licence commands read standard input

A password on the command line shows up in the process list, and one in an environment variable is visible to other programs. So the licence commands take their input from a pipe or a file, never from arguments:

printf '%s\n' "$EMAIL" "$PASSWORD" "$LICENCE_CODE" | monixcode license activate

Typed straight into a terminal they refuse and point you to plain monixcode, whose interface asks for the same details.

Environment variables

You rarely need any of these.

VariableWhat it does
MONIXCODE_PORTTalk to the server on this local port instead of the one it announced. Useful for a second, separate instance. Pair it with MONIXCODE_TOKEN if that server requires one.
MONIXCODE_TOKENThe access token for the server named by MONIXCODE_PORT. Without MONIXCODE_PORT the command finds the running server and its token on its own.
MONIXCODE_HOMEKeep Monixcode's data (memory, sessions, logs) in this folder instead of the default under your home directory.
MONIXCODE_COMMAND_NAMEThe name Monixcode prints in hints and usage text, if you installed the command under another name.
MONIXCODE_NO_AUTOSTART=1Never start a server from monixcode mcp or monixcode hook; only use one that is already running. See Other coding agents.

Exit codes

Zero means success; anything else is a problem a script can act on.

CommandNon-zero when
anyan unknown command or option, or an error such as no server for export and attach
server statusthe server is not running
stopthe server still answers ten seconds after it was told to stop. "No server is running" is not a failure.
doctorthe installation is incomplete
update --checkthe check itself failed. "Up to date" and "your licence does not cover a newer version" are answers, not failures, and exit with zero.
license ...the activation was refused; the reason is printed