Generate AGENTS.md, AP2 compliance docs, checkout rules, debug playbook & MCP configs from any repo.
Generate documentation, compliance reports, and MCP configurations from repository contents.
Captured live from the server via tools/list.
analyze_repo
Analyze a GitHub repository and generate 137 structured AXIS artifacts across 20 programs. Returns snapshot_id plus an artifacts listing; use get_artifact to read files and get_snapshot to re-enumerate outputs without re-running analysis. Requires Authorization: Bearer <api_key>. Use this when the source of truth is a GitHub repo URL. Pricing: $0.50 standard, $0.15 lite budget mode, $25 engineer per repo. Engineer mode (X-Agent-Mode: engineer — Living Architecture) adds a verified LLM specificity pass: a living-architecture.md whose every architectural claim is grounded in the repo's extracted facts or dropped. This is the paid path for full repo analysis and can return authentication, quota, payment-required, invalid-URL, or GitHub-fetch errors. private repos require a stored GitHub token. Use analyze_files instead for inline file payloads or list_programs/search_and_discover_tools when you are still selecting a workflow.
Analyze source files directly and generate the full 137-artifact AXIS bundle without using GitHub. Returns snapshot_id plus artifact listing; use this for local, generated, or unsaved code. Requires Authorization: Bearer <api_key>. Use analyze_repo for GitHub URLs or improve_my_agent_with_axis for recommendation-first agent hardening.
Parameters (5)
project_namestringrequired
Name of the project
project_typestringrequired
Project type (web_application, api_service, cli_tool, library, monorepo)
frameworksarrayrequired
Detected or known frameworks
goalsarrayrequired
Analysis goals
filesarrayrequired
Source files to analyze
list_programs
Inventory mode. List all 20 AXIS programs, their generators, pricing tier, and artifact paths. Free, no auth, and no side effects. Use search_and_discover_tools instead when you only have a keyword, or discover_commerce_tools when you need install and onboarding metadata.
No parameters.
get_snapshot
Retrieve status and the full artifact listing for a prior analysis by snapshot_id. Use this to re-enumerate artifact paths without re-running analysis. Snapshots persist and can be shared between agents to avoid duplicate analysis costs.
Parameters (1)
snapshot_idstringrequired
Snapshot ID returned by analyze_repo or analyze_files
get_artifact
Read one generated artifact by snapshot_id and path. Requires access to the snapshot and may return snapshot-not-found, invalid-path, or artifact-not-found errors. Example: snapshot_id=abc-123, path=AGENTS.md. Use this when you need the full text of one artifact. Use get_snapshot instead when you first need the artifact list.
Parameters (2)
snapshot_idstringrequired
Snapshot ID
pathstringrequired
Artifact file path as returned in the artifacts list
prepare_agentic_purchasing_preview
Compute a free Purchasing Readiness Score (0-100) and gap list for a codebase without generating artifacts. No auth, no charge, no snapshot persisted. Hard caps: 25 files / 50KB per file / 1MB total. Returns score, risk_level, top gaps, frameworks detected, and which AXIS programs would close which gaps. Use this to triage 'should I pay for the full hardening bundle?' before calling prepare_agentic_purchasing. The paid version generates the full artifact bundle including CE 3.0 dispute evidence, SCA exemption matrix, and TAP interop.
Parameters (4)
project_namestringrequired
Name of the project being previewed
project_typestring
Optional project type hint (web_application, api_service, cli_tool, library, monorepo)
Prepare a codebase for agentic purchasing and return a readiness score plus commerce artifacts. Requires Authorization: Bearer <api_key>; paid analysis records a new snapshot and may return auth, quota, payment, file-limit, or validation errors. Example: submit checkout files with focus_areas=["sca","dispute"]. Use this when you need AP2/UCP/Visa, CE 3.0 dispute evidence, checkout, dispute, and negotiation hardening. Engineer mode (X-Agent-Mode: engineer — Commerce Integration, $250): also emits a deployable x402/AP2/PAI'D endpoint + a runnable sandbox test + a schema-validatable CE 3.0 pack + a transparent dispute-readiness score (a working integration, not just a score). Use discover_agentic_purchasing_needs instead when you only need workflow triage.
Parameters (11)
project_namestringrequired
Name of the project
project_typestringrequired
Project type (web_application, api_service, cli_tool, library, monorepo)
frameworksarrayrequired
Detected or known frameworks
goalsarrayrequired
Project goals
filesarrayrequired
Array of {path, content} objects representing source files
focusstring
Analysis focus (default: purchasing)
agent_typestring
Consuming agent type hint
focus_areasarray
Compliance focus areas
budget_per_run_centsnumber
Agent budget for this call in cents
spending_windowstring
Agent spending window
referral_tokenstring
Optional referral token from another agent
closer
Take a 70-80% complete project directory and generate complete professional packaging + marketplace certification artifacts so it is ready to ship and sell.
Parameters (5)
snapshot_idstring
Existing AXIS snapshot_id to package into a distributable product
project_rootstring
Optional local project root path hint (metadata only in remote MCP mode)
product_namestring
Optional branding override for product name
taglinestring
Optional branding tagline
target_marketplacesarray
Optional marketplaces list (e.g. npm, unreal, vscode, dockerhub, github-marketplace)
deploy
Generate a zero-pipeline-minutes deploy bundle: stack-aware Dockerfile, .dockerignore, dev compose, render.yaml (Render existing-image), wrangler.pages.toml + wrangler.containers.toml + worker.ts (Cloudflare), bash/PowerShell push scripts, and a qualification report. The project builds locally in VSCode, pushes images to GHCR or via wrangler, and Render/Cloudflare just pulls — no GitHub Actions minutes, no Render build pipeline minutes, no CF build minutes.
Parameters (1)
snapshot_idstringrequired
Existing AXIS snapshot_id to package into deploy artifacts
search_and_discover_tools
Search AXIS programs by keyword and return ranked matches with artifact paths. Free, no auth, and no stateful side effects. Example: q=checkout returns commerce-relevant programs first. Use this when you know the outcome you want but not the right program. Use list_programs instead for the full catalog, discover_commerce_tools for install metadata, or discover_agentic_purchasing_needs for purchasing-specific triage.
Parameters (2)
qstring
Search query — keyword or phrase
programstring
Optional: filter results to a specific program name
discover_commerce_tools
Discover AXIS install metadata, pricing, and shareable manifests for commerce-capable agents. Free, no auth, and no mutation beyond read access. Example: call before wiring AXIS into Claude Desktop, Cursor, or VS Code. Use this when you need onboarding and ecosystem setup details. Use search_and_discover_tools instead for keyword routing or discover_agentic_purchasing_needs for purchasing-task triage.
No parameters.
improve_my_agent_with_axis
Analyze an agent codebase and return a prioritized AXIS hardening plan. Requires Authorization: Bearer <api_key>; this creates a snapshot and may return auth, quota, file-limit, or validation errors. Example: pass your agent source files to see missing AGENTS.md, CLAUDE.md, and MCP config gaps. Use this when you want recommendations and missing-context detection. Use analyze_files instead when you want the full artifact bundle directly.
Parameters (2)
project_namestringrequired
Name of the agent/project to improve
filesarrayrequired
Source files of the agent to analyze
discover_agentic_purchasing_needs
Discover the best AXIS workflow for a purchasing or compliance task. Free, no auth, and logs lightweight task metadata for intent analytics. Example: task_description='prepare for autonomous Visa checkout'. Use this when you need commerce-specific triage and next-step guidance. Use search_and_discover_tools instead for non-commerce keyword routing across all programs.
Parameters (3)
task_descriptionstring
What the agent is trying to accomplish
current_readinessnumber
Optional: current Purchasing Readiness Score (0-100) if known
focus_areasarray
Optional: specific areas to focus on
get_referral_code
Get or create the caller's AXIS referral token. Requires Authorization: Bearer <api_key>, has no usage charge, and may persist a new referral code if one does not exist yet. Example: call before sharing AXIS with another agent or workspace. Use this when you need the shareable token itself. Use get_referral_credits instead when you need balances, milestones, and discount status.
No parameters.
get_referral_credits
Get the caller's referral earnings, milestones, and free-call status. Requires Authorization: Bearer <api_key>, has no usage charge, and returns the current discount ledger without creating a new analysis. Example: call after a referral campaign to inspect earned credits. Use this when you need balances and milestones. Use get_referral_code instead when you only need the shareable token.
No parameters.
iliad_web_research
Scrape a single URL using Firecrawl and return markdown-formatted content. Returns markdown body, extracted metadata, and title. Best for research, documentation reading, or SEO analysis. Requires Authorization: Bearer <api_key>. Pricing: $0.10 standard, $0.05 lite per page. Use iliad_web_research_crawl for crawling multiple pages or link following.
Parameters (2)
urlstringrequired
The URL to scrape (http or https)
only_main_contentboolean
Extract only the main content (default: true)
iliad_web_research_crawl
Crawl a domain and scrape multiple pages using Firecrawl. Returns array of scraped pages with markdown content. Best for site mapping, content audits, or bulk research. Requires Authorization: Bearer <api_key>. Pricing: $0.25 standard, $0.12 lite per page crawled (up to 100 pages per request). Use iliad_web_research for single-page scrapes.
Parameters (2)
urlstringrequired
The domain/URL to crawl (http or https)
limitnumber
Maximum pages to crawl (1-100, default: 10)
iliad_object_storage
AXIS-owned signed-URL minter backed by Cloudflare R2. Returns a pre-signed PUT or GET URL scoped to the calling account (keys are prefixed with `accounts/<account_id>/` server-side, so accounts can't reach each other's objects). Requires Authorization: Bearer <api_key>. Returns the URL plus expires_at (ISO 8601), bucket, and scoped_key. Returns `{_not_configured: true, ...}` when the operator has not provisioned R2_* env vars (no crash, no leaked secrets). TTL is capped at 86400 seconds (24h). Engineer mode (X-Agent-Mode: engineer — Managed Bucket, $0.05): adds delete + list + copy (server-side, no bytes through the agent) operations, content-addressed dedup keys (content_sha256), and mint-time PUT policy (pin content_type / exact content_length as signed headers R2 enforces).
Parameters (8)
keystringrequired
Object key (max 1024 chars), or the prefix for operation=list. Path traversal and leading-/ are rejected.
operationstringrequired
put / get (standard). delete / list / copy and content-addressed put require X-Agent-Mode: engineer (Managed Bucket).
content_sha256string
Engineer mode: 64-char hex sha256 of the bytes you'll PUT. When set, the object lands under accounts/<id>/cas/<sha256> so identical content dedupes.
extstring
Engineer mode: optional extension appended to the content-addressed key (e.g. 'png').
source_keystring
Engineer mode (operation=copy): source object key to copy from, scoped to your account; `key` is the destination. Echo the returned required_headers on the PUT.
content_typestring
Engineer mode (put): pin the Content-Type the upload must send (signed; R2 rejects a mismatch). Printable ASCII type/subtype, ≤255 chars. Echo via required_headers.
content_lengthnumber
Engineer mode (put): pin the EXACT byte size the upload must be (signed; ≤5 GiB). Pairs with content_sha256 for verified content-addressed writes.
ttl_secondsnumber
Signed-URL lifetime, 1..86400. Defaults to 3600.
iliad_vector_database
AXIS-owned vector store. Two operations: `upsert` (insert or replace vectors) and `query` (cosine top-k nearest neighbors). Namespaces are account-scoped server-side (`acct:<account_id>:<namespace>`), so tenants cannot read each other's vectors. Persistent across restarts via Postgres. Requires Authorization: Bearer <api_key>. Best for RAG retrievers, deduplication, and similarity search. Engineer mode (X-Agent-Mode: engineer — Managed Memory, $0.05): query runs a pgvector/HNSW ANN candidate pool with optional recency-decay reranking (recency_half_life_days — managed forgetting), RRF hybrid fusion (sparse_ids), and metadata filter; upsert applies intra-batch semantic-dedup (dedup_threshold).
Parameters (6)
operationstringrequired
upsert (insert/replace) or query (top-k cosine).
namespacestring
Logical isolation key. Defaults to 'default'. Account ID is always prepended server-side.
vectorsarray
Array of {id, vector, metadata?} — required for upsert.
queryobject
{vector: number[], top_k?: number, filter?: object}. Engineer mode also reads recency_half_life_days (number — exponential recency decay) and sparse_ids (string[] — RRF hybrid fusion). Required for query.
dedup_thresholdnumber
Engineer upsert: cosine threshold for intra-batch semantic-dedup (default 0.97).
semantic_dedupboolean
Engineer upsert: set false to disable dedup (default on).
iliad_embeddings
Convert text into dense vectors. Accepts a single string or a batch (max 2048). Returns one vector per input plus token usage. Currently proxies OpenAI /v1/embeddings (model: text-embedding-3-small by default, overridable via OPENAI_EMBEDDING_MODEL). Requires Authorization: Bearer <api_key> to call. When OPENAI_API_KEY is not provisioned, returns a structured `_not_configured: true` envelope. Pairs natively with iliad_vector_database — feed `vectors` from this tool's output into `vector` of the vector_database upsert/query calls. Engineer mode (X-Agent-Mode: engineer — Domain Embeddings, $0.08): pass `dimensions` (Matryoshka truncation → smaller vectors) and/or `corpus_adapter: true` (mean-center the batch to sharpen retrieval on your data); returns an `engineer` block with the fitted adapter_mean for query alignment.
Parameters (3)
inputstring | arrayrequired
A single string or an array of strings to embed. Empty strings and entries > 32k chars are rejected (chunk before calling).
dimensionsnumber
Engineer mode: truncate each vector to this many leading dims (Matryoshka) + renormalize. Smaller, cheaper vectors.
corpus_adapterboolean
Engineer mode: mean-center the batch (all-but-the-mean) to sharpen retrieval; returns the fitted adapter_mean.
iliad_transactional_email
Send a single transactional email. Requires Authorization: Bearer <api_key>. Provide either body_html, body_text, or both (Resend will pick the best variant per recipient). All emails ship from RESEND_FROM_ADDRESS — operator must verify that domain in Resend before sending. Returns the provider-assigned message_id plus the accepted recipient list. Returns a structured _not_configured envelope when RESEND_API_KEY or RESEND_FROM_ADDRESS is missing. Recipients capped at 50 per call; subject capped at 998 chars; bodies capped at 1 MB. Engineer mode (X-Agent-Mode: engineer — Deliverability, $0.50): instead of sending, pass a `domain` and get a full SPF/DKIM/DMARC setup (fresh DKIM keypair) + sender warmup schedule + verification checklist — no email sent, no ESP key needed.
Parameters (9)
tostring | array
Recipient address or array of addresses (max 50). Required for a send (standard mode).
domainstring
Engineer mode (Deliverability): domain to generate SPF/DKIM/DMARC setup for. Replaces the send.
providerstring
Engineer mode: ESP for the SPF include (resend/sendgrid/mailgun/postmark/ses/google). Defaults resend.
HTML body. At least one of body_html / body_text required.
body_textstring
Plaintext body. At least one of body_html / body_text required.
reply_tostring
Optional Reply-To address.
iliad_llm_inference
AXIS-hosted LLM chat-completion via node-llama-cpp + a small GGUF model loaded in-process. Two input shapes accepted: `prompt` (single string) or `messages` (chat-style array of {role, content}). Sampling controls: `max_tokens` (≤2048), `temperature` (0-2), `top_k`, `top_p`, `seed` (for reproducibility), `stop` (string[]). Inference is fully in-process — no upstream provider, no per-call API fee. Operator sets AXIS_LLM_MODEL_PATH to point at a Phi-3-mini / TinyLlama / Llama-3.2-1B GGUF; if missing, the tool returns a `_not_configured: true` envelope. Engineer mode (X-Agent-Mode: engineer — Constrained Inference, $0.10): pass a `json_schema` and decoding is grammar-constrained to it AND the output is validated against it (returns a `structured` block with valid + parsed + schema_errors) — guaranteed-valid structured output. Requires Authorization: Bearer <api_key>.
Parameters (10)
promptstring
Single-prompt completion input. Use either this OR messages, not both.
messagesarray
Chat-style input. Array of {role: system|user|assistant, content: string}.
systemstring
Optional system prompt (prompt mode only). For messages mode, use role=system entries.
max_tokensnumber
Max tokens to generate. Defaults 512, hard cap 2048.
temperaturenumber
Sampling temperature in [0, 2]. Defaults 0.7.
top_knumber
Top-k sampling (positive integer). Defaults 40.
top_pnumber
Top-p nucleus sampling in (0, 1]. Defaults 0.95.
seednumber
Optional seed for reproducible output.
stoparray
Stop sequences. Generation halts when any string in the array is produced.
json_schemaobject
Engineer mode (required): a JSON Schema. Decoding is grammar-constrained to it and the output is validated against it; returns a `structured` block.
iliad_code_sandbox
AXIS-owned secure code execution. Each call spawns a fresh ephemeral Docker container with hardened isolation: no network, read-only root filesystem, all Linux capabilities dropped, no-new-privileges, PID/memory/CPU limits, tmpfs /tmp only, runs as nobody:nobody. Container is force-removed after each call. Supports python | node | bash via the multi-runtime image `nikolaik/python-nodejs:python3.12-nodejs22-slim` (operator can override via AXIS_CODE_SANDBOX_IMAGE). Returns stdout/stderr/exit_code/timed_out/duration_ms/image. Wall-clock timeout enforced via SIGKILL + force-remove. Source is fed via stdin (no fs write to the read-only root). Code body capped at 256 KiB; stdin at 1 MiB; timeout 1-600 seconds (default 30); stdout/stderr each capped at 1 MiB output. When no Docker daemon is reachable (Render standard services don't expose /var/run/docker.sock), returns a structured `_not_configured: true` envelope with remediation. Engineer mode (X-Agent-Mode: engineer — Verified Exec, $0.25): the result includes an Ed25519-signed attestation binding code-hash → output-hash + a per-account hash-chain entry, so another agent that pins AXIS's published key can verify the run without re-executing it. Requires Authorization: Bearer <api_key>.
Parameters (4)
languagestringrequired
Runtime language.
codestringrequired
Source code to execute. Fed via stdin to the interpreter. Max 256 KiB.
timeout_secondsnumber
Wall-clock limit. Defaults 30, max 600. SIGKILL on overrun.
stdinstring
Optional additional stdin appended after the code body. Max 1 MiB.
iliad_document_parsing
AXIS-owned document → Markdown extractor. Accepts either `document_url` (https fetch + 50 MiB cap + 60s timeout) or `document_base64` (inline bytes, 50 MiB decoded cap) — exactly one. Optional `mime_type` hint (application/pdf, application/vnd.openxmlformats-officedocument.wordprocessingml.document, text/html, text/markdown, text/plain); we sniff from magic bytes + URL extension when omitted. Format dispatch: PDF → pdfjs-dist text extraction (one block per page with `--- page N ---` separators); DOCX → mammoth → markdown (tables preserved); HTML → tag-strip with heading + list + entity handling (NOT a full HTML→MD converter — bring turndown if you need fancier); plain text + markdown → passthrough. Returns `{markdown, format_detected, byte_size, page_count, table_count, truncated}`. Output capped at 1 MiB markdown with a truncation marker. Engineer mode (X-Agent-Mode: engineer — Document Intelligence, $0.10): adds an `engineer` block with retrieval chunks (heading-aware, overlapping) + extract-to-caller-schema (pass `json_schema` → a grammar-constrained, validated typed object) + image OCR (image/* via document_base64) — typed data, not just markdown. Requires Authorization: Bearer <api_key>.
Parameters (4)
document_urlstring
https URL to a document. Use this OR document_base64, not both.
document_base64string
Base64-encoded document bytes. Use this OR document_url, not both.
mime_typestring
Optional MIME-type hint. When omitted we sniff from magic bytes + URL extension. Engineer mode: an image/* mime triggers OCR.
json_schemaobject
Engineer mode: a JSON Schema. The document is extracted into a validated object matching it (returned in engineer.extracted).
iliad_web_search
AXIS-owned BM25 search engine over the corpus YOUR account has indexed. NOT a Google/Bing scraper — agents build their own searchable index by first calling operation='index' with documents (often pages fetched via iliad_web_research), then querying with operation='search'. Five operations: `index` (insert one or many documents), `search` (BM25 top-k ranked hits with snippet + score + metadata), `delete` (drop one doc), `delete_namespace` (drop all), `count`. Namespaces are account-scoped server-side (`acct:<id>:<namespace>`). Persistent across restarts via SQLite. Search supports `max_results` (default 10, max 100) and `site` (restrict to a single URL host, case-insensitive). Engineer mode (X-Agent-Mode: engineer — Answer Engine, $0.25): search also returns a grounded extractive answer with [n] citation spans over your corpus, reranked, refusing on weak evidence. Requires Authorization: Bearer <api_key>.
Parameters (8)
operationstringrequired
index | search | delete | delete_namespace | count.
namespacestring
Logical isolation key. Defaults 'default'. Account id is always prepended server-side.
documentobject
Single document {doc_id, url?, title?, content, metadata?} — used in index mode (alternative to documents[]).
documentsarray
Batch of documents (max 100). Transactional — malformed entry aborts the whole call.
querystring
Search query (1-1024 chars). Required in search mode.
max_resultsnumber
Cap on hits returned. Defaults 10, max 100.
sitestring
Filter to a single URL host (e.g. 'docs.python.org', case-insensitive).
doc_idstring
Document id to remove. Required in delete mode.
iliad_text_to_speech
AXIS-owned voice synthesis via Piper (rhasspy/piper) + ffmpeg-static. Accepts `text` (1-5000 chars), optional `voice` slug (filename without extension; defaults to AXIS_PIPER_DEFAULT_VOICE or the first available voice), optional `format` (wav | mp3 | opus; defaults wav), optional `sentence_silence` (0-5 seconds, default 0.2). Returns `{audio_base64, format, voice_used, sample_rate, duration_seconds, byte_size}`. Inference is fully in-process — no upstream provider, no per-character fee. When operator hasn't installed piper or placed voice .onnx + .onnx.json files in AXIS_PIPER_VOICE_DIR (default models/piper/), returns `{_not_configured: true, reason, detail, remediation}`. format=mp3/opus additionally requires ffmpeg-static. Engineer mode (X-Agent-Mode: engineer — Brand Voice, $0.10): pass `brand_text` (a brand / voice-and-tone artifact) and AXIS auto-derives the voice persona (Piper voice slug + sentence pacing) and synthesizes in it; the persona is echoed in the response. Requires Authorization: Bearer <api_key>.
Parameters (7)
textstringrequired
Text to speak. 1-5000 chars after trim.
voicestring
Voice slug (filename without extension, e.g. 'en_US-amy-medium'). Defaults to first available voice or AXIS_PIPER_DEFAULT_VOICE.
formatstring
Audio codec.
sentence_silencenumber
Per-sentence silence in seconds (0-5). Defaults 0.2.
brand_textstring
Engineer mode: brand / voice-and-tone artifact. AXIS derives a voice persona from it and synthesizes in that voice (overrides voice/sentence_silence).
localestring
Engineer mode: persona locale override.
genderstring
Engineer mode: persona gender override.
iliad_speech_to_text
AXIS-owned audio transcription via whisper.cpp + ffmpeg-static. Accepts either `audio_url` (https URL we fetch, max 100 MiB, 60s download timeout) or `audio_base64` (inline bytes, max 100 MiB decoded) — exactly one. Accepts any audio format ffmpeg can decode (mp3, wav, m4a, opus, ogg, flac); we resample to 16 kHz mono WAV internally. Optional `language` (ISO-639-1 like "en" / "fr" / "ja", or "auto" — default). Optional `initial_prompt` (≤512 chars; biases spelling of rare names). Optional `word_timestamps` boolean. Returns `{text, segments: [{start, end, text}], language_detected, duration_seconds, model_used}`. When operator hasn't installed whisper-cli or placed the GGML model file at AXIS_WHISPER_MODEL_PATH (default `models/ggml-base.en.bin`), returns `{_not_configured: true, reason, detail, remediation}`. Engineer mode (X-Agent-Mode: engineer — Diarization, $0.10): the response adds `diarization` — speaker turns grouped from the segments by inter-segment pause gaps (tune with diarization_gap_seconds / max_speakers; this is pause-based turn segmentation, not acoustic speaker ID). Requires Authorization: Bearer <api_key>.
Parameters (7)
audio_urlstring
https URL to an audio file. Use this OR audio_base64, not both.
audio_base64string
Base64-encoded audio bytes. Use this OR audio_url, not both.
languagestring
ISO-639-1 language code (en, fr, ja, ...) or 'auto' to autodetect. Defaults 'auto'.
initial_promptstring
Optional bias prompt (≤512 chars) — useful for spelling of rare names.
word_timestampsboolean
Emit word-level timestamps within segments. Defaults false.
diarization_gap_secondsnumber
Engineer mode: pause (seconds) between segments that starts a new speaker turn. Defaults 0.75.
max_speakersnumber
Engineer mode: max alternating speaker labels. Defaults 2.
iliad_analytics
AXIS-owned product analytics. Two operations: `capture` (insert events) and `query` (aggregations). Capture accepts a single `event` or a batch via `events[]` (max 500). Query kinds: `count` (total events), `count_by_event` (top events by frequency), `distinct_users` (unique user_id count), `count_by_bucket` (time-series with minute/hour/day buckets). All queries support optional `event`, `from_ts`, `to_ts`, and `property_filter` filters. Namespaces are account-scoped server-side (`acct:<account_id>:<namespace>`). Persistent across restarts via SQLite. Requires Authorization: Bearer <api_key>. Best for funnels, cohorts, and retention on workloads up to ~1M events per account.
Parameters (5)
operationstringrequired
capture or query.
namespacestring
Logical isolation key. Defaults to 'default'. Account id is always prepended server-side.
eventobject
Single event payload {event, user_id?, properties?, timestamp?} — used in capture mode.
eventsarray
Batch of event payloads (max 500). Transactional — partial inserts never persist.
queryobject
{kind, event?, from_ts?, to_ts?, property_filter?, bucket?, limit?} — used in query mode.
iliad_hygiene
AXIS-owned workspace hygiene grader. Analyzes an inline file set [{path,content}] and returns a letter grade (A-F) across a closed set of dimensions plus structured findings. Two modes: mode='scan' (DEFAULT, FREE) returns grade + findings (committed-secret scan, .env/secret-file detection, .gitignore gaps for build/scratch artifacts, oversized blobs, stub/placeholder markers, byte-identical duplicate files, source test-peer coverage, TODO/FIXME debt); mode='fix' (METERED, paid) adds a prioritized remediation plan with ready-to-apply .gitignore additions and per-finding actions. Deterministic, dependency-free, never mutates your repo (fix returns a PLAN). Rules needing a live git checkout/toolchain (worktree pruning, build/vet, route-registration dup-handler analysis) are reported as repo_only_rules, not run. Engineer mode (X-Agent-Mode: engineer — Security Engineer, $5): the fix arrives as a git-applyable unified-diff patch + a SARIF 2.1.0 log for CI code-scanning. Requires Authorization: Bearer <api_key>.
Parameters (3)
filesarrayrequired
Inline files [{path, content}] to scan (non-empty; each content <= 5 MB).
Axis' Iliad — The modern epic that shapes raw codebases into canonical, agent-ready artifacts. Axis' Iliad authors the definitive foundation for the next era of natural-language workspace development.
Canonical name: Axis' Iliad. Use this name consistently across docs, registries, and integrations.
Try it in 30 seconds — no signup required
Three programs are completely free with no API key:
bash
# 1. Get an API key (free tier, instant)
curl -X POST https://axis-api-6c7z.onrender.com/v1/accounts \
-H 'Content-Type: application/json' \
-d '{"email":"you@example.com","name":"My Agent","tier":"free"}'# 2. Analyze any public GitHub repo
curl -X POST https://axis-api-6c7z.onrender.com/v1/github/analyze \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-d '{"url":"https://github.com/owner/repo","programs":["search","skills","debug"]}'# 3. Download the generated artifacts as a ZIP
curl https://axis-api-6c7z.onrender.com/v1/projects/PROJECT_ID/export \
-H 'Authorization: Bearer YOUR_API_KEY' -o artifacts.zip
Free tier includes: Search (context maps), Skills (AGENTS.md, CLAUDE.md, .cursorrules), Debug (playbooks, incident templates). Pro unlocks all 20 programs.
What you get
One scan → 137 artifacts across 20 programs, ready in seconds:
AXIS exposes a Streamable HTTP MCP server at https://axis-api-6c7z.onrender.com/mcp. Add it to your agent and it can analyze any repo or prepare for agentic purchasing autonomously.
pnpm install # Install all dependencies
pnpm build # Build all packages + apps
pnpm test# Run all tests
npx vitest run # Run tests directly
npx vitest bench # Run performance benchmarks
npx vitest --coverage # Run tests with coverage report
See CONTRIBUTING.md for how to add a generator, endpoint, or program.
Input methods
Method
How
GitHub URL
POST /v1/github/analyze with {"url":"https://github.com/..."}