Version a prompt and ship it to production
Create a prompt, commit versions, promote an alias to production, and render it from your app — the full prompt lifecycle in AcruxCore.
Route your app's LLM calls through the gateway
Add a provider credential, register a model, test it in the Playground, and call the OpenAI-compatible gateway from curl, the SDK, or the OpenAI client.
Trace and inspect an LLM call
Every gateway call is traced automatically. Inspect spans, read dashboards, and report your own custom spans from app code with the SDK.
Build and attach a tool
Declare a tool in code with acrux.tool, let the first run fill in the catalog, attach it to a prompt, and see where each tool actually runs.
Evaluate a prompt against a dataset
Turn real user feedback into a dataset, run an experiment that sweeps prompt versions and models, and read the run report.
Improve a prompt from feedback
Turn replies your team disagreed with into candidate rewrites of your production prompt, score them against what is live, and promote the one that earns it.
Invite a teammate to your team
Create a single-use invite link, choose the role it grants, and email it straight to a new teammate to get them into your AcruxCore team.
Using sessions and traces
Group related prompt calls into a session, follow one call into its trace, leave feedback, and jump back to the prompt that produced it.
Chat, stream, and collect feedback with the SDK
Call the gateway from the SDK with chat() and streaming, run a traced tool-calling loop, then read traces back and record feedback — in Node and Python.
Store prompts and tools via the API
Save a prompt and its tools over the REST API, confirm them in the dashboard, then fetch and stream them from the SDK.
Manage prompts via the SDK
Create a prompt, commit versions with templated messages, diff, promote aliases, export/import, and delete — the full lifecycle through curl or the SDK, no dashboard required.
Manage Team Roles and Permissions
See who's on your team, change an existing member's role, and remove their access — the three actions inviting a teammate doesn't cover.
Scope Access with Virtual Keys
Create a gateway key restricted to one model, a rate cap, and a cache TTL, so a leaked key can't spend outside its job.
Alias and Track Usage of Tools in the Catalog
Commit a second tool version, promote staging ahead of production, and read real call volume, error rate, and latency per tool.
Automatic Model Fallbacks: Keep Your App Running When a Provider Goes Down
Chain a model to one or more fallbacks in order, and see the gateway actually reroute a call when the primary fails — with the one case where it deliberately won't.
Set Spend Limits with Gateway Budgets and Rate Limits
Cap spend team-wide or per key by day, week, month, or total, and pair it with a request-rate cap — then prove both actually reject a call before it costs anything.
Diff, Export, and Import Your Prompt Library
Read a unified diff between two prompt versions, export one as a portable JSON file, and re-import it — including what import does and does not preserve.
Tag and filter traces
Attach tags and metadata to traces, filter them by tag or metadata key/value, and discover what tags your team is using.
Evaluate a prompt with conversation history
Carry a session's prior turns into a dataset example so a run, the judge, and the optimizer see the same conversation the model actually answered in.
Look up the traces a prompt version produced
Find every trace a specific prompt version powered, from the Versions tab or the API, and know when an empty result is expected.
View trace analytics
Read aggregate volume, error-rate, token, cost, and latency metrics over every trace your team has recorded, grouped by day, model, session, or prompt version.
Configure trace payload capture
Read and toggle your team's default for whether a trace's request/response bodies get stored on ingest, and override that default for a single request.
Manage a tool's lifecycle via the SDK
Create a tool shell, commit versions with an http executor, and manage it directly via curl or the SDK — the path for tools your app manages outside the code-first sync flow.
Use conditional logic in prompt templates
Write Jinja2-style {% if %} conditionals and {% for %} loops inside a prompt template, rendered by AcruxCore's nunjucks-based engine.
Score live traffic with an evaluation rule
Create a standing rule that judges matching production gateway calls automatically, with no dataset and no manual run.
Send OTel traces to AcruxCore with the SDK helper
Wire any OpenTelemetry-instrumented app to AcruxCore's OTLP endpoint in one call with register() — a bare pipeline, one framework, several frameworks, and session grouping, in Python or Node.
Connect a Tool to a Prompt
Bind a catalog tool to a prompt by choosing the tool alias it follows, give one prompt alias its own tools, and see when the tool's code changed underneath you.
Call a prompt's tools from the SDK
Every way to run the tools bound to a prompt — the two-line shortcut, the loop by hand, one raw completion, and the no-SDK HTTP body — streaming or not.
Define a tool in code or in the catalog
Two ways to own a tool's definition — a decorated Python function, or a catalog version your code only implements — and what changes in your app, your traces and your deploys when you pick one.
Read the Team Audit Trail
See every recorded change in your team — API keys, members, gateway, secrets, prompts and tools — and filter it down to the one action you need to account for.