gxmesh CLI reference
Every gxmesh CLI command for Glxymesh projects: login, org and project scope, init, pull, new, gen, dev, call, test, push, revisions, rollback, connect, update, uninstall and env vars.
New to the command line? Start with Learn the CLI step by step for a complete greeting-tool project, expected results and explanations of the flags.
Install
Section titled “Install”macOS and Linux:
curl -fsSL https://platform.glxymesh.com/install.sh | bashWindows PowerShell:
irm https://platform.glxymesh.com/install.ps1 | iexOpen a new terminal and run gxmesh version to verify installation. For Windows cmd, see the
quickstart.
Account
Section titled “Account”| Command | What it does |
|---|---|
gxmesh login |
Signs this machine in with the device flow. The CLI shows a URL and a code to enter in any browser. |
gxmesh auth list |
Shows this account and every session it has open. |
gxmesh services |
Shows the account’s tier and capabilities. |
gxmesh logout |
Removes stored credentials. |
gxmesh auth login and gxmesh auth logout are the same as the short forms.
Inside a project directory, commands act on the organization and project in its gx.yml. Elsewhere,
connect acts on the active organization and project. Local commands such as call, test
and push require a project directory.
| Command | What it does |
|---|---|
gxmesh org |
Lists your organizations. |
gxmesh org use [slug] |
Makes an organization active. With no slug, it lets you pick one. |
gxmesh project |
Lists the projects in the active organization. |
gxmesh project use [slug] |
Makes a project active. With no slug, it lets you pick one. |
gxmesh project create <slug> [name] |
Creates a project, with an optional display name. |
gxmesh project describe <slug> <description> |
Sets the project description. It seeds the MCP instructions that tell a connected model what this server is for. |
If you haven’t chosen a project, default is used. It’s created the first time you use it.
Commands that accept scope flags, such as init, use --org <slug> and --project <slug> ahead of
the environment variables GXMESH_ORG and GXMESH_PROJECT, then the stored selection. A stored project
applies only to its own organization, so passing --org alone does not carry it over.
Commands that read an existing project, including push and connect inside that directory, use
its gx.yml. They do not accept scope flags to redirect it. Check the file before deploying.
Project
Section titled “Project”Run these inside a project directory, or any folder below it. The project comes from gx.yml.
| Command | What it does |
|---|---|
gxmesh init [--lang go|node|python] [--org <slug>] [--project <slug>] [--module <path>] |
Starts a project in the current directory: writes gx.yml; go.mod, package.json and tsconfig.json, or requirements.txt and pyrightconfig.json; tools/ and .gitignore. --lang defaults to go. --module sets the Go module path. |
gxmesh pull [dir] [--org <slug>] [--project <slug>] [--force] |
Copies the live revision’s files to this machine. Outside a project it starts one in dir (the project’s slug by default), with .gitignore and the SDK set up as init would. Inside a project it brings the files up to the live revision; a file changed here since the last pull stops it, and --force replaces those files too. Files that were never pulled are left alone. |
gxmesh new <name> [--kind function|http] |
Adds a tool in tools/<name>/: a tool.yml and code in the project’s language, or only a tool.yml with --kind http. |
gxmesh gen |
Regenerates every tool’s typed input file and the SDK copy in .glxy/. dev, call and test run it too. |
gxmesh dev [--port 7777] [--allow-private] |
Serves the project at http://127.0.0.1:7777/mcp and rebuilds when a file changes. |
gxmesh call <tool> ['<json>'] [--allow-private] |
Runs one tool here and prints its answer, its log lines and every request it sent. |
gxmesh test [tool…] [--allow-private] |
Runs the tests: of every tool, or of the ones named. |
gxmesh push [--approve] |
Checks, sends and deploys the project. A push that adds hosts or keys asks first; --approve agrees in advance, for scripts. |
gxmesh revisions |
Lists what was pushed, what each revision became, and which is live. |
gxmesh rollback <rN> |
Makes an earlier revision live again, without rebuilding it. |
gxmesh connect |
Prints the project’s address, its server name, and how to add it to Claude Code, Cursor and other clients. |
--allow-private lets local runs reach private addresses, such as a server on your own network. It
has no effect on deployed tools. See Develop locally.
The CLI itself
Section titled “The CLI itself”| Command | What it does |
|---|---|
gxmesh version |
Shows this binary’s version and the services it talks to. |
gxmesh update [--force] |
Replaces the binary with the current release. --force reinstalls even if the version matches. The CLI also tells you, at most once a day, when a newer release exists. |
gxmesh completion <bash|zsh|fish> |
Prints a shell completion script. |
gxmesh uninstall [--yes] |
Removes the binary and the CLI’s settings: the sign-in, the active org and project, and its cache. It asks first; --yes skips the question, for scripts. Your projects and deployed tools stay. On Windows it also takes the install folder off your PATH. If the binary is in a folder you can’t write, run it with sudo. |
To enable tab completion:
source <(gxmesh completion bash) # add to ~/.bashrcsource <(gxmesh completion zsh) # add to ~/.zshrcgxmesh completion fish | source # add to ~/.config/fish/config.fishEnvironment variables
Section titled “Environment variables”| Variable | Effect |
|---|---|
GXMESH_ORG, GXMESH_PROJECT |
Override the active organization and project. |
GXMESH_PLAIN=1 |
Turns off colour and all terminal drawing. |
NO_COLOR |
Turns off colour. |
GXMESH_THEME=light|dark |
Sets the terminal background instead of detecting it. |
Credentials and the active scope are stored in ~/.config/gxmesh.