Fast and efficient
osquery management

osctrl is an open-source osquery fleet manager, implementing the osquery remote API as a TLS endpoint. Full visibility and control over your endpoints — from hundreds to hundreds of thousands of nodes.

MIT Licensed Written in Go Powered by osquery MCP ready Production ready at scale
What is osctrl?

One control plane for your entire osquery fleet

osquery gives you a SQL interface to every endpoint. osctrl makes that fleet manageable: enrollment, configuration, queries, logs, alerting and file carving — from a modern operator UI, a REST API, the CLI, or an AI agent over the Model Context Protocol.

osctrl platform showing endpoint management, live queries and fleet operations
Operate nodes, queries, carves and environments from one platform.

Monitor everything

Track every system running osquery in real time — node status, activity, enrollment state and health across all your environments.

📦

Distribute configuration

Push osquery configuration and scheduled query packs to your entire fleet in seconds, organized by environment and tags.

📊

Collect all logs

Ingest status and result logs from every node and route them to your logging pipeline of choice.

Run on-demand queries

Launch distributed queries across any subset of nodes and get results back fast — with optional accelerated query reads.

🖥️

Node console

Open a read-only, shell-like console against any node, backed by osquery: ls, ps, stat, sql, .tables and more.

🗂️

Carve files & directories

Retrieve files and directories from remote endpoints for forensics and incident response, with permission-checked access.

🔔

Alert on what matters

Rule-based alerting on result, status and query logs — plus node state — fanned out to webhook and email channels, with cooldown, dedupe and hot reload.

📁

Browse node files

A per-node file explorer backed by accelerated, permission-checked osquery distributed queries — directory listings and stat without a shell.

🩺

Know your deployment is healthy

An optional health page fuses live database and Redis pings, per-service runtime stats, a TLS heartbeat and cached upgrade status.

Components

Purpose-built services, one shared core

Every osctrl component is a small, focused service built on shared Go packages, backed by PostgreSQL and Redis.

osctrl-tls

The TLS endpoint implementing the osquery remote API. Handles node enrollment, configuration delivery, log ingestion, distributed queries and file carving for your entire fleet.

osctrl-api

The REST API service, secured with JWT authentication by default, with trusted proxy controls and audit logging. Powers the operator UI and any automation you build. Fully documented with OpenAPI.

Operator frontend

A modern React single-page application: nodes, environments, live and saved queries, carves, tags, users, enrollment, audit log, log sinks, auth providers, alerting, posture data, the node console and the file explorer — with live updates over SSE.

osctrl-cli

The operator command-line interface for scripting and administration — manage environments, nodes, queries and users from your terminal or CI, via API or direct DB mode.

osctrl-mcp New

A Model Context Protocol server — a standalone stdio binary, or hosted by osctrl-api at /api/v1/mcp. It gives AI agents permission-checked fleet inspection. Write tools are a separate switch, off by default.

Shared core (pkg/*)

Every service builds on the same Go packages: node state, environments, queries, carves, users and permissions, caching, the log pipeline, alerting, audit log, MFA, GeoIP, posture and health.

Explore the architecture and technology stack →

Why osctrl?

Built for security teams that operate at scale

⚙️

Massive scale

Proven from hundreds to hundreds of thousands of nodes without compromising performance.

🔐

Security-first defaults

JWT auth by default, optional MFA with passkeys and TOTP, trusted proxy controls and audit logging throughout.

🤖

Ready for AI agents

An MCP server exposes fleet inspection to Claude and other MCP clients, bounded by the token's own permissions.

🆓

Open source

MIT licensed, actively developed, and already used in production environments.

See what teams use osctrl for →

Quick start

Up and running in minutes

Spin up the full stack locally with Docker Compose — TLS endpoint, API, frontend, PostgreSQL and Redis included.

# Clone the repository
$ git clone https://github.com/jmpsec/osctrl.git
$ cd osctrl

# Prepare the environment file and development certificate
$ cp .env.example .env
$ make docker_dev_certs

# Build and run everything in Docker
$ make docker_dev_build
$ make docker_dev_up

The operator frontend comes up at https://localhost:8444.

Full installation options: Docker, provisioning script, or building from source →

Take control of your osquery fleet

Free, open source, and ready to deploy today.