Axiom Inspector

[ AxiomCore · Documentation ]

Local dashboard

Launch the loopback Axiom Inspector dashboard, explore facts visually, attach a development app and understand its security boundary.

The Axiom Inspector dashboard ships inside the Axiom CLI. It is a local visual client for the same evidence and query engine that axiom inspect commands use, so every card, graph and answer carries the same semantic IDs and graph revision.

Who talks to the local Inspector server
Who talks to the local Inspector server
Diagram source
flowchart LR
  A[axiom inspect serve] --> B[Loopback API with session token]
  B --> C[Browser dashboard]
  B --> D[Local agent or script]
  E[Development app] --> F[live-connection.json]
  F --> B
  G[Workspace files] --> A

axiom inspect serve builds the evidence, watches the workspace and serves a token-protected API on 127.0.0.1. The browser dashboard, a local agent and an attached development app all talk to that API.

Launch it

From a frontend, backend or combined workspace:

Terminal
axiom inspect serve .
Expected output
Axiom Inspector dashboard
http://127.0.0.1:<port>/?token=<token>
Loopback only · random session token · read-only by default
Question planners: deterministic · Jev remote disabled
Live target connection <workspace>/.axiom/inspector/live-connection.json
Watching <workspace>. Press Ctrl-C to stop.

Inspector picks an available port, creates a random token for this session, opens your browser and watches the workspace for changes.

OptionDefaultEffect
--port PORT0 (any free port)Listen on a fixed loopback port
--no-openoffDo not open a browser
--api-onlyoffServe only the versioned API, no dashboard pages
--allow-remote-planneroffOffer Jev planning in Ask Axiom (Experimental)
--jev-intent-threshold0.65Minimum intent probability for Jev
--jev-selector-threshold0.55Minimum fuzzy selector probability for Jev

--api-only suits local agent integrations. It prints a /api/v1/status?token=... URL; send the token as the token query parameter or the x-axiom-inspector-token header.

Dashboard areas

Inspector Backend view for the task app, showing operation cards such as Home.tasks with kind frontend, exposure contract-scoped, typed result, caller counts and Upstream, Downstream and Why? buttons

The Backend view for the documentation task app, listing operations as callable contracts.

AreaUse it for
OverviewArchitecture, targets, verification summary, important findings and runtime attachment
GraphOne focused fact with upstream, downstream or both directions, a depth and relationship filters
SourceSource units and evidence-backed previews
UI & statePages, components, actions, state, styles, responsive branches, accessibility and target lowering
BackendServices, operations, entities, projections, policies, exposure, caching and implementation evidence
ExtensionsSandboxed module identity, exports, authority, targets, provenance, limits and observed runs
DependenciesDirect and transitive contracts, packages and executable closure
SecurityRequested, granted and effective authority, exposure, findings and readiness
RuntimeNormalized sessions, traces, outcomes, lifecycle events, redaction and retention
LiveDevelopment-target selection and causal explanation for the current graph revision
ChangesSemantic changes, classifications, evidence and runtime differences
Ask AxiomDeterministic questions and, when enabled, Jev planning

The Target and Truth (declared, resolved, observed) filters apply across every area. Search finds semantic facts; it is not a source grep.

Explore relationships

Select a node or card to open its evidence drawer. From there you can:

  • choose Trace upstream, Trace downstream, Trace both or Why?;
  • read the source evidence with surrounding lines;
  • Open in Editor (a vscode:// link) or Copy path;
  • follow contract, operation, state, permission and provenance relationships;
  • copy the semantic ID for a CLI or agent query.

The graph focuses one fact at a time on purpose: drawing every fact of a large application at once is unreadable and adds no evidence. See Trace relationships.

Attach a development application

Keep the dashboard running, then start an Acore UI app with its normal development command:

Terminal
axiom run frontend/main.acore --target web

The development host reads the owner-only descriptor .axiom/inspector/live-connection.json. Alt-click an element on web, or long-press it on iOS and Android, and the Live view connects it to its component and source span, applied styles and responsive branch, accessibility declaration, bound action and operation, state dependencies, and matching redacted causal events.

Live instrumentation is development-only. Release archives and signed native bundles never receive the Inspector token, picking overlay or capture configuration.

Source refresh and last-good evidence

Inspector checks the workspace for changes every 750 ms (ignoring .git, target, node_modules and its own .axiom/inspector folder) and rebuilds the evidence. If a rebuild fails, it keeps the previous valid graph and shows a diagnostic instead of publishing a partial model. After the graph revision changes, reload attached apps before you read live correlations.

Local security boundary

  • The server listens on 127.0.0.1 only.
  • The dashboard page and every API request need the per-session token. Only the packaged stylesheet and script load without it.
  • The dashboard sends a strict Content Security Policy (default-src 'none', same-origin scripts, styles and connections, no framing).
  • Source access is limited to validated evidence paths inside the workspace.
  • Application values and secrets are not part of the evidence.
  • The dashboard cannot grant permissions or execute an extension.
  • Inspection never uploads anything to a hosted service.

Stop the server with Ctrl-C. Normal shutdown removes the connection descriptor.

Jev in the dashboard

Remote planning is off by default. To offer it for one session, make AI_GATEWAY_API_KEY available in the command's environment, then start the dashboard with --allow-remote-planner:

Terminal
axiom inspect serve . --allow-remote-planner

Ask Axiom then lets you choose Local deterministic or Jev · remote for each question. Read Ask questions first.

Next steps