Mojo UpDocs
Nodes

Work with a running node

Watch a node, answer its agents' approvals, add repositories, talk to its agents and keep it healthy from its terminal.

Most of the time you use a node from AI Workbench or the console, where it appears beside your other machines. At the node itself, mojoup-node gives you a live console in the terminal.

The node's console

Run mojoup-node on a node that is running, or mojoup-node run in a terminal, and the node's console opens. It has:

  • a live pane with each repository's host, its agents and anything waiting for you;
  • a scrolling transcript for command output, the log and chat;
  • a prompt line, and a status bar such as gpu-box-1 · joined Contoso · mesh direct · 1 host · 2 agents · 1 waiting for you · service: running.

Type / to open the command menu, filtered as you type. ↑ and ↓ pick, Tab completes, Enter runs, Esc closes.

CommandWhat it does
/statusThe node now: organisation, mesh, hosts, agents, spend, what is waiting.
/approvalsWhat agents are waiting on you. ↑↓ to pick, a allow, d deny, Enter to answer.
/approve <n>Allow request n, or accept question n's default.
/deny <n>Deny request n, or answer question n no.
/answer <n> <text>Answer question n with an option's number or name, or text.
/chat [root]Talk to a specialist on a repository. Plain text goes there until /end.
/endLeave chat mode.
/logs [on|off|n]Follow the node's log here, stop, or show the last n lines.
/hostsEach repository's host and its state.
/agentsEvery agent: state, task, how long it has been running.
/rootsThe repositories this node serves. /roots add <path> and /roots remove <n> add or remove one; its host starts or stops straight away.
/doctorCheck this machine.
/service …Install, remove, start, stop or check the service.
/secrets status|migrateWhere the secrets key is kept; move it into the operating system's store.
/update [--check]Update the node.
/config get|setThe node's own settings.
/trayThe tray icon (Windows).
/clear, /help, /exitClear the transcript, show help, leave.

Keys: Ctrl+C clears the line, stops waiting for a reply, or leaves chat mode; pressed twice within two seconds it exits. Ctrl+D on an empty line exits. ↑↓ recall earlier lines, PgUp and PgDn scroll, Ctrl+L clears.

Leaving the console of a node you attached to leaves the node running. Leaving a node you started in this terminal asks whether to stop it or keep it running in the background.

Answer approvals

When an agent on the node needs permission to run a tool, or asks a question, the request waits for someone to answer. You can answer it:

  • in the node's console (/approvals) or the dashboard (mojoup-node dashboard: ↑↓ to pick, a allow, d deny, Enter for the request's other options);
  • on a workbench attached to the node;
  • in your organisation's console or the phone app, once the request reaches the organisation's inbox.

Nobody answering means no: a request is denied after five minutes (node.approvalTimeoutSeconds), or after 30 minutes once it has reached the organisation's inbox (node.approvalHoldSeconds).

The dashboard

Terminal
mojoup-node dashboard

A full-screen live view: the organisation, relay and heartbeat, mesh address and peers, spend today, the secrets backend, each repository's host with its agents, every request waiting across the repositories, and the log tail. It redraws every two seconds. Press ? for help and q to leave; the node keeps running. mojoup-node dashboard --once prints it once.

Serve repositories

A node serves the repositories you give it. Add them in any of these ways:

  • the setup wizard's Repositories step: Browse for a folder, Type a path or Clone a repository into the node's home folder;
  • /roots add <path> in the node's console;
  • mojoup-node run --root <path> --project <name>;
  • from AI Workbench, when you add a repository and choose the node as the machine it runs on. A person's workbench can only serve folders inside the node's home folder, or clone into it.

The home folder (node.home, your home directory by default) is where the node clones repositories and runs agent tools. Change it with mojoup-node config set node.home <folder> (add --create to make it).

Talk to an agent on the node

Terminal
mojoup-node chat --root my-repo

Opens the console in chat mode with that repository: what you type goes to its chat agent, and the reply streams in. --specialist <id> picks a team member instead. Piped, it is a plain conversation, one message per line.

Check the machine

Terminal
mojoup-node doctor

One pass, warning or failure line per check, with the fix: the state directory and its free space, the join and whether the platform is reachable, the running node and its local control connection, the mesh port and agent, the host bundle, every agent tool and whether it is signed in, the secrets backend, the sandbox (on Linux) and the service.

Sign in agent tools

Agent tools on a node are signed in as the user the node runs as. doctor names any that are signed out and the command to sign them in. With your own subscriptions, each person's sign-in is kept in their own profile on the node and used only for their own work; a sign-in the node needs from you arrives as a request in your organisation's inbox. See Your subscriptions.

Secrets on a node

The node can keep named secrets for its repositories' tools and agents. The node must be running.

Terminal
mojoup-node secrets set GITHUB_TOKEN --project <id> --use tools
mojoup-node secrets list
mojoup-node secrets remove GITHUB_TOKEN --project <id>

set reads the value from standard input or asks for it without echo; it never takes it from the command line.

Routines on a node

A routine for a repository on a node is saved on that node and runs there, even when your workbench is closed. You make it on the workbench's Routines page. On the node:

Terminal
mojoup-node routines list
mojoup-node routines run 1

Git sign-in for an organisation's projects

For repositories in an organisation's project, the node asks the organisation for a git credential for the person the work is for, rather than using a sign-in of its own. If a clone or push is refused because your account is not linked, link your GitHub or Azure DevOps account under Settings → Account in the console.

On this page