Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Connect, authenticate, configure, reset, or troubleshoot the Coolify Codex plugin connection. Use when the user asks to set up Coolify from the Codex marketplace, connect Coolify, configure saved credentials, log in, log out, switch Coolify instances, avoid environment variables, or resolve missing/invalid Coolify API token errors.
.claude/skills/hashgraph-online-coolify-setup/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-07 | ✗→✓ | ▲ Improved | 36% | 0% |
| case-11 | ✗→✓ | ▲ Improved | -11% | 0% |
| case-12 | ✗→✓ | ▲ Improved | 50% | 0% |
| case-14 | ✗→✓ | ▲ Improved | -36% | 0% |
| case-15 | ✗→✓ | ▲ Improved | -12% | 0% |
Use this skill for first-time setup, marketplace onboarding, saved credentials, login/logout, and connection troubleshooting for the Coolify plugin.
Marketplace users should not need a repo checkout or shell command.
Before giving up on missing tools, call tool_search for coolify_config_status coolify_configure mcp__coolify when tool_search is available. The expected MCP namespace is mcp__coolify, and the setup tools are named coolify_config_status, coolify_configure, and coolify_logout.
coolify_config_status to see whether a connection is already saved.coolify_configure without an apiToken argument.coolify_config_status again after the user says they finished.coolify skill for operational work.coolify_configure returns a short-lived local setup URL. If the browser does not open automatically, provide that URL to the user.
If the Coolify MCP tools are not exposed in the thread after tool search, do not work around it by importing files from the current workspace or running repo-local setup code unless the user explicitly says they are developing this plugin from that checkout. For normal marketplace use, explain that the plugin's MCP tools did not load, ask the user to reinstall or update the plugin, and have them start a brand-new top-level thread so Codex can pick up the MCP server. Do not present a same-thread retry, delegated follow-up, or fork of the failed thread as the fix; those can preserve stale plugin capability metadata.
The browser setup handles self-hosted instances without requiring the user to paste a URL into chat.
If the user already gave the instance URL, call coolify_configure with baseUrl set to the instance root or /api/v1 URL:
json{ "baseUrl": "https://coolify.example.com" }
The setup page links to the matching /security/api-tokens page after the instance URL is known.
The token is stored locally:
secret-tool when available.CODEX_HOME or ~/.codex with owner-only permissions.Environment variables are fallback-only for automation:
COOLIFY_BASE_URLCOOLIFY_API_TOKENDo not make marketplace users set these manually.
Authorization: Bearer <token>.coolify_logout to forget the saved local connection.coolify_configure again. The browser setup will ask whether the next connection is Coolify Cloud or self-hosted.Use this only when the user is developing the plugin from a local checkout and specifically wants a terminal command. Marketplace users should use coolify_configure instead.
They can run:
bashnpm run setup -- --save
For self-hosted instances:
bashnpm run setup -- --save https://coolify.example.com
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 15,670 | 10,753 | -31% | 1 | 1 | 0% | 1,825 | 1,294 | -29% | 0 | 0 | — |
case-02 | fail→fail | 14,888 | 16,301 | +9% | 1 | 1 | 0% | 1,983 | 1,112 | -44% | 0 | 0 | — |
case-03 | fail→fail | 9,497 | 12,921 | +36% | 1 | 1 | 0% | 1,291 | 1,374 | +6% | 0 | 0 | — |
case-04 | pass→fail | 16,670 | 16,291 | -2% | 1 | 1 | 0% | 1,638 | 1,209 | -26% | 0 | 0 | — |
case-05 | pass→fail | 11,127 | 11,822 | +6% | 1 | 1 | 0% | 1,740 | 1,109 | -36% | 0 | 0 | — |
case-06 | pass→fail | 17,034 | 16,499 | -3% | 1 | 1 | 0% | 1,706 | 1,126 | -34% | 0 | 0 | — |
case-07 | fail→pass | 12,414 | 10,348 | -17% | 1 | 1 | 0% | 1,163 | 1,582 | +36% | 0 | 0 | — |
case-08 | fail→fail | 21,326 | 11,065 | -48% | 1 | 1 | 0% | 2,198 | 1,899 | -14% | 0 | 0 | — |
case-09 | fail→fail | 6,799 | 11,539 | +70% | 1 | 1 | 0% | 1,081 | 1,669 | +54% | 0 | 0 | — |
case-10 | fail→fail | 15,238 | 10,190 | -33% | 1 | 1 | 0% | 1,595 | 1,501 | -6% | 0 | 0 | — |
case-11 | fail→pass | 13,369 | 7,637 | -43% | 1 | 1 | 0% | 1,432 | 1,281 | -11% | 0 | 0 | — |
case-12 | fail→pass | 10,665 | 8,529 | -20% | 1 | 1 | 0% | 894 | 1,339 | +50% | 0 | 0 | — |
case-13 | pass→pass | 11,172 | 1,950 | -83% | 1 | 1 | 0% | 1,849 | 1,180 | -36% | 0 | 0 | — |
case-14 | fail→pass | 17,964 | 7,256 | -60% | 1 | 1 | 0% | 1,851 | 1,177 | -36% | 0 | 0 | — |
case-15 | fail→pass | 9,913 | 3,203 | -68% | 1 | 1 | 0% | 1,452 | 1,274 | -12% | 0 | 0 | — |
case-16 | pass→pass | 9,292 | 7,787 | -16% | 1 | 1 | 0% | 712 | 1,163 | +63% | 0 | 0 | — |
case-17 | pass→pass | 9,469 | 3,271 | -65% | 1 | 1 | 0% | 1,290 | 1,349 | +5% | 0 | 0 | — |
case-18 | pass→pass | 10,001 | 10,570 | +6% | 1 | 1 | 0% | 1,782 | 1,517 | -15% | 0 | 0 | — |
case-19 | pass→pass | 14,408 | 9,083 | -37% | 1 | 1 | 0% | 1,238 | 1,407 | +14% | 0 | 0 | — |
case-20 | fail→fail | 4,603 | 6,730 | +46% | 1 | 1 | 0% | 520 | 1,140 | +119% | 0 | 0 | — |
case-21 | pass→pass | 7,207 | 2,368 | -67% | 1 | 1 | 0% | 1,188 | 1,252 | +5% | 0 | 0 | — |
case-22 | fail→pass | 13,772 | 7,901 | -43% | 1 | 1 | 0% | 1,561 | 1,241 | -20% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 16 counted toward the lift figure. The other 6 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +14 percentage points is the difference between those two pass rates over the 16 comparable cases. 3 cases got worse with the skill loaded, and they are included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.