Configuring Horizon
coollabsio/coolify
A skill your agent uses whenever the user mentions Horizon by name in a Laravel context.
A skill your agent uses when the user asks to "add a command", "implement cx <something", "new subcommand", "new CLI command", "add a new cx command", "create a command", "add subcommand"…
$ npx skills add coralogix/cx-cli --skill add-command -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install coralogix/cx-cli add-command --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/coralogix/cx-cli.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/add-command .claude/skills/add-command && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "add-command" agent skill from https://github.com/coralogix/cx-cli/tree/master/.claude/skills/add-command into .claude/skills/add-command/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "add-command", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/coralogix/cx-cli/tree/master/.claude/skills/add-commandType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add coralogix/cx-cli --skill add-command -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install coralogix/cx-cli add-command --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/coralogix/cx-cli.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/add-command .agents/skills/add-command && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "add-command" agent skill from https://github.com/coralogix/cx-cli/tree/master/.claude/skills/add-command into .agents/skills/add-command/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "add-command", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add coralogix/cx-cli --skill add-command -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install coralogix/cx-cli add-command --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/coralogix/cx-cli.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/add-command .cursor/skills/add-command && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "add-command" agent skill from https://github.com/coralogix/cx-cli/tree/master/.claude/skills/add-command into .cursor/skills/add-command/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "add-command", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/coralogix/cx-cli.git --path .claude/skills/add-command--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add coralogix/cx-cli --skill add-command -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install coralogix/cx-cli add-command --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/coralogix/cx-cli.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/add-command .gemini/skills/add-command && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "add-command" agent skill from https://github.com/coralogix/cx-cli/tree/master/.claude/skills/add-command into .gemini/skills/add-command/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "add-command", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install coralogix/cx-cli add-commandInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add coralogix/cx-cli --skill add-command -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/coralogix/cx-cli.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/add-command .github/skills/add-command && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "add-command" agent skill from https://github.com/coralogix/cx-cli/tree/master/.claude/skills/add-command into .github/skills/add-command/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "add-command", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add coralogix/cx-cli --skill add-command -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install coralogix/cx-cli add-command --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/coralogix/cx-cli.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/add-command .opencode/skills/add-command && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "add-command" agent skill from https://github.com/coralogix/cx-cli/tree/master/.claude/skills/add-command into .opencode/skills/add-command/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "add-command", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
add-commandA skill your agent uses when the user asks to "add a command", "implement cx <something", "new subcommand", "new CLI command", "add a new cx command", "create a command", "add subcommand"…
Add Command is an agent skill from coralogix/cx-cli. Use this skill when the user asks to "add a command", "implement cx <something", "new subcommand", "new CLI command", "add a new cx command", "create a command", "add subcommand", "implement a new command", "build a cx command", "wire up a new command", "extend the CLI", "add an API to cx", "new cx feature", "integrate a Coralogix API", or wants to add new functionality to the cx CLI. Use this even when the user describes a feature that implies a new command without saying "command" explicitly.
Its SKILL.md is about 2.4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Backend & APIs. The repository describes itself as: This is the Coralogix CLI. The licence is Apache-2.0.
8 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit c071372. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
cargoFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Add Command loads about 2.4k tokens when it runs. Until then it costs about 128 tokens; SKILL.md has 1,187 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from coralogix/cx-cli at commit c071372, republished under its Apache-2.0 licence (© coralogix). 1,187 words, ~2,449 tokens.
.claude/skills/add-command/SKILL.md (or your agent's skills folder).End-to-end workflow for adding a new command to cx. Every command falls into one of two archetypes - determine which one first, then follow the corresponding steps.
docs/adding-a-command.md has copy-pasteable code templates for every step below. Read it alongside this workflow.
Before writing any code, get clarity on the domain:
list, get, create) and what flags make sense.cx alerts - alert definitions + schedulerscx notifications - connectors, routers, presets, testcx webhooks - outgoing webhooks + actionscx enrichments - enrichment rules + custom enrichment tablescx integrations - integrations + extensions, contextual-datacx iam - api-keys, roles, scopes, users, groups, ip-access
Run cx schema to see the full command tree as JSON.| Archetype | When to use | Reference implementation |
|---|---|---|
| A: DataPrime-based | Querying logs, spans, or any DataPrime source | src/commands/logs/mod.rs |
| B: REST-based | Wrapping a Coralogix REST API (most new commands) | src/commands/alerts/api.rs + src/commands/alerts/mod.rs |
DataPrime commands delegate to a shared pipeline and require minimal code (~130 lines). REST commands build the full pipeline (API client, fan-out, merge, render) - more code but more control.
Important: All API integrations must use REST (HTTP). The CLI is HTTP-only by design - do not use gRPC.
Before writing any code, read these files to internalize the existing patterns. This step is critical - agents that read existing code first produce implementations that are consistent with the codebase rather than inventing new patterns.
Always read:
src/main.rs - study the Commands enum to see how variants are structured, and the match cli.command dispatch block to see where your new variant fits. Note which commands early-exit (no credentials needed) vs which go through the full config resolution flow. Pay attention to wrapper groups (e.g., Notifications, Iam, Webhooks, Integrations) - these are top-level commands with nested subcommand enums that group related domains. If your command belongs under an existing group, add a new variant to that group's subcommand enum rather than creating a top-level command.src/commands/mod.rs - see existing module registrations so you add yours in the right placedocs/adding-a-command.md - full guide with code templates for both archetypesDataPrime archetype - also read:
src/commands/logs/mod.rs - a complete DataPrime command; notice how little code is needed because the shared pipeline does the heavy liftingsrc/commands/dataprime/mod.rs - the shared pipeline your command will delegate to; understand the run_query() signature and what it handles (fan-out, merge, spilling, agents output)REST archetype - also read:
src/commands/alerts/api.rs - see how response types are structured, how the API struct borrows &CxClient, how deserialization tests are writtensrc/commands/alerts/mod.rs - see how the handler declares pub mod api; and imports types via use api::{...};src/commands/dashboards/mod.rs - see the fan-out/merge/render pattern using render::* helpers, and how all three output formats are handledSkip this step for DataPrime commands - they use the shared DataPrime pipeline.
Create src/commands/<domain>/api.rs. See docs/adding-a-command.md § "Archetype B, Step 1" for the full template.
Key conventions and why they matter:
#[serde(rename_all = "camelCase")] on response types - Coralogix APIs use camelCase JSON keys#[serde(default)] on Vec fields - the API sometimes omits empty arrays entirely rather than sending [], so this prevents deserialization failuresOption<T> for fields that may be absent - be defensive, APIs evolve and fields vary across tiers&CxClient (don't own it) - the client is shared across the fan-out and must outlive individual API callsconst BASE_PATH for the endpoint prefix - keeps URLs DRYCreate src/commands/<domain>/mod.rs. For REST commands, declare pub mod api; at the top so the handler can use api::{...}; types from its sibling api.rs. See docs/adding-a-command.md for full templates of both archetypes.
Provide two things:
pub fn render_<domain>_text(merged: &MergedResults) -> Result<()> - called only for OutputFormat::Text; JSON and Agents output are handled by the shared pipelinerun() wrapper that calls super::dataprime::run_query() with your DataPrime source nameBuild the full fan-out/merge/render pipeline. Key patterns to understand:
render::render_table for text output - pass column headers (without "Profile") and rows where the first element is the profile name. The helper conditionally includes the Profile column based on include_profile. No duplicate struct definitions needed.render::render_json for JSON output - pretty-prints a &[Value] arraylet include_profile = targets.len() > 1; - this single boolean controls all multi-profile behavior (Profile column in text, "profile" key in JSON)eprintln!) - stdout is reserved for data so piped output isn't pollutedtoon_encode directly after any post-processing, because different commands may transform data differently before encodingRegister the module in src/commands/mod.rs.
In src/main.rs, add three things. See docs/adding-a-command.md § "CLI Wiring" for templates.
Commands enum variant - DataPrime commands use inline args; REST commands reference a subcommand enumList, Get, etc.match cli.command block. Most commands go through the full config resolution flow; only commands that don't need credentials (like profiles, cleanup) early-exit.Every new command must add tests at three layers. See
docs/adding-a-command.md § "Testing" for code templates and examples
of each.
| Layer | Location | What it verifies |
|---|---|---|
| Unit | src/**/<file>.rs #[cfg(test)] | Pure logic - deserialization (mandatory for REST), helpers, transforms |
| Integration | tests/<command>/main.rs (wiremock) | Command runner end-to-end with mocked HTTP |
| E2E | tests/e2e/<command>/mod.rs (assert_cmd, #[ignore]d) | Real cx binary against the Coralogix test team |
Things specific to this workflow that the doc doesn't emphasise:
tests/e2e/alerts/mod.rs.get <id>),
add a local discover_* fn in your e2e test module, modelled after
discover_alert_id in tests/e2e/alerts/mod.rs. Cache via OnceLock
and skip gracefully when the test team has no data - don't panic.tests/e2e.rs via
#[path = "e2e/your_domain/mod.rs"] mod your_domain;.Every command needs a corresponding skill in skills/ so AI agents know how to use it. Use the add-skill workflow to create it - it walks through the full process including reading reference implementations, writing effective trigger descriptions, and verification.
Run cargo build, cargo test (unit + integration), cargo clippy,
and cargo fmt --check. Fix any issues before committing.
If you have test team credentials configured, also run the e2e suite:
cargo test --test e2e -- --ignored --test-threads=1Smoke test all three output formats (text, json, agents) and
multi-profile (-p profile1 -p profile2).
See docs/adding-a-command.md § "PR Checklist" for the full checklist to include in your PR description.
© coralogix, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .claude/skills/add-command of coralogix/cx-cli.
Open the folder on GitHubat commit c071372
Add Command next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Add Command this skillcoralogix/cx-cli | 121 | — | ~2.4k | Automated safety check: Pass | Apache-2.0 | |
| Configuring Horizoncoollabsio/coolify | 63k | 4 repos | ~898 | Automated safety check: Pass | MIT | |
| Nestjs Best Practicesrolling-scopes/rsschool-app | 10k | 6 repos | ~1.2k | Automated safety check: Pass | MIT | |
| Sub2API AdminWei-Shaw/sub2api | 43k | 1 repos | ~717 | Automated safety check: Pass | LGPL-3.0 | |
| Firecrawl Build Onboardingfirecrawl/firecrawl | 190k | 1 repos | ~1.4k | Automated safety check: Notes | ISC | |
| Obsidian BasesAtmosphere/atmosphere | 3.8k | 22 repos | ~3.2k | Automated safety check: Pass | Apache-2.0 |
coollabsio/coolify
A skill your agent uses whenever the user mentions Horizon by name in a Laravel context.
rolling-scopes/rsschool-app
NestJS best practices and architecture patterns for building production-ready applications.
Wei-Shaw/sub2api
Manages a Sub2API deployment from the command line: accounts, redeem and invitation codes, groups, proxies, imports, exports and raw admin API calls.
firecrawl/firecrawl
Gets Firecrawl working in a project: signs you in through the browser, saves FIRECRAWL_API_KEY to .env and picks the first SDK or REST path.
Atmosphere/atmosphere
Create and edit Obsidian Bases (.base files) with views, filters, formulas, and summaries.
coollabsio/coolify
ACTIVATE when the user works on authentication in Laravel. An agent skill from coollabsio/coolify.
coralogix/cx-cli
A skill your agent uses for any question or action about the user's AI/GenAI applications or agents — their behavior, prompts/responses, quality, hallucinations, guardrails, security, cost/tokens…
coralogix/cx-cli
This skill should be used when the user asks to "manage alerts", "create alert", "list alerts", "delete alert", "check alert status", "enable alert", "disable alert", "investigate firing alerts"…
coralogix/cx-cli
A skill your agent uses when the user asks about AI Center Coding Agents data, wants to reproduce or extend the Coding Agents dashboards, or asks questions about usage, cost, tokens, sessions…
coralogix/cx-cli
A skill your agent uses when the user asks to "check data usage", "list TCO policies", "reduce Coralogix costs", "optimize observability spend", "lower our logging bill", "data budget exceeded"…
coralogix/cx-cli
A skill your agent uses when the user asks to "set up parsing", "create parsing rule", "extract fields from logs", "regex extraction", "log parsing", "enrich logs", "add context to logs", "custom…
coralogix/cx-cli
A skill your agent uses for any question involving telemetry data: "investigate an issue", "debug a problem", "find out why something is slow", "check error rates", "analyze user behavior"…
Categories
A skill your agent uses when the user asks to "add a command", "implement cx <something", "new subcommand", "new CLI command", "add a new cx command", "create a command", "add subcommand"…. Add Command is an agent skill from coralogix/cx-cli. Use this skill when the user asks to "add a command", "implement cx <something", "new subcommand", "new CLI command", "add a new cx command", "create a command", "add subcommand", "implement a new command", "build a cx command", "wire up a new command", "extend the CLI", "add an API to cx", "new cx feature", "integrate a Coralogix API", or wants to add new functionality to the cx CLI.
Add Command fits situations like: the user asks to add a command; implement cx <something; new CLI command; add a new cx command.
Run `npx skills add coralogix/cx-cli --skill add-command -a claude-code`. Or copy the skill folder (.claude/skills/add-command in coralogix/cx-cli) into .claude/skills/add-command in your project. Claude Code loads it when a task matches its description.
Run `npx skills add coralogix/cx-cli --skill add-command -a codex`. Or copy the skill folder (.claude/skills/add-command in coralogix/cx-cli) into .agents/skills/add-command in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add coralogix/cx-cli --skill add-command -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/add-command, .gemini/skills/add-command, .github/skills/add-command and .opencode/skills/add-command in your project.
Going by SKILL.md and its folder, Add Command needs the command-line tools its instructions call (cargo).
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Add Command is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.4k tokens (SKILL.md is roughly 9.8k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Add Command: Configuring Horizon (coollabsio/coolify, 63k stars), Nestjs Best Practices (rolling-scopes/rsschool-app, 10k stars), Sub2API Admin (Wei-Shaw/sub2api, 43k stars) and Firecrawl Build Onboarding (firecrawl/firecrawl, 190k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
coralogix (a GitHub organization) maintains it in coralogix/cx-cli, which has 121 GitHub stars. The repository holds 21 skills in this directory. The repository was last updated on October 7, 2026.
Source: coralogix/cx-cli on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.