
Axiom
FreeEfficiently query and analyze Axiom logs and datasets.
Free · Opens the source repo
What Axiom does
Axiom is a command-line skill designed for querying and analyzing datasets using Axiom Processing Language (APL). It is particularly useful for developers and engineers who need to investigate production errors, debug webhook failures, and analyze system behavior through log data. With Axiom, users can perform log searches, aggregations, field analyses, and time-based filtering to gain insights into application performance and issues.
The skill supports a variety of commands that allow users to list available datasets, run APL queries, and filter logs based on specific criteria. For instance, you can retrieve logs for a specific service, count errors, and summarize data over time. This functionality is crucial for monitoring services, identifying error patterns, and ensuring that applications are running smoothly. Axiom is especially beneficial for teams working with production environments, as it provides the necessary tools to maintain operational integrity.
To set up Axiom, users need to create a .env file with specific environment variables, including an Axiom token with read/query permissions. This ensures that the skill can access the required datasets securely. The skill is built to run in Node.js and Bash environments, making it flexible for integration into existing workflows.
Overall, Axiom is an essential tool for anyone involved in application development and maintenance, providing powerful querying capabilities to facilitate effective debugging and monitoring of production systems.
When to use it
Use Axiom when you need to debug issues in production, analyze logs for error patterns, or investigate specific service behaviors.
When not to use it
Axiom may not be suitable for users who do not have access to Axiom datasets or require a graphical interface for log analysis.
What you can build with it
Investigating Production Errors
Use Axiom to quickly query logs and identify the root cause of errors in your production environment.
Debugging Webhook Failures
Analyze logs related to webhook events to determine why certain webhooks may have failed.
Monitoring Service Health
Regularly check logs for specific services to ensure they are functioning correctly and identify any emerging issues.
How to install Axiom
View source1. Install with the skills CLI
npx skills add civitai/civitai/axiom --agent claude-code2. Or install it manually
Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.
Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs
Inside SKILL.md
Written by civitaiAxiom
Query Axiom datasets using APL (Axiom Processing Language). Supports log search, aggregation, field analysis, and time-based filtering.
Setup
Create .env in this skill directory:
AXIOM_TOKEN=xaat-your-token-here
AXIOM_ORG_ID=your-org-id
AXIOM_DATASTREAM=civitai-prod
AXIOM_DOMAIN=api.axiom.co
Token needs read/query permissions (the project .env token is ingest-only).
Quick Reference
SKILL_DIR=".claude/skills/axiom"
# List available datasets
node "$SKILL_DIR/axiom.mjs" datasets
# Run an APL query
node "$SKILL_DIR/axiom.mjs" query "['civitai-prod'] | where name == 'nowpayments-webhook' | take 10" --format legacy --json
# Search logs with filters
node "$SKILL_DIR/axiom.mjs" query "['civitai-prod'] | where name == 'some-service' and type == 'error' | project _time, message, error | sort by _time desc | take 50" --start "2026-03-01T00:00:00Z" --end "2026-04-01T00:00:00Z" --format legacy --json
# Count errors by message
node "$SKILL_DIR/axiom.mjs" query "['civitai-prod'] | where name == 'my-service' | summarize count() by message | order by count_ desc" --start "2026-03-01T00:00:00Z" --format legacy --json
# Top values for a field
node "$SKILL_DIR/axiom.mjs" query "['civitai-prod'] | where type == 'error' | summarize count() by name | order by count_ desc | take 20" --format legacy --json
Commands
| Command | Description |
|---|---|
datasets | List all available datasets |
dataset-info <name> | Get info about a specific dataset |
query "<APL>" | Run any APL query |
search <dataset> --where "..." | Search with filters |
count <dataset> --where "..." --by <field> | Count/aggregate |
tail <dataset> | Most recent events |
top <dataset> <field> | Top values for a field |
Important Notes
- Use
--format legacy --jsonfor reliable output. The tabular format can return empty rows for some queries. - Time ranges: Use
--startand--endflags with ISO 8601 timestamps, or useago()in APL (e.g.,_time > ago(24h)). - Field paths: Log data is under the
data.prefix in legacy format. Use field names directly in APL (e.g.,name,message,type). - Summarize queries: Return results in
buckets.series[].groups[]in legacy format, not inmatches[].
Known Datasets
| Dataset | Description |
|---|---|
civitai-prod | Main production logs (services, webhooks, jobs) |
civitai-stage-new | Staging environment |
civitai-next | Next.js application logs |
webhooks | Webhook event tracking |
clickhouse | ClickHouse integration errors |
notifications | Notification service logs |
orchestration-otlp | Orchestration telemetry |
python-worker | Python worker process logs |
Common Log Names (civitai-prod)
Services log with a name field. Common ones:
nowpayments-webhook— NowPayments IPN webhook handlernowpayments-service— NowPayments deposit processingreconcile-nowpayments-job— Reconciliation cron job
APL Cheatsheet
# Filter
| where name == "value"
| where field contains "substring"
| where field matches regex "pattern"
# Time range
| where _time > ago(7d)
| where _time between (datetime(2026-03-01) .. datetime(2026-03-31))
# Aggregate
| summarize count() by field
| summarize avg(duration), max(duration) by name
| summarize count() by bin(_time, 1h)
# Sort and limit
| sort by _time desc
| take 50
| order by count_ desc
# Select fields
| project _time, name, message, error
# Extend (computed columns)
| extend duration_ms = duration / 1000
When to Use
- Investigating production errors or webhook failures
- Checking if a specific service is logging errors
- Analyzing error patterns over time
- Debugging payment/deposit processing issues
- Monitoring reconciliation job health
- Verifying deployment behavior changes
Frequently asked questions about Axiom
Similar skills
Agent Host Debug Logs
Analyze Agent Host debug logs for deeper insights.
Code OSS Dev - Launch + Debug
Launch and debug Code OSS with isolated profiles.
Phoenix CLI
Debug LLM applications with structured analysis tools.
Power Automate Debugging
Diagnose and fix Power Automate flow errors effectively.
Arize Trace
Inspect and export traces for LLM applications.
Runtime Behavior Probe
Investigate real runtime behavior with precision.
