Why Inspector Features How it works Security FAQ Controller MergeSense Impact Contact Show interest
AI investigation, self-hosted

One agent. Any question. Evidence-backed answers.

Stop searching dashboards. Ask "why is Tomcat slow?" or "is there anything wrong with this server?" in plain language. A lightweight, read-only agent collects real evidence through a closed set of approved diagnostics, secrets get redacted before anything reaches an LLM, and you get a structured finding back: severity, confidence, evidence, timeline, and a recommendation, never a guess dressed up as a fact.

The AI plans, the policy engine approves, the agent reads. Never a shell, never a command, never a guess presented as fact.

Investigation: "Why is Tomcat slow?"
EVIDENCE 193/200 Tomcat threads active, OBSERVED
EVIDENCE Request queue increased 4.2x since deploy 4.8.2, CORRELATED
FINDING Thread pool saturation. Confidence 94%. Recommend reviewing the new request path in 4.8.2.
8
read-only diagnostic tools in the agent's fixed dispatch table: CPU, memory, disk, processes, network, JVM, Tomcat, service discovery
0
execute_command / execute_shell / execute_sql tools anywhere in the codebase. The AI plans, it never runs anything itself
5
evidence states a finding can carry: OBSERVED, CORRELATED, INFERRED, PREDICTED, VERIFIED, never presented as more certain than it is
100%
self-hosted on infrastructure you own, Postgres included, no public signup
Why Inspector

An investigation engine, not another dashboard

You shouldn't need to know which metric, which log file, or which process to check. You ask the question. Inspector figures out where to look, gathers the evidence itself through a locked-down agent, and hands you a conclusion you can actually check the reasoning behind.

Ask in plain language

"Why is this server slow?" "Did the deployment cause this?" "Find unusual errors in the logs." No query language, no dashboard to learn, no metric name to remember.

The agent can't go rogue

The agent's entire remote-triggerable surface is a fixed, named dispatch table of read-only collector functions. There is no code path from "the control plane says run X" to a shell.

Secrets never reach the model

Every piece of evidence, metrics, process lists, log lines, passes through a redaction pass before it's stored or sent to any LLM. Credentials, API keys, and tokens get scrubbed first.

Real multi-tenant RBAC

Organization → Project → Environment → Agent, isolated by default. Org roles, project roles, and per-agent roles decide exactly who can inspect what, enforced on every single tool call.

Bring your own LLM, or none at all

Anthropic natively, or any OpenAI-compatible endpoint, Ollama, vLLM, LM Studio, a custom gateway. No provider configured yet? Evidence still collects and displays honestly instead of a fabricated finding.

Own your infrastructure, own your data

Self-hosted with Docker Compose, backed by Postgres you control, no public signup. Every organization is provisioned by a platform admin, not a signup form.

The problem

Every incident starts with the same question: where do I even look?

None of these are exotic edge cases. They happen every time something breaks at 2am.

You don't know which dashboard to check first

CPU, memory, JVM heap, connection pools, upstream latency, a dozen tabs open, and the actual cause is in none of them until you've checked all of them.

Logs are a haystack, not an answer

Millions of lines, no way to know which pattern actually matters. By the time you've grep'd your way to a lead, the incident's been going for twenty minutes.

A chatbot with no real access is just a guess with better grammar

General-purpose AI assistants can describe what a Tomcat thread pool exhaustion looks like. They can't tell you if this one, right now, actually has one, because they were never given a way to check.

How it works

Ask, plan, collect, answer

Every question goes through the same four real stages, never a shortcut straight to a guess.

1

Ask

Type a question in plain language, anywhere in the app. Pick a scope: one server, several, or the whole environment.

2

Plan & approve

A planner maps the question to only the relevant diagnostics. Every single one still has to clear user permission, project policy, and agent capability before it runs.

3

Collect

The agent, polling outbound-only, fulfills the approved requests and reports back. Secrets and PII get redacted before anything is stored.

4

Answer

Your configured LLM turns the evidence into a structured finding. No provider configured? You still see every piece of evidence collected, plainly.

Everything included

What's actually built today

No roadmap items, no "coming soon." This is what runs in the app and the agent right now.

Zero-config auto-discovery

Install one agent and it detects what's actually running: OS, JVM, Tomcat, Docker, Kubernetes, plus Postgres, MySQL, Redis, MongoDB, RabbitMQ, and Kafka by process signature. Only the modules that apply turn on. Real Windows Event Log and Linux syslog collection out of the box, no log path to configure.

Investigation engine

A deterministic planner, a policy-gated evidence pipeline, and an LLM synthesis step that has to fail safe and say "insufficient evidence" rather than hallucinate a cause.

Outbound-only agent

