Skills openclaw-essesseff
Interact with the essesseff DevOps platform — call the essesseff Public API (templates, organizations, apps, deployments, images, image lifecycle, environments, retention policies, packages) and automate app creation and Argo CD setup using the essesseff onboarding utility. Use when the user wants to create essesseff apps, manage deployments, promote images through the DEV→QA→STAGING→PROD lifecycle, configure Argo CD environments, manage retention policies, or run the essesseff-onboard.sh script.
git clone https://github.com/openclaw/skills
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/adamdurst/openclaw-essesseff" ~/.claude/skills/openclaw-skills-openclaw-essesseff && rm -rf "$T"
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.openclaw/skills && cp -r "$T/skills/adamdurst/openclaw-essesseff" ~/.openclaw/skills/openclaw-skills-openclaw-essesseff && rm -rf "$T"
skills/adamdurst/openclaw-essesseff/SKILL.mdessesseff Skill
This skill covers two complementary ways to work with the essesseff DevOps platform:
- essesseff Public API — direct HTTP calls for managing templates, organizations, apps, images, deployments, environments, packages, and retention policies.
- essesseff Onboarding Utility — shell scripts that automate app creation and Argo CD deployment setup.
Quick Reference
Base URL:
https://www.essesseff.com/api/v1 (use www to avoid 307 redirects)
Authentication: All requests require
X-API-Key: ess_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx header.
Rate limit: 3 requests per 10 seconds. Headers:
X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset.
Path structure:
- Global (no account needed):
/api/v1/global/... - Account-specific:
— API key must belong to the/api/v1/accounts/{account_slug}/...
in the path or aaccount_slug
is returned.403
API Reference Files
For full endpoint details, request/response examples, and query parameters, see:
| Reference | Contents |
|---|---|
| Auth, base URL, rate limiting, error codes |
| Global templates, account-specific templates |
| List and detail GitHub orgs for an account |
| Create, list, get, update apps; list deployments |
| List images, get image by tag |
| Image lifecycle: get state, transition state |
| Get environment; set Argo CD URL; DEV→QA→STAGING→PROD lifecycle actions |
| Get GitHub API payloads for expired package deletion |
| List and update retention policies |
API Endpoint Map
Global
| Method | Path | Purpose |
|---|---|---|
| GET | | List global templates (optional ) |
| GET | | Get global template details |
Account-Specific (all require matching API key)
| Method | Path | Purpose |
|---|---|---|
| GET | | List account templates |
| GET | | Get account template details |
| GET | | List orgs for account |
| GET | | Get org detail + app list |
| GET | | List apps |
| POST | | Create app |
| GET | | Get app detail |
| PATCH | | Update app |
| GET | | List deployments |
| GET | | List images |
| GET | | Get image by tag |
| GET | | Get image lifecycle state |
| POST | | Transition image lifecycle state |
| GET | | Get current env deployment |
| POST | | Set/clear Argo CD URL |
| POST | | Mark DEV image as RC |
| POST | | Accept RC → deploy to QA |
| POST | | Reject RC |
| POST | | Mark QA image as STABLE |
| POST | | Mark QA image as REJECTED |
| POST | | Deploy STABLE to STAGING |
| POST | | Deploy STABLE to PROD (no OTP) |
| GET | | Get notifications-secret.yaml for Argo CD |
| GET | | Get expired package deletion payloads |
| GET | | List retention policies (filter by ) |
| PATCH | | Create or update a retention policy for a lifecycle state |
Image Lifecycle State Machine
Images progress through states in this order:
BUILD → DEV → RC → QA → STABLE → STAGING → PROD ↑ ↓ ↓ REJECTED
Key transitions via API:
— promotes current DEV image to RC (no body)DEV/declare-rc
— body:QA/accept-rc
→ sets QA, deploys to QA{"image_tag": "v1.2.3"}
— body:QA/reject-rc
→ sets REJECTED{"image_tag": "v1.2.3"}
— no body → sets STABLE on current QA imageQA/declare-stable
— no body → sets REJECTED on current QA imageQA/declare-rejected
— body:STAGING/deploy-stable
→ deploys to STAGING{"image_tag": "v1.2.3"}
— body:PROD/deploy-stable
→ deploys to PROD (no OTP required via API){"image_tag": "v1.2.3", "deployment_note": "CR#123"}
Alternatively, use
POST .../images/{image_tag}/lifecycle with body {"state": "QA"} for direct lifecycle transitions.
Onboarding Utility Reference
For shell-script-based automation (no API calls required), see:
| Reference | Contents |
|---|---|
| Full guide: setup, commands, how it works |
| System binaries, PATs, K8s/Argo CD prereqs |
| Clone/replace/push workflow without a subscription |
The utility (
essesseff-onboard.sh) accepts:
— list available templates--list-templates
— create all 9 repos (via API for subscribers, clone/replace/push for non-subscribers)--create-app
— configure Argo CD for each environment--setup-argocd dev,qa,staging,prod
— no essesseff API required--non-essesseff-subscriber-mode
— path to config file--config-file .essesseff
— debug output--verbose
Common Errors
| Code | Meaning |
|---|---|
| 400 | Invalid request parameters |
| 401 | Invalid or missing API key |
| 403 | API key does not match the in the path |
| 404 | Resource not found |
| 429 | Rate limit exceeded — wait and retry |
| 500 | Server error |