The nemocode 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

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

nemocode tui does the same as plain nemocode.

Plain nemocode 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 nemocode 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), nemocode and nemocode attach refuse with a hint to restart the server instead of connecting to it. nemocode attach without a running server is an error.

All commands

CommandWhat it does
nemocode 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.
nemocode restartStop the server and start it again.
nemocode stopStop the server. Scheduled tasks do not run until it is started again.
nemocode 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.
nemocode license activateActivate this machine without the interface. Reads three lines from standard input: email, password, licence code.
nemocode license moveMove your licence to this machine. Reads two lines: email, password.
nemocode license reloginSign this machine in again after nemocode logout, without a new licence code. Reads two lines: email, password.
nemocode logoutRelease this machine's seat and forget the licence here. You can sign in again from the interface or with license relogin.
nemocode 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.
nemocode 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.
nemocode 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).
nemocode 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.
nemocode integrate <agent>Connect Nemocode'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 Nemocode's entries. See Other coding agents.
nemocode mcp [--curator]The memory server those agents start themselves. You normally never run it by hand.
nemocode hookThe entry point the connected agents' hooks call. Also not meant to be typed.
nemocode versionPrint the version. --version and -v do the same.
nemocode 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" | nemocode license activate

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

Environment variables

You rarely need any of these.

VariableWhat it does
NEMOCODE_PORTTalk to the server on this local port instead of the one it announced. Useful for a second, separate instance. Pair it with NEMOCODE_TOKEN if that server requires one.
NEMOCODE_TOKENThe access token for the server named by NEMOCODE_PORT. Without NEMOCODE_PORT the command finds the running server and its token on its own.
NEMOCODE_HOMEKeep Nemocode's data (memory, sessions, logs) in this folder instead of the default under your home directory.
NEMOCODE_COMMAND_NAMEThe name Nemocode prints in hints and usage text, if you installed the command under another name.
NEMOCODE_NO_AUTOSTART=1Never start a server from nemocode mcp or nemocode 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