Network · Server CLI

Command your stack from
the Web Shell.

Every member gets a browser terminal on gend.me: a private, per-user runtime with git, Node, kubectl and the Google Cloud SDK, wired to your sites and an AI pair that can read, write and commit.

Bash, git, kubectl, gcloud and npm in your own ephemeral pod.Issue 08 · Terminal
The terminalBash, git, kubectl, gcloud and npm in your own ephemeral pod.
Isolation1 podper user, reused across sessions
Idle reap5 minruntimes are recycled when you leave
Workspace/workspacea persistent volume that survives sessions
Toolchaingit · node 20plus kubectl and the Google Cloud SDK
TransportWebSocketxterm.js in the browser, PTY in your pod
AuthOne-shot JWTminted per session by the hub, verified by the PTY service
Sites, Terminal, Chat, Gas Station and Davinci in one place.Look 09 · Shell
Web Shell tabsSites, Terminal, Chat, Gas Station and Davinci in one place.
Architecture

A real shell, in a real pod, that only sees your namespace

When you open the Terminal tab, the hub mints a one-shot token and the PTY service makes sure a runtime pod exists for you. Your browser speaks to it over a WebSocket; the service bridges that to a login shell inside the pod. The pod can only touch the web-shell namespace: the hub, other customers and the control plane are out of reach.

Site controls live beside the terminal: status, restart, staging, clone and promote for the apps you own, and a Google Cloud connection if you want gcloud against your own projects.

  • Runtime image: git, Node 20, kubectl, Google Cloud SDK
  • Per-user PVC mounted at /workspace
  • AI pair with shell_exec, read_file, write_file and git tools
  • gcloud account linking from the shell
Reference

Endpoints behind the shell

Everything the Terminal tab does is an authenticated REST call you can also make yourself.

terminal
# open in a browser (sign in first)
https://gend.me/web-shell/terminal/

# the hub mints a one-shot session token
POST /wp-json/gs/v1/web-shell/terminal
# the PTY service verifies it and attaches your pod
wss://shell.gend.me/pty/<session>?token=<jwt>
sites
GET  /wp-json/gs/v1/web-shell/sites
GET  /wp-json/gs/v1/web-shell/sites/{id}/status
POST /wp-json/gs/v1/web-shell/sites/{id}/restart
POST /wp-json/gs/v1/web-shell/sites/{id}/staging
POST /wp-json/gs/v1/web-shell/sites/{id}/clone
POST /wp-json/gs/v1/web-shell/sites/{id}/promote
GET  /wp-json/gs/v1/web-shell/groups
ai pair
# bring your own model key; it is stored encrypted
GET    /wp-json/gs/v1/web-shell/chat/status
POST   /wp-json/gs/v1/web-shell/chat/key
DELETE /wp-json/gs/v1/web-shell/chat/key
POST   /wp-json/gs/v1/web-shell/chat/stream   # SSE

# tools the assistant may call in your pod
shell_exec  read_file  write_file
git_status  git_diff   git_commit
gcloud
POST /wp-json/gs/v1/web-shell/gcloud/start
GET  /wp-json/gs/v1/web-shell/gcloud/callback
GET  /wp-json/gs/v1/web-shell/gcloud/status
POST /wp-json/gs/v1/web-shell/gcloud/adc
POST /wp-json/gs/v1/web-shell/gcloud/disconnect

# then, inside the terminal
$ gcloud projects list
Network administrators

Hub-side WP-CLI commands

CommandWhat it does
wp gdc-cost sync [–dry-run]Pull real cloud cost from the billing export and refresh price recommendations.
wp gdc-cost discover-skusList the cloud SKUs behind each hosting plan and task class.
wp gdc-gas-billing runRoll unbilled gas ledger rows into pending payments per web app.
wp em-inbox backfill-contactsRebuild Talk Flows contacts from existing mail.
wp em-inbox backfill-participantsRebuild thread participants for shared inboxes.

These run on the hub and require network administrator rights. Members use the Web Shell and the REST endpoints above.

Quick start

Your first session

Sign in

Use your gend.me identity. The shell is a member feature.

Open Web Shell

From your dashboard or directly at /web-shell/.

Terminal tab

Your pod starts in seconds; /workspace is waiting.

Work

Clone, build, deploy, or ask the AI pair to do it and review the diff.

Shell access

A terminal that is yours.

Register and open the Web Shell from your dashboard.