Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Use when an AI agent, script, or CI job needs to deploy to or operate Gipity WITHOUT a human present to complete an interactive email-code login - e.g. a self-hosted coding agent (Hermes, OpenClaw), a cron, or a CI pipeline running in an ephemeral container. Covers minting a long-lived agent API token (gip_at_*), authenticating headlessly via the GIPITY_TOKEN env var, and running the build → deploy → verify loop unattended.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-18 | ✗→✓ | ▲ Improved | 2% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 17% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 7% | 0% |
| case-01 | ✗→✓ | ▲ Improved | 17% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 30% | 0% |
<!-- GENERATED from platform/docs/skills/agent-deploy.md by platform/scripts/sync-claude-plugin.ts - do not edit here. -->
> Gipity required. This skill needs the gipity CLI linked to a project. If gipity status errors or shows no project, run the setup flow in the gipity skill first (in Claude Code or Grok: /gipity:setup; in Codex or any other agent, follow the gipity skill's setup steps directly). > > This doc is shared across Gipity surfaces; where it names an agent tool, use the CLI equivalent: add → gipity add <name>, file_write/file_read/file_delete → edit files in the project directory directly (they auto-sync), project_deploy → gipity deploy dev, code_execute → gipity sandbox run. The live version of this doc: gipity skill read agent-deploy.
The normal gipity login is interactive: it emails a 6-digit code that a human reads and pastes back. An autonomous agent, a cron job, or a CI runner has no inbox to check - and a fresh/ephemeral container has no saved session on disk. For those, use a long-lived agent API token (gip_at_*) instead. It authenticates from an environment variable, so it survives fresh containers, never expires unless you set --expires, bills to your account like any other usage, and can be revoked instantly.
This is the path for self-hosted coding agents (e.g. Hermes, OpenClaw), scripts, and CI that want to build, deploy, and operate Gipity apps without a human in the loop.
~/.gipity/auth.json).If a human is present at a terminal, plain gipity login is simpler - see getting-started. Use a token when login can't be completed interactively.
From a machine where you're already logged in - your own CLI or the web CLI in the browser:
bashgipity token create --name "Hermes on my VPS" # name is a label you choose gipity token create --name "CI deploy" --expires 90 # optional expiry, in days gipity token create --name "ci" --expires 90 --json # machine-readable
It prints the token once - copy it immediately, it can't be retrieved later:
gip_at_eygYHKVRkBP8UXY5dfQzZV_xMH6t1x4Bynnhv4GD128Only a hash is stored server-side, so a lost token can't be recovered - only revoked and replaced. With --json the output is { "token": "gip_at_…", "shortGuid": "at_…", "expiresAt": "…"|null }.
Put the token in the agent's environment. The CLI picks it up automatically, skips login entirely, and acts as your account:
bashexport GIPITY_TOKEN=gip_at_eygYHKVRkBP8UXY5dfQzZV_xMH6t1x4Bynnhv4GD128
That's the whole auth step. GIPITY_TOKEN takes precedence over any saved session, so the same command works identically in a fresh container with no auth.json and on a logged-in workstation. Every CLI command now works unattended:
bashgipity status # confirms authenticated, no login prompt gipity init # link the cwd as a project (or `gipity add <template>` in an empty dir) gipity deploy dev # → https://dev.gipity.ai/<account>/<project>/ gipity page inspect <url> # headless verify: console errors, failed resources
The full build loop - gipity add → edit files → gipity deploy dev → gipity page inspect → fix → repeat (see deploy) - runs with no interactive step anywhere.
> Keep deploys on dev. Never run gipity deploy prod unattended unless the job is explicitly a production release - prod publishes to the user's live URL.
bashgipity token list # active tokens: name, created, expires, last-used gipity token revoke <id> # e.g. gipity token revoke at_espgamjb - instant, irreversible
Revocation takes effect immediately. The active token count also appears on the Plan tab in Monitor.
--expires <days> for CI or short-lived agents; omit it only for long-running trusted agents.gipity token revoke <id> and mint a fresh one - there's no in-place rotation.last-used tells you which is which.| Piece | Detail | |---|---| | Token format | gip_at_ + random secret; shown once at creation | | Env var | GIPITY_TOKEN - read by the CLI on every command, ahead of any saved login | | Sent as | Authorization: Bearer gip_at_… to the Gipity API | | Stored as | A one-way hash server-side - never the plaintext | | Lifetime | Never expires unless --expires <days> is set; revoke is instant | | Mint / list / revoke | POST / GET / DELETE …/auth/agent-tokens (via gipity token …) |
gipity login, creditsgipity.yaml the token-authed agent drivesOther measured skills in the registry, with their headline benchmark lift.