Powerful possibilities.
A clear way in.
Bring your skills. Build your agent team. Connect your product. Explore the platform through illustrated guides and a practical API reference.
Download OpenAPIFrom your expertise.
To everyone’s advantage.
Klaudija connects the whole workflow: the skill on your laptop, the agents that use it, the product your customers see, and the controls behind every conversation.
Your best skill deserves
more than one computer.
Bring a SKILL.md bundle authored in Claude or Codex into Klaudija. Turn its instructions, reference files, templates, and scripts into a reusable MOD that your agents can work with.
Upload a ZIP or .skill archive. Klaudija reviews its assumptions for managed execution; desktop tools and local paths may need adapting. Codex is an authoring source here, not a connected execution provider.
- 01
Package the expertise.
Include
SKILL.mdand the scripts, templates, images, and reference material it needs. A downloadable converter also helps prepare bundles in Cowork or Claude Code. - 02
Import and inspect.
Upload in MODs. Klaudija normalizes common export packaging issues and checks the bundle. If its identity already exists, choose a new version or a separately named skill.
- 03
Review with AI assistance.
Read compatibility findings first. The optional AI converter proposes changes to instructions and supporting text. Inspect the diffs, preserved assets, and remaining manual issues before applying them.
- 04
Prepare it for real work.
Review credential findings and runtime requirements, publish the reviewed bundle, and attach it to an agent. Test a representative task in a development session, including the generated files.
What does AI Mod review actually check?
The first stage is a read-only compatibility report for the stored bundle: structure, metadata, local paths, unavailable tools, network assumptions, and likely embedded credentials. Findings include affected files and suggested actions.
Run converter (LLM preview) is a separate AI action. It proposes adapted text and rechecks it. Review the instruction and per-file diffs, then apply the reviewed bytes as a new version. A compatibility result is not an execution test.
Maintain instructions and supporting assets
Browse bundled files with sizes, hashes, and version context. Edit instructions while retaining companion assets, replace a template, update a script, or remove an obsolete reference. Preview the changes before publishing.
Version history preserves the trail. Restore a previous skill bundle as a new version when its original bytes are available. Reusing a MOD across agents makes one maintained capability useful across many roles.
Review compatibility across the library
Fleet review checks agents and custom MODs together, records the reviewed versions, and groups compatible, warning, and blocked findings. Use it to prioritize maintenance across a growing library. Run it again after changes; it is a compatibility check rather than a live execution evaluation.
Move credentials out of an imported bundle
Credential review surfaces likely hardcoded secrets in text files. Extraction can propose named environment-variable references and corresponding credential requirements. Review the proposal, provision the credentials in the intended scope, and publish the rewritten bundle.
Detection is a review aid. Operators still check what a skill accesses, what it sends, and which actions it can perform.
Build the team
your business needs.
Give each agent a role, instructions, a model, tools, and the right MODs. Create a coordinator that routes work to selected specialists, each working in its own thread.
One company. Shared expertise.
Reuse your company playbook across a support agent, a proposal writer, and a research specialist. Add the MODs each role needs for its own work.
One request. Several specialists.
A coordinator can divide a request across its selected team and assemble their results. The current roster supports one level of delegation.
Configure, review, and maintain an agent
Choose enabled shell, file, and web tools. Retain configured MCP connections for external systems. Inspect the requirements of directly attached custom MODs and the users or platforms that use the agent.
AI Agent review can critique or adapt a prompt for operator review. Save changes as a new version; use the change timeline to inspect available differences. The agent restore action restores a prior system prompt, while skill restore restores a bundle.
Compare behavior before assigning an agent
The operator playground supports up to four independent conversations side by side. Compare instructions, models, or skill combinations, then inspect actual responses, tool events, files, memory context, and recorded usage.
These are real executions using the configured environment. Build a small set of representative tasks before adopting a new configuration.
Give expertise
the tools to act.
A skill can do more than read reference material. It can run scripts, create documents, and call the business APIs its workflow needs.
What the work needs.
- apt, pip, and npm packages
- Network hosts
- Named secrets and host restrictions
Where it can run.
- Configured execution environment
- Network policy and available packages
- Vault credentials in the right scope
Resolve missing runtime requirements
Review packages and hosts derived from skill text, then correct or extend the declarations. The agent view combines requirements from directly attached custom MODs; check specialist agents separately.
Environment reconciliation previews missing packages and hosts across stored skill requirements. Applying it creates a successor environment and updates the global active environment. Review that scope before applying a change.
Connect an external API or MCP tool
Use configured network access and named credentials for API calls from skill code. Vault credentials can be scoped to global, agent, or MOD use and restricted by host. Existing MCP and custom-tool configuration can be retained on agents.
Choose tools suitable for unattended execution. Tool permission policies are configurable, but an interactive human approval-response workflow requires additional integration.
Make Klaudija part
of something bigger.
Keep your brand, product interface, and customer relationship. Configure your platform, connect its identities, and give it agents equipped with the expertise your business needs.
- 01
Configure your platform.
Register origins, set platform defaults, and choose agent assignments. Platform-scoped operator roles keep administration aligned with the intended product.
- 02
Connect customer identities.
Your backend provisions users and exchanges the platform identity for end-user tokens. Calls from the product use the user token; administrative keys stay on your backend.
- 03
Build the customer experience.
Use the API for conversations, asynchronous jobs, live events, files, history, and usage. Show the opted-in MOD catalogue with product-facing titles and descriptions.
Defaults, overrides, and catalogue visibility
Configure platform defaults and specific user overrides where a client needs a different agent. External account mappings can also resolve teammates to a shared budget identity.
MOD catalogue visibility controls listing. It does not attach the skill to an agent or implement a per-customer entitlement system. Ensure the resolved agent has the requested capability and apply product-specific entitlements in your integration.
Keep the context
that makes work personal.
Use MODs for reusable expertise and memory stores for useful user context. Keep conversation history and documents connected to the work they came from.
Expertise belongs in a MOD.
Processes, templates, policies, and specialist instructions are maintained and versioned for reuse.
Context belongs with the user.
Memory files hold useful continuity between conversations and can be inspected and curated by authorized operators.
Inspect and curate memory
Browse stores and their files, inspect content and ownership, edit text, add useful context, or remove an obsolete file. Inspect the user-associated store attached to the session. Memory curation is a deliberate operator action.
Preserve conversation continuity and deliverables
Logical threads retain customer-facing history across provider session rollover. Resume a conversation, inspect archived messages, or start fresh when the task changes.
Attach supported documents and reuse user-associated files. Retrieve generated files individually, including an archive when the agent produced one, with ownership checks and supported signed download links. Files and results stay discoverable through their jobs and sessions.
Give every client
a plan that fits.
Assign allowances, billing periods, overrides, and additional credits. Make recorded spend visible to operators and expose a clear usage state inside your product.
Allowances, billing periods, and credit adjustments
Set the user’s plan, budget identity, and billing day. Add or remove credits with a recorded reason. Customer-facing usage endpoints let your interface show the allowance, usage, and reset state.
Budget checks use recorded usage before work proceeds. In-flight requests and concurrent usage mean these controls should not be represented as an exact hard ceiling. Plan and credit administration does not process payments.
Understand what drives cost
Analyze recorded spending by user, platform source, model, session, and time. Review input, output, and cache token categories, compare periods, and export usage as CSV.
Effective-dated model rate cards keep historical cost snapshots useful. These are usage estimates based on configured rates; reconcile them with provider billing when needed.
Manage conversation rollover thresholds
Configure model-request, elapsed-time, and cost thresholds for session rollover. These are checked before subsequent turns, keeping the logical conversation history connected while a provider session can change.
Know what happened.
Make the next run better.
Trace work from request to deliverable. Inspect sessions, jobs, tool events, files, errors, and costs, with health and latency views to help locate slow or failing operations.
Follow work through completion or recovery
Asynchronous jobs let your interface follow progress without holding a long request open. Live events provide updates; status and result endpoints support completion and file delivery.
Operators can inspect archived sessions, request cancellation, and use recovery and reconciliation controls for interrupted work. Event gaps and missing usage remain visible limitations to investigate.
Queue follow-up messages while a turn is still running. The durable queue keeps pending work, while the client drives dispatch of the next message when the session is ready.
Manage operator access and administrative changes
Owner, administrator, AI manager, platform manager, platform viewer, and tester roles map to specific actions and scopes. Resource timelines and the change log show actors, actions, and available field differences.
Contextual help explains controls beside the work. Searchable operator documentation provides deeper guidance for configuration and troubleshooting.
Compare and copy between configured environments
Presence badges show where resource records exist. Review a dependency plan before copying agent, skill, and scoped secret metadata between configured peers.
This copies application records and preserved files between peers sharing provider resources. Credential values remain in Vault, and copying an environment does not activate it. Treat deployment and independent credential setup as separate work.
Create a branded document workbench, a research assistant, an internal specialist desk, an account onboarding assistant, or an operations tool connected to your business APIs. Your team defines the domain workflow and customer experience.
Your first integration.
Use your provisioned API endpoints, a registered application origin, and a user token. The examples below describe the implemented managed-agent API.
API_BASE is the provisioned API root for /admin and /me. RUN_BASE is the complete /uni-agent endpoint. Use onboarding values; the marketing domain is not an API endpoint.
Provision a platform user and obtain a scoped JWT from your backend.
Send multipart data with a stable conversation ID and async=1.
Follow status, then display the response and download available files.
Your users. Their scope.
Keep the platform key on your server. It authenticates platform administration through X-Platform-API-Key. Customer-facing calls use Authorization: Bearer <access_token>.
# Run on your backend. Never expose PLATFORM_KEY to a browser.
curl --fail-with-body "$KLAUDIJA_API_BASE/admin/platform-users" \
-H "X-Platform-API-Key: $PLATFORM_KEY" \
-H 'Content-Type: application/json' \
--data '{
"user_id": "dev_customer_42",
"platform_slug": "dev_your_platform",
"email": "dev_customer_42@example.com",
"plan_code": "YOUR_CONFIGURED_PLAN",
"provision_memory_store": true
}'
curl --fail-with-body -X POST \
"$KLAUDIJA_API_BASE/admin/platform-users/dev_customer_42/auth" \
-H "X-Platform-API-Key: $PLATFORM_KEY"The user body needs user_id and platform_slug (or source). Use an existing configured plan. Token exchange needs the user’s email and linked authentication identity.
The broker can reuse a token pair across concurrent exchanges. Cache the access token until near expiry, then re-exchange. Independent services should not rotate the shared refresh token.
Canonical business identity may represent a team. Do not assume the returned authentication UUID equals your platform’s customer ID.
One request. Real work.
The body accepts query, session_id, async, and one optional file. Include a query or a file. Keep the same session ID to continue a conversation. Agent selection is resolved by configuration; public callers cannot select arbitrary agents.
# Use your provisioned endpoint and registered application origin.
curl --fail-with-body "$KLAUDIJA_RUN_BASE" \
-H "Authorization: Bearer $KLAUDIJA_ACCESS_TOKEN" \
-H "Origin: $KLAUDIJA_REGISTERED_ORIGIN" \
--form-string 'query=Summarize this document.' \
--form-string 'session_id=dev_conversation_42' \
--form-string 'async=1' \
-F 'file=@document.pdf'Browser requests carry their origin automatically. Server and cURL integrations must send their registered Origin. Let your HTTP client set the multipart boundary and Content-Length.
{
"job_id": "example-job-id",
"session_id": "dev_conversation_42",
"status": "pending",
"anthropic_session_id": "example-provider-session",
"memory_status": "attached"
}async=1 is essential: the endpoint defaults to synchronous execution. Async acceptance still includes authentication, budget checks, uploads, and session provisioning.
Handle every terminal state.
Poll with the same user JWT. Public statuses are pending, done, error, and cancelled. An error state can arrive with HTTP 200, so always inspect the response body.
// Poll at a bounded interval, with a deadline and cancellation.
// Stopping this client wait does not cancel the agent job.
async function waitForJob(runBase, jobId, accessToken, signal) {
const boundedSignal = AbortSignal.any([
signal, AbortSignal.timeout(5 * 60_000)
]);
while (true) {
boundedSignal.throwIfAborted();
const response = await fetch(
`${runBase}/status/${encodeURIComponent(jobId)}`,
{ headers: { Authorization: `Bearer ${accessToken}` }, signal: boundedSignal }
);
if (!response.ok) throw new Error(`Status: ${response.status}`);
const job = await response.json();
if (job.status === "error") throw new Error(job.error);
if (["done", "cancelled"].includes(job.status)) return job;
await new Promise(resolve => setTimeout(resolve, 2000));
}
// Preserve the job ID if this client wait times out.
}On completion, read response and file_download_available. A cancelled job can include partial results. Keep the job ID if your client stops waiting; cancel the server job explicitly through the cancellation endpoint.
Serialize turns per conversation unless you implement the queue protocol. Plain submission has no general idempotency-key contract. After an ambiguous POST failure, reconcile before resubmitting.
Deliver something useful.
The full multipart request is limited to 50 MiB, including overhead. A single file attachment is supported per submission. File names and formats are validated for the configured runtime.
# Check file_download_available first. Result success is binary.
curl --fail-with-body "$KLAUDIJA_RUN_BASE/result/$JOB_ID" \
-H "Authorization: Bearer $KLAUDIJA_ACCESS_TOKEN" \
-o result.bin
# Select a specific output belonging to that job:
curl --fail-with-body --get \
"$KLAUDIJA_RUN_BASE/result/$JOB_ID" \
-H "Authorization: Bearer $KLAUDIJA_ACCESS_TOKEN" \
--data-urlencode "file=$FILE_ID" \
-o selected-output.binSuccessful result responses are binary; errors are JSON. Inspect Content-Type and Content-Disposition instead of assuming a DOCX. An output selector must reference a file recorded on that job. Treat signed download links as temporary bearer credentials.
Let users see the work happen.
Klaudija persists events in juris_session_events and delivers them through Supabase Realtime. The public API has no /stream SSE endpoint.
- Configure the provisioned Supabase client with the user’s JWT.
- Subscribe with the authorized job filter job_id=eq.<job_id> and wait for subscription readiness.
- Fetch existing events to close the gap, then deduplicate by event ID.
- Render text deltas, tool activity, files, and terminal states.
- Keep bounded status polling as a recovery path and remove the subscription on teardown.
Filter subscriptions to the current job and preserve the platform’s access policies. Re-subscribe and reconcile after disconnects; receiving a live connection alone does not mean a job completed.
The integration surface.
Paths below are relative to the supplied base. The downloadable OpenAPI describes the public integration subset, with placeholder servers and source-checked contracts.
| Method / path | Access & behavior |
|---|---|
POSTRUN_BASE | End-user JWT Submit a turn. multipart/form-data; async=1 for an asynchronous job. |
GETRUN_BASE/status/:job_id | End-user JWT Read pending, done, error, or cancelled status. May trigger recovery. |
GETRUN_BASE/result/:job_id | End-user JWT or signed dl token Download output. Optional file query selects a job-owned file. |
POSTRUN_BASE/cancel/:job_id | End-user JWT Record cancellation and request a provider interrupt. |
GETAPI_BASE/me/threads | End-user JWT Read the current user’s logical conversation history. |
GETAPI_BASE/me/threads/:id/messages | End-user JWT Read authorized terminal conversation messages. |
GETAPI_BASE/me/usage | End-user JWT Read current user plan, budget and usage. |
GETAPI_BASE/me/mods | End-user JWT Read the opted-in custom MOD catalog. |
POSTAPI_BASE/admin/platform-users | Platform key Create or update a platform user. |
POSTAPI_BASE/admin/platform-users/:userId/auth | Platform key Exchange a platform identity for end-user tokens. |
GETAPI_BASE/admin/platform-users | Platform key List users within the key’s platform scope. |
PATCHAPI_BASE/admin/platform-users/:userId/plan | Platform key Update the user plan. Set billing_day through user upsert. |
POSTAPI_BASE/admin/platform-users/:userId/credits | Platform key Adjust credits with a reason. |
Build the unhappy path, too.
400Check required query/file fields and request shape.
401Obtain a valid user token through your backend.
402Show the budget state and reset date. reason is budget_exceeded.
403Check registered origin, platform activation, and permission scope.
404The resource is missing or does not belong to this caller.
409The result is not ready, or a write conflicted.
410The generated output can no longer be retrieved.
413Content-Length is missing, invalid, or the full request exceeds 50 MiB.
422Resolve file compatibility or configuration validation failures.
502 / 503Handle provider interruption failure or bounded service retry.
{
"error": "Budget limit reached",
"reason": "budget_exceeded",
"plan_code": "YOUR_CONFIGURED_PLAN",
"spent_cents": 10000,
"plan_cents": 10000,
"grace_cents": 0,
"credits_cents": 0,
"resets_at": "2026-10-01T00:00:00.000Z"
}Amounts are illustrative account allowances, not Klaudija pricing. Memory can report degraded, not_applicable, or unknown; display memory_warning when provided. Session rollover metadata identifies a successor session.
Keep your business rules close.
Platform administration supports user provisioning, plan changes, credits, and scoped identity exchange. Operator APIs additionally cover agents, skill versions and assets, memory stores, environments, Vault metadata, sessions, usage, rate cards, and audit history.
These surfaces have different permissions. A platform key does not grant global operator authority. Use /me/usage for the user’s budget view; operator plan configuration is a separate administrative responsibility.
Contract review: 5 September 2026. Integration examples checked against source and mocked locally; not executed against production.