Databricks
rocky-data/rocky
Databricks REST API and SQL reference for Rocky's warehouse adapter.
This skill should be used when user asks to "query OpenObserve", "create OpenObserve dashboard", "edit OpenObserve panel", "fetch OpenObserve logs", "run OpenObserve search", "list OpenObserve…
$ npx skills add fcakyon/claude-codex-settings --skill openobserve-api -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install fcakyon/claude-codex-settings openobserve-api --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/fcakyon/claude-codex-settings.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/openobserve-skills/skills/openobserve-api .claude/skills/openobserve-api && 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 "openobserve-api" agent skill from https://github.com/fcakyon/claude-codex-settings/tree/main/plugins/openobserve-skills/skills/openobserve-api into .claude/skills/openobserve-api/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "openobserve-api", 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/fcakyon/claude-codex-settings/tree/main/plugins/openobserve-skills/skills/openobserve-apiType 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 fcakyon/claude-codex-settings --skill openobserve-api -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install fcakyon/claude-codex-settings openobserve-api --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/fcakyon/claude-codex-settings.git skills-src && mkdir -p .agents/skills && cp -r skills-src/plugins/openobserve-skills/skills/openobserve-api .agents/skills/openobserve-api && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "openobserve-api" agent skill from https://github.com/fcakyon/claude-codex-settings/tree/main/plugins/openobserve-skills/skills/openobserve-api into .agents/skills/openobserve-api/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "openobserve-api", 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 fcakyon/claude-codex-settings --skill openobserve-api -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install fcakyon/claude-codex-settings openobserve-api --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/fcakyon/claude-codex-settings.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/plugins/openobserve-skills/skills/openobserve-api .cursor/skills/openobserve-api && 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 "openobserve-api" agent skill from https://github.com/fcakyon/claude-codex-settings/tree/main/plugins/openobserve-skills/skills/openobserve-api into .cursor/skills/openobserve-api/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "openobserve-api", 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/fcakyon/claude-codex-settings.git --path plugins/openobserve-skills/skills/openobserve-api--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 fcakyon/claude-codex-settings --skill openobserve-api -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install fcakyon/claude-codex-settings openobserve-api --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/fcakyon/claude-codex-settings.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/plugins/openobserve-skills/skills/openobserve-api .gemini/skills/openobserve-api && 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 "openobserve-api" agent skill from https://github.com/fcakyon/claude-codex-settings/tree/main/plugins/openobserve-skills/skills/openobserve-api into .gemini/skills/openobserve-api/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "openobserve-api", 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 fcakyon/claude-codex-settings openobserve-apiInstalls 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 fcakyon/claude-codex-settings --skill openobserve-api -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/fcakyon/claude-codex-settings.git skills-src && mkdir -p .github/skills && cp -r skills-src/plugins/openobserve-skills/skills/openobserve-api .github/skills/openobserve-api && 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 "openobserve-api" agent skill from https://github.com/fcakyon/claude-codex-settings/tree/main/plugins/openobserve-skills/skills/openobserve-api into .github/skills/openobserve-api/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "openobserve-api", 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 fcakyon/claude-codex-settings --skill openobserve-api -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install fcakyon/claude-codex-settings openobserve-api --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/fcakyon/claude-codex-settings.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/plugins/openobserve-skills/skills/openobserve-api .opencode/skills/openobserve-api && 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 "openobserve-api" agent skill from https://github.com/fcakyon/claude-codex-settings/tree/main/plugins/openobserve-skills/skills/openobserve-api into .opencode/skills/openobserve-api/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "openobserve-api", 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.
openobserve-apiThis skill should be used when user asks to "query OpenObserve", "create OpenObserve dashboard", "edit OpenObserve panel", "fetch OpenObserve logs", "run OpenObserve search", "list OpenObserve…
Openobserve API is an agent skill from fcakyon/claude-codex-settings. This skill should be used when user asks to "query OpenObserve", "create OpenObserve dashboard", "edit OpenObserve panel", "fetch OpenObserve logs", "run OpenObserve search", "list OpenObserve streams", "ingest into OpenObserve", or works with OpenObserve Cloud / self-hosted via REST API. Covers auth, search/SQL, streams, dashboards (CRUD + per-panel ops), the v8 panel JSON schema, and known pitfalls (re-aggregation, hash concurrency, microsecond timestamps).
Its SKILL.md is about 4.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 18 other files, including reference files (for example `references/around.md`, `references/bulk.md` and `references/delete.md`).
It sits in Backend & APIs, covering REST APIs and SQL. It works with SQL. The repository describes itself as: Battle-tested Claude Code, OpenAI Codex, Cursor configs, plugins, hooks and agents with Kimi, MiniMax and GLM API support. The licence is Apache-2.0.
9 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 7a519d8. 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.
Ships script files (Shell), which the agent can run.
Shell commands in SKILL.md call:
curljqghFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
eu1.openobserve.aiAlso links to:
github.comcloud.openobserve.aiFrom 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.
Openobserve API loads about 4.1k tokens when it runs, and up to ~22k if it reads all its reference files. Until then it costs about 120 tokens; SKILL.md has 884 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 fcakyon/claude-codex-settings at commit 7a519d8, republished under its Apache-2.0 licence (© fcakyon). 884 words, ~4,101 tokens.
.claude/skills/openobserve-api/SKILL.md (or your agent's skills folder). This skill also uses 16 other files; get the full folder from GitHub.Programmatic OpenObserve usage for AI agents. Talk to any OpenObserve instance (Cloud or self-hosted) using curl and the documented REST API. No CLI required — there is no first-party OpenObserve CLI.
Your knowledge of OpenObserve API shapes may be outdated. Prefer retrieval over pre-training:
| Source | How to retrieve | Use for |
|---|---|---|
| Docs repo | gh api repos/openobserve/openobserve-docs/contents/docs/reference/api/{path}.md -q .content | base64 -d | Authoritative request/response samples |
| Server source | gh api repos/openobserve/openobserve/contents/src/handler/http/request/dashboards/mod.rs -q .content | base64 -d | Endpoint paths, query params, status codes |
| Panel schema | gh api repos/openobserve/openobserve/contents/src/config/src/meta/dashboards/v8/mod.rs -q .content | base64 -d | Exact panel JSON structure (Rust structs) |
When docs and server source disagree, trust the server source — handlers ship faster than docs.
HTTPS basic auth with email + password. There is no token endpoint.
# Method 1: curl -u shorthand
curl -u "you@example.com:PASSWORD" "https://eu1.openobserve.ai/api/<org>/streams"
# Method 2: explicit header
TOKEN=$(printf '%s' "you@example.com:PASSWORD" | base64)
curl -H "Authorization: Basic $TOKEN" "https://eu1.openobserve.ai/api/<org>/streams"Endpoints below assume BASE=https://<host>/api/<org> and AUTH="-u you@example.com:PASSWORD".
POST $BASE/_searchOptional query string ?type=logs|metrics|traces (default logs).
curl $AUTH -H 'Content-Type: application/json' \
"$BASE/_search?type=logs" \
-d '{
"query": {
"sql": "SELECT host_name, COUNT(*) AS n FROM \"my_stream\" GROUP BY host_name ORDER BY n DESC",
"start_time": 1777000000000000,
"end_time": 1777999999000000,
"from": 0,
"size": 100
},
"search_type": "ui"
}'start_time/end_time — missing them scans everything.search_type ∈ ui | dashboards | reports | alerts — affects rate limits and audit logs.from (offset) + size (limit, max ~10000 per request).{ took, hits[], total, from, size, scan_size }."stream_name"), strings in single quotes ('value').SELECT histogram(_timestamp, '5 minute') AS ts, COUNT(*) FROM "stream" GROUP BY ts ORDER BY ts.SELECT k8s_namespace, COUNT(*) FROM "stream" GROUP BY k8s_namespace.match_all('text'), str_match(field, 'text'). Default full-text fields: log, message, msg, content, data, json.POST $BASE/prometheus/api/v1/query_range.GET $BASE/{stream}/_around?key=<ts_us>&size=N.GET $BASE/streams# List
curl $AUTH "$BASE/streams?fetchSchema=false&type=logs"
# Schema
curl $AUTH "$BASE/streams/<stream>/schema?type=logs"
# Update settings
curl $AUTH -X PUT -H 'Content-Type: application/json' "$BASE/streams/<stream>/settings" -d '{"partition_keys":["host_name"]}'
# Delete
curl $AUTH -X DELETE "$BASE/streams/<stream>?type=logs"Field types: Utf8 | Int64 | Float64 | Timestamp | Boolean. Timestamp field is always _timestamp (microseconds).
GET|POST|PUT|DELETE $BASE/dashboardsAll take ?folder=<folder_id> (default default).
# List
curl $AUTH "$BASE/dashboards?folder=default"
# Get one (returns versioned wrapper {v1..v8, version, hash, updatedAt})
curl $AUTH "$BASE/dashboards/<dashboard_id>?folder=default"
# Create — body is the UNWRAPPED inner v8 object
curl $AUTH -X POST -H 'Content-Type: application/json' \
"$BASE/dashboards?folder=default" \
-d @dashboard-v8.json
# Update — REQUIRES the current hash for optimistic concurrency
HASH=$(curl -s $AUTH "$BASE/dashboards/<id>?folder=default" | jq -r .hash)
curl $AUTH -X PUT -H 'Content-Type: application/json' \
"$BASE/dashboards/<id>?folder=default&hash=$HASH" \
-d @updated-dashboard.json
# Delete
curl $AUTH -X DELETE "$BASE/dashboards/<id>?folder=default"
# Move between folders
curl $AUTH -X PUT -H 'Content-Type: application/json' \
"$BASE/folders/dashboards/<id>" \
-d '{"from":"default","to":"<target_folder_id>"}'Critical: PUT/POST body must be the unwrapped inner v8 object, not the full {v1..v8, version, hash} wrapper. The server returns the wrapper but expects you to send only the inner object back.
# Read, mutate, write — the correct pattern
RAW=$(curl -s $AUTH "$BASE/dashboards/<id>?folder=default")
HASH=$(echo "$RAW" | jq -r .hash)
echo "$RAW" | jq '.v8 | .title = "New Title"' \
| curl -s $AUTH -X PUT -H 'Content-Type: application/json' \
"$BASE/dashboards/<id>?folder=default&hash=$HASH" -d @-A 409 Conflict response means the hash is stale — refetch and retry.
# Add panel
curl $AUTH -X POST -H 'Content-Type: application/json' \
"$BASE/dashboards/<id>/panels?folder=default&hash=$HASH" \
-d '{"panel": {...}, "tabId": "default"}'
# Update panel
curl $AUTH -X PUT -H 'Content-Type: application/json' \
"$BASE/dashboards/<id>/panels/<panel_id>?folder=default&hash=$HASH" \
-d '{...panel...}'
# Delete panel
curl $AUTH -X DELETE \
"$BASE/dashboards/<id>/panels/<panel_id>?folder=default&hash=$HASH&tabId=default"The dashboard tree: dashboard.tabs[].panels[]. Each panel:
{
"id": "panel-1",
"type": "table",
"title": "Per-host stats",
"description": "",
"queryType": "sql",
"queries": [
{
"query": "SELECT host_name, COUNT(*) AS n FROM \"my_stream\" GROUP BY host_name ORDER BY n DESC",
"vrlFunctionQuery": "",
"customQuery": true,
"fields": {
"stream": "my_stream",
"stream_type": "logs",
"x": [
{ "label": "Host", "alias": "host_name", "column": "host_name", "color": null, "aggregationFunction": null }
],
"y": [
{
"label": "Count",
"alias": "n",
"column": "n",
"color": null,
"aggregationFunction": null,
"treatAsNonTimeseries": true
}
],
"z": [],
"breakdown": [],
"filter": { "filterType": "group", "logicalOperator": "AND", "conditions": [] }
},
"config": { "promql_legend": "", "layer_type": "scatter", "weight_fixed": 1, "limit": 0, "min": 0, "max": 100 }
}
],
"config": {
"show_legends": true,
"decimals": 2,
"unit": "currency",
"unit_custom": "USD"
},
"layout": { "x": 0, "y": 0, "w": 48, "h": 14, "i": 1 }
}type valuesmetric (single big number) · table · bar · h-bar · stacked · h-stacked · line · area · area-stacked · scatter · pie · donut · heatmap · gauge · geomap · maps · sankey · html · markdown.
The grid is 96 columns wide (verified via inspection of returned panel layouts on April 2026 OpenObserve Cloud). Older docs mention 192 or 48 — when in doubt, GET an existing dashboard from the same org and copy the w values you see. Heights are unitless rows (h: 7 = small metric panel; h: 14 = standard table).
config keys| Key | Effect |
|---|---|
decimals | Number of decimal places for all numeric columns (0 = integers). |
unit | numbers | currency | bytes | seconds | milliseconds | microseconds | nanoseconds | percent | percent-1 |
unit_custom | When unit=currency, ISO code like USD. |
show_legends | Boolean, charts only. |
legends_position | right | bottom. |
axis_border_show | Boolean. |
line_interpolation | smooth | linear | step-start | step-end. |
connect_nulls | Boolean — line/area only. |
top_results | Cap series count for line/bar (e.g. 10). |
mark_line | [{name, type:'avg'|'max'|'min', value}] — horizontal reference lines. |
6a. Re-aggregation when customQuery: true — the most common bug.
If your hand-written SQL already contains COUNT(*), SUM(...), AVG(...) etc., every entry in fields.y (and fields.x) must set aggregationFunction: null. Default 'sum' causes OpenObserve to wrap the already-aggregated column in another aggregation client-side, producing duplicate rows and wildly inflated numbers.
// WRONG — produces duplicate rows
"y": [{"column":"messages", "aggregationFunction":"count"}]
// RIGHT — SQL already did the aggregation
"y": [{"column":"messages", "aggregationFunction":null, "treatAsNonTimeseries":true}]6b. Multiple fields.y on Table panels — each Y entry can render as a separate series/row. For a Table that should display one row per group, put only one entry in fields.y (any one column); the renderer will then display all SQL columns as table columns.
6c. Metric panels with customQuery: true — must explicitly map the result column to fields.y:
"y": [{"label":"Value", "alias":"value", "column":"value", "aggregationFunction":"sum", "treatAsNonTimeseries":false}]The metric panel needs to know which column is the number to display.
6d. ROUND + wildcard timestamp expansion — OpenObserve's planner sometimes auto-injects _timestamp into queries that wrap SUM(col) in ROUND(...), producing Column "_timestamp" must appear in the GROUP BY clause errors. Workaround: drop ROUND() and use the panel's decimals config instead, or pre-cast: CAST(SUM(...) AS DOUBLE).
6e. Hash-based concurrency on PUT — every successful PUT changes the dashboard hash. If you mutate a dashboard from two scripts back-to-back, the second one needs to refetch. Always re-GET before each PUT to grab the current hash.
6f. start_time/end_time are microseconds — Date.now() * 1000, not milliseconds. Off-by-1000× returns no hits but no error.
Folders (v2 API):
curl $AUTH "$BASE/folders/dashboards" # list
curl $AUTH -X POST "$BASE/folders/dashboards" -d '{"name":"my-folder"}'
curl $AUTH "$BASE/folders/dashboards/name/<folder_name>" # lookup by namefolder_type ∈ dashboards | alerts | reports.
Alerts:
curl $AUTH "$BASE/{stream}/alerts" # list per-stream
curl $AUTH -X POST "$BASE/{stream}/alerts" -d '{...}'
# templates and destinations are referenced by alert definitions:
curl $AUTH "$BASE/alerts/templates"
curl $AUTH "$BASE/alerts/destinations"Ingestion (POST your own data in):
# JSON
curl $AUTH -X POST "$BASE/<stream>/_json" -d '[{"event":"foo","level":"info"}]'
# Multi-line JSON (one per line)
curl $AUTH -X POST "$BASE/<stream>/_multi" --data-binary @file.ndjson
# Elasticsearch bulk
curl $AUTH -X POST "$BASE/_bulk" --data-binary @bulk.txt
# OTLP HTTP
curl $AUTH -X POST "$BASE/v1/logs" -d @otlp-logs.json
curl $AUTH -X POST "$BASE/v1/traces" -d @otlp-traces.json
curl $AUTH -X POST "$BASE/v1/metrics" -d @otlp-metrics.json
# Loki
curl $AUTH -X POST "$BASE/loki/api/v1/push" -d @loki.json
# Prometheus remote-write (binary protobuf)
curl $AUTH -X POST "$BASE/prometheus/api/v1/write" --data-binary @write.pbGet top hosts by message count (last 24h):
NOW=$(($(date +%s) * 1000000))
DAY=$((NOW - 86400 * 1000000))
curl $AUTH -H 'Content-Type: application/json' \
"$BASE/_search?type=logs" \
-d "{\"query\":{\"sql\":\"SELECT host_name, COUNT(*) AS n FROM \\\"my_stream\\\" GROUP BY host_name ORDER BY n DESC\",\"start_time\":$DAY,\"end_time\":$NOW,\"size\":50}}"Add a metric panel to an existing dashboard (single-shot, hash-aware):
DASH_ID=<dashboard_id>
HASH=$(curl -s $AUTH "$BASE/dashboards/$DASH_ID?folder=default" | jq -r .hash)
curl $AUTH -X POST -H 'Content-Type: application/json' \
"$BASE/dashboards/$DASH_ID/panels?folder=default&hash=$HASH" \
-d '{
"tabId": "default",
"panel": {
"id": "p-cost",
"type": "metric",
"title": "Total cost (USD)",
"queryType": "sql",
"queries": [{
"query": "SELECT SUM(CAST(cost_usd AS DOUBLE)) AS value FROM \"my_stream\"",
"customQuery": true,
"fields": {
"stream":"my_stream", "stream_type":"logs",
"x":[], "z":[], "breakdown":[],
"y":[{"label":"Value","alias":"value","column":"value","aggregationFunction":"sum","treatAsNonTimeseries":false}],
"filter":{"filterType":"group","logicalOperator":"AND","conditions":[]}
},
"config":{}
}],
"config": {"unit":"currency","unit_custom":"USD","decimals":2},
"layout": {"x":0,"y":0,"w":32,"h":7,"i":99}
}
}'Build a complete dashboard from scratch: GET an existing dashboard's panel JSON as a template (it's the safest way to learn the exact field shapes the server will accept), then mutate the tabs[0].panels array and PUT the unwrapped v8 body back. See the references/recipes/build-dashboard.sh script that ships with this skill for a working example.
| Language | Repo | Status |
|---|---|---|
| Python | github.com/openobserve/openobserve-python-sdk | Active |
| Go | github.com/openobserve/openobserve-go-client | ZincObserve-era, partial |
| Helm chart | github.com/openobserve/openobserve-helm-chart | Active |
| OTel collector distro | github.com/openobserve/openobserve-otel-collector | Active |
For most agent tasks, plain curl against the REST API is the right tool — the SDKs add little value over an HTTP request and lag the server feature set.
docs/reference/api/)src/handler/http/request/, src/config/src/meta/dashboards/v8/mod.rs)references/ directory in this skill mirrors selected docs from openobserve-docs for offline access.© fcakyon, 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
SKILL.md and 16 other files (references) in plugins/openobserve-skills/skills/openobserve-api of fcakyon/claude-codex-settings.
Open the folder on GitHubat commit 7a519d8
We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in fcakyon/claude-codex-settings, which our catalogue first saw on October 7, 2026.
Openobserve API 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 |
|---|---|---|---|---|---|---|
| Openobserve API this skillfcakyon/claude-codex-settings | 1.2k | 1 repos | ~4.1k | Automated safety check: Pass | Apache-2.0 | |
| Databricksrocky-data/rocky | 304 | — | ~2k | Automated safety check: Pass | Apache-2.0 | |
| File To Codejeremylongshore/tons-of-skills-marketplace | 2.8k | — | ~1.6k | Automated safety check: Pass | MIT | |
| NpgsqlrestNpgsqlRest/NpgsqlRest | 132 | — | ~7k | Automated safety check: Notes | MIT | |
| Querying Tempotempoxyz/tidx | 107 | — | ~3.1k | Automated safety check: Pass | MIT | |
| Sap Abapsecondsky/sap-skills | 462 | — | ~3.9k | Automated safety check: Pass | GPL-3.0 |
rocky-data/rocky
Databricks REST API and SQL reference for Rocky's warehouse adapter.
jeremylongshore/tons-of-skills-marketplace
Generates production-ready code from file specifications such as CSV files, JSON schemas, SQL DDL, protobuf definitions, or requirements documents.
NpgsqlRest/NpgsqlRest
Build and modify REST APIs with NpgsqlRest — exposing PostgreSQL as HTTP endpoints from two sources (database functions/procedures/tables/views, and plain .sql files), driven by SQL comment…
tempoxyz/tidx
Query indexed Tempo chain data via tidx HTTP API and CLI. An agent skill from tempoxyz/tidx.
secondsky/sap-skills
Comprehensive ABAP development skill for SAP systems. An agent skill from secondsky/sap-skills.
oracle/skills
Oracle Database guidance for SQL, PL/SQL, SQLcl, ORDS, Oracle Vector SDK, administration, app development, performance, security, migrations, and agent-safe database workflows.
fcakyon/claude-codex-settings
Create and edit presentation slide decks (.pptx) with PptxGenJS, bundled layout helpers, and render/validation utilities.
fcakyon/claude-codex-settings
This skill should be used when user asks to "use supabase-js", "query Supabase database", "supabase auth", "supabase storage", "supabase realtime", "supabase edge functions", or works with the…
fcakyon/claude-codex-settings
This skill should be used when user asks to "improve my mAP", "why is my model overfitting", "my training is diverging", "read my results.csv", "interpret my training curves", "my AP50 is good but…
fcakyon/claude-codex-settings
This skill should be used when user asks to "deploy with Dokploy", "use Dokploy Cloud", "manage self-hosted Dokploy", "deploy Docker Compose on Dokploy", "manage Dokploy databases", "configure…
fcakyon/claude-codex-settings
This skill should be used when the user asks to "create openship.json", "configure an OpenShip deployment", "make a repo deployable on OpenShip", or fix "openship config validate" errors.
fcakyon/claude-codex-settings
This skill should be used when writing, reviewing, or refactoring Python code.
Works with
Categories
This skill should be used when user asks to "query OpenObserve", "create OpenObserve dashboard", "edit OpenObserve panel", "fetch OpenObserve logs", "run OpenObserve search", "list OpenObserve…. Openobserve API is an agent skill from fcakyon/claude-codex-settings. This skill should be used when user asks to "query OpenObserve", "create OpenObserve dashboard", "edit OpenObserve panel", "fetch OpenObserve logs", "run OpenObserve search", "list OpenObserve streams", "ingest into OpenObserve", or works with OpenObserve Cloud / self-hosted via REST API.
Openobserve API fits situations like: asks to query OpenObserve; create OpenObserve dashboard; edit OpenObserve panel; fetch OpenObserve logs.
Run `npx skills add fcakyon/claude-codex-settings --skill openobserve-api -a claude-code`. Or copy the skill folder (plugins/openobserve-skills/skills/openobserve-api in fcakyon/claude-codex-settings) into .claude/skills/openobserve-api in your project. Claude Code loads it when a task matches its description.
Run `npx skills add fcakyon/claude-codex-settings --skill openobserve-api -a codex`. Or copy the skill folder (plugins/openobserve-skills/skills/openobserve-api in fcakyon/claude-codex-settings) into .agents/skills/openobserve-api 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 fcakyon/claude-codex-settings --skill openobserve-api -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/openobserve-api, .gemini/skills/openobserve-api, .github/skills/openobserve-api and .opencode/skills/openobserve-api in your project.
Going by SKILL.md and its folder, Openobserve API needs a shell for the scripts in its folder and the command-line tools its instructions call (curl, jq and gh). Our summary lists: A Bash shell.
SKILL.md names 3 domains. In commands or code: eu1.openobserve.ai; the agent is likely to contact it when it follows the instructions. As links in the text: github.com and cloud.openobserve.ai. 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.
Openobserve API 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.1k tokens (SKILL.md is roughly 16k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 18k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Openobserve API: Databricks (rocky-data/rocky, 304 stars), File To Code (jeremylongshore/tons-of-skills-marketplace, 2.8k stars), Npgsqlrest (NpgsqlRest/NpgsqlRest, 132 stars) and Querying Tempo (tempoxyz/tidx, 107 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
fcakyon (a GitHub user) maintains it in fcakyon/claude-codex-settings, which has 1,165 GitHub stars. The repository holds 43 skills in this directory. The repository was last updated on October 7, 2026.
Source: fcakyon/claude-codex-settings on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.