The agent polls the control plane, the control plane never opens a connection to it. No inbound firewall port required on the host you're monitoring, ever.

Log intelligence, not log storage

Logs are pattern-grouped and deduplicated evidence for a specific investigation, capped at 48 hours of retention, deliberately not a searchable archive. This isn't a monitoring platform.

Multi-tenant from the ground up

Organization → Project → Environment → Agent, fully isolated. Platform admins provision organizations and their first admin; org admins provision projects and assign users a project role: Developer, DevOps Engineer, SRE, Security Viewer, Read Only. Platform admins can operate across every tenant they provisioned, everyone else stays inside their own.

Follow-up conversation

"When did this start?" "What changed?" "Show me evidence." Follow-ups stay scoped to the investigation's own evidence, never leaking context across projects.

Multi-provider LLM governance

Register several providers per project, scope one to a specific environment, and an org-level allow/block policy still wins even if a project tries to use a blocked one.

Append-only audit log

Logins, agent registration and revocation, permission and governance changes, every investigation run, every provisioning action. Written once, never edited.

Closed by design

The AI plans. It never gets a shell.

The agent's entire remotely-triggerable surface is a fixed dispatch table of named, read-only collector functions, get_cpu_metrics, get_memory_metrics, get_jvm_metrics, and so on. There is no execute_command, no arbitrary SSH, no sudo, anywhere in the codebase. Adding a new capability means shipping a new signed agent release, never something the control plane can inject at runtime.

  • Every tool call still has to pass user permission, project policy, and agent capability, in that order
  • Log lines and metric values are treated as untrusted data, never instructions, even ones that look like a prompt injection attempt
  • Read-only by default. Any future remediation action would need its own separate, explicit permission
REQUEST get_tomcat_metrics, approved
REQUEST execute_shell_command
POLICY Rejected, tool not registered. No such capability exists.
Evidence-backed, not vibes-backed

A finding always says how sure it is, and why.

Every conclusion is labeled OBSERVED, CORRELATED, INFERRED, PREDICTED, or VERIFIED, and never presented as more certain than the underlying evidence supports. When the evidence is thin, the answer is "insufficient evidence" plus exactly what's missing, not a plausible-sounding guess.

  • Every finding cites the specific evidence IDs it's grounded in
  • Multi-server questions get a per-server breakdown when servers disagree, not one answer papering over the difference
  • No AI provider configured, or the model's response doesn't parse? You still see the raw collected evidence, never a dead end
Finding: memory growth
OBSERVED Heap at 78%, trending +2.1%/hour
PREDICTED 90% within ~6 hours, confidence 87%
RECOMMEND Review the allocation pattern introduced in the last deploy
Self-hosted, on your terms

Your infrastructure. Your data. Your control.

The full stack, Postgres, the control plane, and the agent, deploys directly on infrastructure you own with Docker Compose. There's no public signup: a platform admin provisions the first organization, and every account after that is provisioned top-down, never a self-serve form.

FAQ

Questions, answered

No. The agent's only remotely-triggerable surface is a fixed table of named, read-only collector functions. There is no execute_command, no arbitrary SSH, no sudo, anywhere in the codebase, not a setting that can be toggled on.
Investigations still run and still collect real evidence from the agent. Without a provider configured, you see that evidence directly instead of a synthesized finding, an honest "no AI configured yet" rather than a fabricated answer.
Anthropic natively, plus any OpenAI-compatible endpoint, Ollama, vLLM, LM Studio, or a custom gateway. Azure OpenAI, AWS Bedrock, and Google Vertex are wired into the governance and configuration UI, but their wire clients aren't built yet, and the product says so rather than silently failing.
No, deliberately. Logs are collected and redacted only as evidence for a specific investigation, grouped and deduplicated, capped at 48 hours of retention. There's no standalone log-search screen. If you need a permanent, searchable log archive, that's a different category of tool.
Kubernetes discovery, live database inspection, the cross-service dependency graph, comparison mode, and CI/CD-triggered investigations are architected for in the platform's data model, but the collectors themselves aren't built yet. What's built today: OS, JVM, Tomcat, and auto-discovered service processes (Postgres, MySQL, Redis, MongoDB, RabbitMQ, Kafka) across Linux and Windows.
There's no public signup, by design. A platform admin (you, once it's deployed on your infrastructure) provisions the first organization and its admin, who then provisions projects and invites users with a specific project role. Show interest and we'll walk you through deploying it.
Self-hosted only today, deployed with Docker Compose on infrastructure you own, backed by Postgres you control. A managed/hosted offering isn't built yet.

Stop searching dashboards. Ask your infrastructure.

Self-hosted, evidence-based, and ready to install on your first server today.

Questions first? contact@prashflow.com