Langfuse Codebase Navigator
langfuse/langfuse
Navigate Langfuse repositories, code areas, and agent skills.
Design and implementation guide for the Phoenix CLI (px). An agent skill from Arize-ai/phoenix.
$ npx skills add Arize-ai/phoenix --skill phoenix-cli-development -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install Arize-ai/phoenix phoenix-cli-development --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/Arize-ai/phoenix.git skills-src && mkdir -p .claude/skills && cp -r skills-src/js/packages/phoenix-cli/.agents/skills/phoenix-cli-development .claude/skills/phoenix-cli-development && 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 "phoenix-cli-development" agent skill from https://github.com/Arize-ai/phoenix/tree/main/js/packages/phoenix-cli/.agents/skills/phoenix-cli-development into .claude/skills/phoenix-cli-development/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "phoenix-cli-development", 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/Arize-ai/phoenix/tree/main/js/packages/phoenix-cli/.agents/skills/phoenix-cli-developmentType 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 Arize-ai/phoenix --skill phoenix-cli-development -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install Arize-ai/phoenix phoenix-cli-development --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Arize-ai/phoenix.git skills-src && mkdir -p .agents/skills && cp -r skills-src/js/packages/phoenix-cli/.agents/skills/phoenix-cli-development .agents/skills/phoenix-cli-development && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "phoenix-cli-development" agent skill from https://github.com/Arize-ai/phoenix/tree/main/js/packages/phoenix-cli/.agents/skills/phoenix-cli-development into .agents/skills/phoenix-cli-development/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "phoenix-cli-development", 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 Arize-ai/phoenix --skill phoenix-cli-development -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install Arize-ai/phoenix phoenix-cli-development --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Arize-ai/phoenix.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/js/packages/phoenix-cli/.agents/skills/phoenix-cli-development .cursor/skills/phoenix-cli-development && 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 "phoenix-cli-development" agent skill from https://github.com/Arize-ai/phoenix/tree/main/js/packages/phoenix-cli/.agents/skills/phoenix-cli-development into .cursor/skills/phoenix-cli-development/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "phoenix-cli-development", 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/Arize-ai/phoenix.git --path js/packages/phoenix-cli/.agents/skills/phoenix-cli-development--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 Arize-ai/phoenix --skill phoenix-cli-development -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install Arize-ai/phoenix phoenix-cli-development --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Arize-ai/phoenix.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/js/packages/phoenix-cli/.agents/skills/phoenix-cli-development .gemini/skills/phoenix-cli-development && 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 "phoenix-cli-development" agent skill from https://github.com/Arize-ai/phoenix/tree/main/js/packages/phoenix-cli/.agents/skills/phoenix-cli-development into .gemini/skills/phoenix-cli-development/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "phoenix-cli-development", 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 Arize-ai/phoenix phoenix-cli-developmentInstalls 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 Arize-ai/phoenix --skill phoenix-cli-development -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/Arize-ai/phoenix.git skills-src && mkdir -p .github/skills && cp -r skills-src/js/packages/phoenix-cli/.agents/skills/phoenix-cli-development .github/skills/phoenix-cli-development && 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 "phoenix-cli-development" agent skill from https://github.com/Arize-ai/phoenix/tree/main/js/packages/phoenix-cli/.agents/skills/phoenix-cli-development into .github/skills/phoenix-cli-development/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "phoenix-cli-development", 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 Arize-ai/phoenix --skill phoenix-cli-development -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install Arize-ai/phoenix phoenix-cli-development --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Arize-ai/phoenix.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/js/packages/phoenix-cli/.agents/skills/phoenix-cli-development .opencode/skills/phoenix-cli-development && 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 "phoenix-cli-development" agent skill from https://github.com/Arize-ai/phoenix/tree/main/js/packages/phoenix-cli/.agents/skills/phoenix-cli-development into .opencode/skills/phoenix-cli-development/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "phoenix-cli-development", 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.
phoenix-cli-developmentDesign and implementation guide for the Phoenix CLI (px). An agent skill from Arize-ai/phoenix.
Phoenix CLI Development is an agent skill from Arize-ai/phoenix. Design and implementation guide for the Phoenix CLI (px). Covers the noun-verb command structure, dual-audience design (humans and coding agents), Commander.js patterns, configuration resolution, output formats, exit codes, and conventions for adding or modifying commands. Triggers when working on phoenix-cli commands — adding new commands, modifying existing ones, refactoring command structure, or reviewing CLI code. Also triggers on mentions of px commands, CLI design, or adding a new resource to the CLI.
Its SKILL.md is about 4.2k 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 AI & LLM Engineering, covering LLM observability. The repository describes itself as: AI Observability & Evaluation. The licence is Apache-2.0.
3 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 856100b. 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:
pnpmjqFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use pnpm, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
PHOENIX_API_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Phoenix CLI Development loads about 4.2k tokens when it runs. Until then it costs about 135 tokens; SKILL.md has 1,592 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 Arize-ai/phoenix at commit 856100b, republished under its Apache-2.0 licence (© Arize-ai). 1,592 words, ~4,221 tokens.
.claude/skills/phoenix-cli-development/SKILL.md (or your agent's skills folder).The Phoenix CLI (px) is a command-line interface for the Phoenix AI observability platform. It serves two distinct audiences simultaneously: humans typing commands in a terminal and coding agents (Claude Code, Cursor, Codex, Gemini CLI) executing commands programmatically.
This specification uses RFC 2119 keywords (MUST, SHOULD, MAY, etc.) to indicate requirement strength.
All commands MUST follow a noun-verb pattern, modeled after the GitHub CLI (gh):
px <resource> <action> [arguments] [options]Resource names MUST be singular — they name the type of thing you're acting on, not how many:
px project list # not "px projects"
px project create # not "px create-project"
px trace get <trace-id>
px dataset get <name-or-id>
px auth statusCommands SHOULD use these verbs consistently across all resources:
| Verb | Purpose | Takes argument? | Example |
|---|---|---|---|
list | List/query multiple resources | No (uses flags) | px project list --limit 10 |
get | Fetch a single resource by ID | Yes (required) | px trace get <trace-id> |
create | Create a new resource | Varies | px project create --name foo |
update | Modify an existing resource | Yes (required) | px project update <id> --name bar |
delete | Remove a resource | Yes (required) | px project delete <id> |
Not every resource supports every verb — datasets MAY omit create via CLI if the primary flow is through the SDK. Commands SHALL only add verbs that make sense for the resource.
Additional verbs for specialized actions are RECOMMENDED when the standard set doesn't cover it:
px auth login, px auth statuspx self updatepx docs fetchpx api graphql <query>The CLI is evolving from a flat structure (px projects, px traces) toward full noun-verb. During the transition, both forms MAY coexist. When migrating an existing command:
.alias() or a hidden command) so existing scripts don't breakThe CLI MUST be equally usable by a person at a terminal and by a coding agent. Every command that outputs data MUST support --format:
pretty (default) — Human-readable tables and formattingjson — Indented JSON for human inspection of structured dataraw — Compact single-line JSON for piping into jq or agent consumptionCommands MAY support additional formats (e.g., --format text for prompts). The default MUST always be pretty.
Progress indicators MUST write to stderr. Agents SHOULD pass --no-progress to suppress them.
# Agent-friendly invocation
px trace list --format raw --no-progress | jq '...'Defined in src/exitCodes.ts. Commands MUST use the named constants and MUST NOT use bare numeric literals.
| Code | Constant | Meaning |
|---|---|---|
| 0 | SUCCESS | Command completed successfully |
| 1 | FAILURE | Unspecified or unexpected error |
| 2 | CANCELLED | User cancelled (e.g., declined a confirmation) |
| 3 | INVALID_ARGUMENT | Bad CLI flags, missing required args, invalid input |
| 4 | AUTH_REQUIRED | Not authenticated or insufficient permissions |
| 5 | NETWORK_ERROR | Failed to connect to server or network request |
| 6 | NOT_VERIFIED | Ran, but could not verify the result it produces |
Commands MAY prompt interactively when a required value is missing or a confirmation is needed — this is the human-friendly default. The --no-input flag MUST suppress all prompts: both missing-value prompts and destructive-action confirmations. Non-interactive mode is also activated automatically when no TTY is attached (piped stdin).
In non-interactive mode, if a required value is missing, the command MUST exit immediately with ExitCode.INVALID_ARGUMENT and print the correct invocation. If a confirmation would have been shown, the command MUST proceed as if confirmed:
# Human: missing --name triggers interactive prompt
px project create
# Agent: all inputs as flags, no prompts
px project create --name my-project --format raw --no-input
# Human: gets "Are you sure?" prompt
px dataset delete my-dataset
# Agent: skips confirmation
px dataset delete my-dataset --no-input --format rawError: Missing required flag --name.
px project create --name <project-name>Commands SHOULD be idempotent where possible. Running the same command twice MUST NOT produce duplicate resources or unexpected errors:
create commands SHOULD support --if-not-exists to return the existing resource instead of failingdelete commands on a missing resource SHOULD exit with ExitCode.SUCCESS (not an error)Mutating commands (create, update, delete) MUST return the affected resource in the selected --format on stdout. Commands MUST NOT print bare success messages like "Project created." — output the resource so agents can extract IDs, URLs, and other fields:
$ px project create --name foo --format raw
{"id":"proj_abc","name":"foo","createdAt":"2025-03-15T10:00:00Z"}When a command fails due to invalid input, the error message MUST include the correct invocation syntax. Follow the pattern established by getConfigErrorMessage() in src/config.ts:
px project list")When --format raw or --format json is active, errors SHOULD also be written as structured JSON to stderr so agents can parse them. Use the StructuredError shape:
interface StructuredError {
error: string; // Human-readable error message
code: string; // ExitCode constant name (e.g., "INVALID_ARGUMENT")
hint?: string; // Suggested command to resolve the issue
}{
"error": "Project not found",
"code": "FAILURE",
"hint": "px project list --format raw"
}Every subcommand MUST include a --help with at least one concrete example. Use Commander's .addHelpText('after', ...) to append an Examples: block:
$ px project create --help
Usage: px project create [options]
Create a new Phoenix project.
Options:
--name <name> Project name (required)
--description <d> Project description
--format <format> Output format (pretty|json|raw) (default: "pretty")
-h, --help Display help
Examples:
px project create --name my-project
px project create --name my-project --format rawAgents discover capabilities incrementally: px → px project → px project create --help. Each level MUST provide enough information to navigate deeper.
Every handler MUST define a TypeScript interface for its options — the typed mirror of the flags its command registers. Field names MUST be descriptive; abbreviations MUST NOT be used.
The shapes that recur across commands live in src/commands/options.ts and MUST be reused rather than re-declared:
| Type | Fields | Use for |
|---|---|---|
ConnectionOptions | endpoint, apiKey | Any command that calls the Phoenix API |
CommonOptions<TFormat> | + format, progress | Any command that prints a resource |
ProjectScopedOptions<TFormat> | + project | Commands that register --project |
AnnotationInclusionOptions | includeAnnotations, includeNotes | Span/trace/session reads |
DeleteOptions | endpoint, apiKey, progress, yes | Delete verbs (used directly — no local interface) |
AnnotateOptions | name, label, score, explanation, annotatorKind, … | annotate verbs |
AddNoteOptions | text, identifier | add-note verbs |
AnnotationsDeleteOptions | filters + all, yes | *-annotations delete commands |
A command whose flags exactly match a shared shape MUST use that type directly instead of declaring an identical local one. Otherwise, extend the matching base and declare only the flags unique to the command:
interface SpanListOptions
extends ProjectScopedOptions<SpanOutputFormat>, AnnotationInclusionOptions {
/**
* `--span-kind <kinds...>`: Filter by OpenInference span kind — `LLM`,
* `CHAIN`, `TOOL`, …
*
* @example ["LLM", "TOOL"]
*/
spanKind?: string[];
}Every field MUST carry a TSDoc block that opens with the literal flag and its argument placeholder, states any default declared in the .option() call, and gives an @example where a concrete value clarifies usage. Negated flags (--no-progress, --no-input) MUST document their inverted reading: Commander defaults them to true and only sets false when the flag is passed.
Commands that prompt for input or confirmation MUST support non-interactive mode — --no-input for prompts (px setup), --yes via ConfirmationOptions for destructive confirmations.
The CLI MUST resolve configuration from multiple sources. Use resolveConfig() from src/config.ts for this merge logic. Priority:
--endpoint, --api-key, --projectPHOENIX_ENDPOINT, PHOENIX_API_KEY, PHOENIX_PROJECT (alias: PHOENIX_PROJECT_NAME)http://localhost:6006 for endpointCommand handlers MUST NOT read environment variables directly.
Each resource type SHOULD have formatting modules in src/commands/format*.ts. When creating a new resource command, a corresponding formatter MUST be created following the existing pattern.
formatTable.ts — Shared table rendering with terminal-width-aware column truncationformatProjectsOutput(), formatTracesOutput(), etc. — Resource-specific formattersFormatters MUST accept a format option and return a string.
Commands MUST use the helpers from src/io.ts:
writeOutput({ message }); // → stdout (data the user/agent wants)
writeError({ message }); // → stderr (errors)
writeProgress({ message, noProgress }); // → stderr (suppressible status updates)console.log MUST NOT be used directly. The writeOutput/writeError split ensures stdout contains only data output, which is REQUIRED for piping correctness.
Code MUST follow these naming conventions (see also the phoenix-typescript skill):
camelCase — createProjectCommand, projectListHandlerPascalCase — ProjectListOptions, OutputFormatSCREAMING_SNAKE_CASE — ExitCode.SUCCESS, CLI_VERSIONcamelCase.ts — projects.ts, formatProjects.tsprojectIdentifier not projId, annotationConfig not annCfgTests use vitest and live in the test/ directory, mirroring src/ structure.
pnpm test # run all tests
pnpm test:watch # watch modeHTTP is mocked with @arizeai/phoenix-testing (MSW handlers generated from the OpenAPI definition) — tests MUST NOT stub the global fetch. Use the shared harness:
test/mockServer.ts — call const mock = setupMockPhoenixServer() at module top level; every documented Phoenix endpoint answers with schema-generated data, and unhandled requests fail the test. Pin exact responses per-test with the typed http namespace: mock.server.use(http.get("/v1/projects", ({ response }) => response(200).json({...}))). Assert on the request (params, query, body) by capturing values inside the handler.test/testUtils.ts — BASE_ARGS (endpoint + --no-progress args), mockProcessExit() (throws process.exit:<code> for exit-code assertions), and captureCliOutput() (silenced stdout/stderr spies).@arizeai/phoenix-testing (HttpResponse, http); HttpResponse.error() simulates network failure.fetchImpl params in OAuth helpers) is fine as-is and does not need MSW.When adding a command, tests MUST cover:
pnpm build # TypeScript → build/
pnpm dev # Run from source via tsx (during development)The CLI is published as @arizeai/phoenix-cli with binary aliases px and phoenix-cli.
Global options (--endpoint, --api-key) MUST be placed on the verb, not the noun. This is REQUIRED because Commander attaches options to the command that defines them:
# Correct — options on the verb
px project list --endpoint http://my-server:6006
# Wrong — options on the noun (Commander won't parse these)
px project --endpoint http://my-server:6006 listsrc/commands/<resource>.ts with create<Resource>Command() exporting the nounlist, get, create, etc.) as neededsrc/commands/format<Resource>.ts for output formattingresolveConfig() for configuration, createPhoenixClient() for API callswriteOutput()/writeError() for I/O, semantic ExitCode constants for errorssrc/commands/index.tssrc/cli.ts via program.addCommand()test/pnpm test — fix any failures before proceedingpnpm build — fix any type errors before proceedingREADME.md with usage examples showing both human and agent-friendly invocations.agents/skills/phoenix-cli/SKILL.md when commands, flags, examples, or output shapes change--no-input (see InteractiveCommandOptions)--help via .addHelpText('after', ...)--format raw and --no-input to verify agents get clean, parseable output© Arize-ai, 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 js/packages/phoenix-cli/.agents/skills/phoenix-cli-development of Arize-ai/phoenix.
Open the folder on GitHubat commit 856100b
Phoenix CLI Development 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 |
|---|---|---|---|---|---|---|
| Phoenix CLI Development this skillArize-ai/phoenix | 12k | — | ~4.2k | Automated safety check: Pass | Apache-2.0 | |
| Langfuse Codebase Navigatorlangfuse/langfuse | 36k | — | ~1.4k | Automated safety check: Pass | Custom licence | |
| LLM Trace Review Interfaceai-evals-course/evals-skills | 1.5k | — | ~1.4k | Automated safety check: Pass | Apache-2.0 | |
| Langfuse Integration Pagelangfuse/langfuse-docs | 246 | — | ~3.7k | Automated safety check: Pass | MIT | |
| Langfuselangfuse/skills | 299 | — | ~2.1k | Automated safety check: Notes | MIT | |
| Livetablegurujada/live_table | 211 | — | ~1.9k | Automated safety check: Pass | MIT |
langfuse/langfuse
Navigate Langfuse repositories, code areas, and agent skills.
ai-evals-course/evals-skills
Builds a browser-based annotation page for reviewing LLM traces one at a time with pass/fail labels, notes and saved results, tailored to your data.
langfuse/langfuse-docs
Create a new Langfuse integration page in the langfuse-docs repo.
langfuse/skills
Interact with Langfuse and access its documentation: tracing, monitoring, creating datasets, running experiments, and evaluating AI applications.
gurujada/live_table
A skill your agent uses when building, modifying, or reviewing Phoenix LiveView tables with LiveTable, including schema-backed tables, context-owned data providers, joined queries, filters…
langchain-ai/langsmith-skills
Design, test, create, and attach LangSmith online evaluators for production traces or conversation threads.
Arize-ai/phoenix
A skill your agent uses when working with Harbor's harbor exec CLI workflow: compiling files, directories, or globs into Harbor tasks; running map jobs; configuring artifacts and existence-only…
Arize-ai/phoenix
Build and maintain documentation sites with Mintlify. An agent skill from Arize-ai/phoenix.
Arize-ai/phoenix
Frontend development guidelines for the Phoenix AI observability platform.
Arize-ai/phoenix
Write efficient GraphQL queries against the Phoenix API. An agent skill from Arize-ai/phoenix.
Arize-ai/phoenix
Backend development guide for the Phoenix AI observability platform (Strawberry GraphQL, SQLAlchemy async, FastAPI).
Arize-ai/phoenix
Conventions for creating, modifying, and reviewing production-faithful Storybook stories in the Phoenix frontend (js/app/stories, js/app/.storybook).
Categories
Design and implementation guide for the Phoenix CLI (px). An agent skill from Arize-ai/phoenix. Phoenix CLI Development is an agent skill from Arize-ai/phoenix. Design and implementation guide for the Phoenix CLI (px).
Phoenix CLI Development fits situations like: working on phoenix-cli commands — adding new commands; modifying existing ones; refactoring command structure; reviewing CLI code.
Run `npx skills add Arize-ai/phoenix --skill phoenix-cli-development -a claude-code`. Or copy the skill folder (js/packages/phoenix-cli/.agents/skills/phoenix-cli-development in Arize-ai/phoenix) into .claude/skills/phoenix-cli-development in your project. Claude Code loads it when a task matches its description.
Run `npx skills add Arize-ai/phoenix --skill phoenix-cli-development -a codex`. Or copy the skill folder (js/packages/phoenix-cli/.agents/skills/phoenix-cli-development in Arize-ai/phoenix) into .agents/skills/phoenix-cli-development 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 Arize-ai/phoenix --skill phoenix-cli-development -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/phoenix-cli-development, .gemini/skills/phoenix-cli-development, .github/skills/phoenix-cli-development and .opencode/skills/phoenix-cli-development in your project.
Going by SKILL.md and its folder, Phoenix CLI Development needs the command-line tools its instructions call (pnpm and jq) and credentials named PHOENIX_API_KEY. Our summary lists: A credential in PHOENIX_API_KEY.
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.
Phoenix CLI Development is published under the Apache-2.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.2k tokens (SKILL.md is roughly 17k 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 Phoenix CLI Development: Langfuse Codebase Navigator (langfuse/langfuse, 36k stars), LLM Trace Review Interface (ai-evals-course/evals-skills, 1.5k stars), Langfuse Integration Page (langfuse/langfuse-docs, 246 stars) and Langfuse (langfuse/skills, 299 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Arize-ai (a GitHub organization) maintains it in Arize-ai/phoenix, which has 11,744 GitHub stars. The repository holds 39 skills in this directory. The repository was last updated on October 8, 2026.
Source: Arize-ai/phoenix on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.