Velociraptor vs GRR vs osquery: which fits your endpoint job
If your security team needs endpoint visibility or incident response on infrastructure you control, choose the tool that matches the job: osquery for continuous SQL inventory and monitoring, which needs a separate fleet manager, GRR for Google-built remote live forensics, and Velociraptor for VQL hunts, collection and offline collectors in one binary. The three overlap more than the labels suggest, and osquery can run inside both GRR and Velociraptor, so the question is which tool owns the workflow you run most often. If you need standing inventory questions answered across every host, such as running processes, open network connections or installed software, osquery is the natural core, but plan for a fleet manager such as one of the third-party options the osquery project lists. If your work is responding to a suspected compromise and pulling artifacts from specific machines, GRR and Velociraptor are the closer fit. Velociraptor also covers hunting across the fleet, and its offline collector can gather evidence from hosts where no client can be installed.
Check three things before you decide. First, confirm whether your responders need an in-house server with a web GUI and an API, or whether a Python-based deployment suits your engineers better. Second, confirm the licenses against your internal policy: osquery is Apache-2.0 or GPL-2.0-only at your option, GRR is Apache-2.0, and Velociraptor is AGPL-3.0, which carries network-use obligations for modified versions. Third, check whether osquery is already on your endpoints. GRR needs the osquery executable present and its Osquery.path setting configured, while Velociraptor's Windows.OSQuery.Generic artifact can push the binary on demand, which changes the rollout work.
The tools can also be combined. A team might keep osquery for scheduled inventory and use Velociraptor for hunts and collection, or run osquery queries from inside an existing GRR deployment. Test the workflow you actually expect during an incident on a small lab group before standardizing, and ask any implementation partner to write down which tool handles which job in the agreed scope.
Which platform fits which endpoint scenario
This table maps common endpoint scenarios to the platform most likely to fit each one, with the supplied fact that drives the choice. Read the reason column first, then check the conditional rows against your team's existing skills and tooling.
| Scenario | Best fit | Why |
|---|---|---|
| Continuous inventory and monitoring across many hosts | osquery, or Velociraptor with its osquery artifact | osquery runs scheduled queries through osqueryd, but it has no central management server, so you need a third-party fleet manager such as Fleet, Kolide, OSCTRL or Zentral. Velociraptor has a built-in server and can run osquery through Windows.OSQuery.Generic, which avoids a separate fleet manager. |
| Incident response on a known set of hosts | Velociraptor | Velociraptor's VQL artifacts, hunts and targeted collection are built for this work, and it is licensed under AGPL-3.0 with a Rapid7 backing history noted in the 2021 acquisition announcement. |
| Hosts that cannot take an installed client | Velociraptor | Offline collectors built from the GUI have all the capabilities of a normal client, can run any artifact and write results to JSONL or CSV. GRR and osquery need an installed agent or executable on the target. |
| Team with Python skills and an existing GRR deployment (conditional) | GRR, with the Rust agent path evaluated | GRR's server and clients are Python, and version 4.0.0.0 added RRG support for a Rust agent. Staying on GRR fits if your team already runs it, but the v2 API change in 4.0.0.0 means custom integrations and routers need updating. |
| Team that wants one server without a database (conditional) | Velociraptor | Velociraptor keeps its data in files on the server filesystem and needs no separate database. Confirm that file-based storage and the server's Linux-only full support fit your hosting plan. |
| Running osquery queries alongside GRR (conditional) | GRR with osquery installed on each client | GRR's Osquery collector only works when the osquery executable is already on the client and its location is set in Osquery.path. Clients must be repacked and redeployed after that change, so plan the rollout before you need the query. |
| Lightweight triage on one machine | Velociraptor | The velociraptor gui command starts a GUI, frontend and local client on one machine, which suits single-host triage without a deployed fleet. |
Capability comparison across osquery, GRR and Velociraptor
This table compares the three open-source endpoint tools on job, query model, management, storage, operating system coverage, agent language, osquery support, offline collection, licensing and API status. Read each row against your own fleet: the cells that say to confirm are where your environment decides the answer.
| Capability | osquery | GRR Rapid Response | Velociraptor |
|---|---|---|---|
| Primary job | SQL-based inventory and scheduled monitoring of operating system state | Remote live forensics and incident response on target systems | Hunting, targeted artifact collection and client monitoring, with forensics in one tool |
| Query model | SQL tables compiled into the agent, run ad hoc in osqueryi or on a schedule via osqueryd | Flows run from the GRR server against clients, with an Osquery collector flow available | VQL queries wrapped in YAML artifacts that can be edited in the GUI without rebuilding clients |
| Central management | None built in; the project lists third-party fleet managers such as Fleet, Kolide, OSCTRL and Zentral, which it does not endorse or test | Built-in GRR server manages clients and flows | Built-in server with web GUI, frontend and gRPC API |
| Server storage | Not applicable as a central server; storage depends on the chosen fleet manager | Python server infrastructure; confirm its database and scaling model in the GRR documentation for your version | Files on the server filesystem with no separate database; compatible with distributed file systems such as Amazon EFS |
| Supported endpoint operating systems | Linux, macOS and Windows | Windows, macOS and Linux client deployment guides are provided; confirm agent coverage for your exact versions | Client on each endpoint; confirm exact platform coverage for your versions in the documentation |
| Agent language | C++ compiled binary | Python agent and Rust agent (RRG), with both supported since GRR 4.0.0.0 | Single statically compiled Go executable |
| osquery support | Native | Runs osquery only if the executable is already on the client and Osquery.path is set | Can push the osquery binary on demand via the Windows.OSQuery.Generic artifact |
| Offline collection | Not a feature of osquery itself; confirm with your fleet manager | Confirm in GRR documentation for your version | Offline collectors built from the GUI have all client capabilities and write JSONL or CSV |
| License | Apache-2.0 OR GPL-2.0-only, at your choice | Apache License 2.0 | AGPL-3.0 |
| API status | Not applicable; integrations depend on the fleet manager | Legacy v1 HTTP API removed in GRR 4.0.0.0 in favor of v2 protobuf API; custom integrations need updating | gRPC API included; confirm current version and compatibility for your integrations |
How GRR and Velociraptor run osquery queries
GRR and Velociraptor both can run osquery, but they get there in different ways, and the difference decides how much work lands on your team. In GRR, the Osquery collector flow only works when the osquery executable is already on the target client and its path is set in the Osquery.path configuration option. Because that setting is part of the client configuration, you must repack and redeploy the GRR clients after the change, so plan that rollout before you need the query. In Velociraptor, the Windows.OSQuery.Generic artifact can push the osquery binary to an endpoint on demand, so the binary does not have to be installed in advance. The trade-off is that the Velociraptor path depends on the artifact working on each operating system in your fleet, which you should confirm against the osquery releases page for the version you plan to deploy.
Neither bridge makes the three tools interchangeable. The Velociraptor history names GRR and osquery as two of the open source projects it drew inspiration from, but that lineage describes design ideas, not a shared feature set. Running osquery through GRR or Velociraptor gives you SQL-style tables on demand; it does not turn GRR into an inventory platform or give osquery a server, hunt manager or offline collector. Osquery still has no central management server of its own, so the bridge only helps if you already have a server to receive results. Decide first which job the team needs done (continuous inventory, remote forensics or collection for an incident), then decide whether the bridge is a convenience or a core dependency.
Before you rely on either bridge, test it in your own environment. Confirm the osquery version and binary for each operating system you run, including whether the Velociraptor artifact can deploy and execute it on your Windows builds and whether macOS and Linux endpoints need a separate path. For GRR, test the repack and redeploy cycle on a small group of clients and confirm that Osquery.path is applied as expected. Check that results return to the server with the fields your analysts need, and measure the effect of query load on endpoint performance on hosts that matter most. Record who owns the osquery binary lifecycle, including updates, since a pushed or pre-installed binary becomes another component to patch.
What each license allows and what, if anything, is paid
Velociraptor is licensed under the GNU Affero General Public License version 3 (AGPL-3.0), as stated in the project's LICENSE file. Rapid7 announced its acquisition of the project on April 21, 2021 and said it would continue to build the Velociraptor community and remained committed to supporting its open-source community. The supplied facts do not name a paid Velociraptor edition, so any commercial support terms must come from Rapid7 or the project directly.
- Modified versions: If you change Velociraptor and let users interact with the modified server over a network, the AGPL-3.0 text requires that those users can obtain the corresponding source of your changes.
- Distributed builds: If you pass binaries or offline collector builds to outside parties, the license attaches source and license obligations to that distribution.
- Internal use: Running the stock binary for your own staff does not change the license terms on its own, but the network provision still applies to how your staff reach a modified server.
- Commercial support: The supplied facts name no paid tier, so ask Rapid7 whether support, training or hardening is sold and on what terms.
Get the commercial support answer in writing, and have counsel review the network provision against how your analysts will reach the server.
GRR Rapid Response is open source under the Apache License 2.0 and is developed in the google/grr repository. The Apache License is permissive, so it does not impose copyleft obligations on your own modifications in the way the AGPL-3.0 or GPL-2.0 do. The supplied facts name no paid GRR edition, and its community channels are GitHub issues and the grr-users mailing list, so commercial support would come from a provider you engage separately.
- Modified versions: You may modify and redistribute GRR, including inside closed products, provided you keep the license and notices and mark changed files as changed.
- Hosting internally: The Apache License does not require you to publish source for internal deployments of a modified server, although you should still record every change for your own audit trail.
- Patent terms: The license includes a patent grant from contributors, which your legal team should read directly in the license text.
- Agent changes: Changes to the Python or Rust agent require repacking and redeploying clients, which is an operational cost rather than a license obligation.
Before you adopt GRR, confirm with your legal team how your modification notices will be tracked, and confirm who will supply support if the community channels do not meet your response times.
osquery is licensed as Apache-2.0 OR GPL-2.0-only, and the user may choose either license, according to the osquery LICENSE file. The choice matters if you plan to modify or redistribute the agent. The Apache-2.0 option is permissive, while the GPL-2.0-only option carries copyleft conditions when you distribute the software. The supplied facts name no paid osquery edition, and the project itself has no central management server.
- Choosing a license: Pick one license and document the choice in your third-party software inventory so that auditors can trace the terms you relied on.
- GPL-2.0-only path: If you distribute a modified osquery under GPL-2.0-only, you take on the source and license conditions of that license for the distributed build.
- Apache-2.0 path: If you distribute under Apache-2.0, you keep the notices and mark changes, as with other Apache-licensed tools.
- Internal modifications: Modifying osquery only for your own fleet raises different questions from distributing it, so confirm with counsel which conditions apply to your deployment model.
- Velociraptor artifact: Velociraptor can push the osquery binary to endpoints, so the license of that binary still applies to the copies your team deploys.
Confirm the license you have chosen with your legal or procurement team before you build packages for endpoints.
osquery has no central management server, so teams that want fleet-wide scheduling and results handling add a third-party fleet manager. The osquery README names Fleet (open core), Kolide (commercial), OSCTRL and Zentral (open source), and states that the project does not endorse or test them. Each one is a separate product with its own license and commercial terms, so your license review covers the fleet manager as well as osquery itself.
- Fleet: Described as open core, which means some features sit outside the free core. Confirm which features are paid and under what license the core is distributed.
- Kolide: Described as commercial, so expect license fees and a vendor agreement. Ask for the price basis and support terms in a written quote.
- OSCTRL: Open source, but confirm the exact license and whether any features are gated behind separate offerings.
- Zentral: Open source, with the same check on license terms and maintenance commitments before you depend on it.
For each fleet manager, ask the vendor or maintainer for the license file, the list of paid features and the support window in writing before you add it to the architecture.
What drives the running cost of each endpoint tool
Licensing is only one line in the budget for these three tools. The larger costs come from where the server runs, how agents reach endpoints, how queries are maintained and how much analyst time each hunt consumes. Read each card as a question to put to your implementation partner and to your own staff before you sign a quote.
Velociraptor server hosting
Velociraptor ships as one Go binary and keeps its data in files on the server filesystem, so there is no separate database to host. The server is typically deployed on a cloud VM and is only fully supported on Linux. Ask who owns that VM, its sizing for your host count, how the file store is backed up and whether the server sits in your own cloud account or a data center. Storage growth from collections is the cost to model first.
GRR server infrastructure
GRR runs a Python server stack that manages and talks to clients, and the current recommended install is Docker Compose. Hosting, patching and scaling that stack is a standing task for whoever runs the platform. Because GRR 4.0 removed the legacy UI and v1 API, the server team also carries the cost of keeping that stack on a supported version. Ask for the target server topology, the container host and the owner of server upgrades.
Fleet manager for osquery
osquery has no central management server, so a fleet manager is a separate product that you must select, host and secure. The osquery project lists options such as Fleet, Kolide, OSCTRL and Zentral, and it does not endorse or test them. Each one adds its own database, TLS setup, enrollment process and upgrade cycle. Ask whether the quote includes selecting and hosting that manager, and who answers when the manager and the agent versions drift apart.
Agent rollout and repacking
Agent deployment is often the largest one-time cost. For GRR, the osquery executable must already be on the client and its location set in the Osquery.path option, and clients are repacked and redeployed after that change. Velociraptor can push the osquery binary on demand through the Windows.OSQuery.Generic artifact, which reduces that pre-installation step. Ask how many endpoint platforms you run, which deployment tool pushes agents and how repacking is scheduled.
Query and artifact maintenance
Each tool needs ongoing work on the queries or artifacts that define what it looks for. osquery queries live in scheduled configuration. Velociraptor artifacts are YAML files you can edit in the GUI without rebuilding clients, which lowers the cost of each change but still needs review and version control. Ask who writes and tests custom artifacts or flows, how changes are approved and whether the quote covers the hunts you need in year one.
Analyst time for hunts and collection
Hunts, triage and forensic collections consume analyst hours, and that cost recurs with each incident and each audit request. Velociraptor's offline collectors can gather evidence from hosts where no client is installed, which shifts some work to collection planning and result handling. Ask for the expected number of hunts per month, the retention period for collected results and who reviews and preserves evidence, because those choices drive the staff time you will actually pay for.
What implementing each platform involves
Implementing osquery is mostly a rollout and management problem, because the project has no central server of its own. Your team installs the osquery agent on each endpoint, then chooses a fleet manager from the third-party options the osquery README names, such as Fleet, Kolide, OSCTRL or Zentral. That choice sets the work: you configure the query packs and schedules, decide where results are stored, and build the path that carries results to your SIEM or log platform. Confirm with your endpoint team how the agent will be packaged and pushed through your existing software distribution tooling, which fleet manager's license and support terms fit your procurement rules, and who owns the query library after go-live. Osquery's license is Apache-2.0 OR GPL-2.0-only, so confirm with counsel which option you will rely on.
GRR needs a server before it needs anything else. The GRR documentation recommends Docker Compose, with the Docker image, released pip packages and source installs as alternatives. Plan for the server and its storage, then build client packages for Windows, macOS and Linux using the client deployment guides and deploy them through your management tooling. If you intend to use GRR's osquery collector, the osquery executable must already be on the client and its location set in the Osquery.path option, and clients must be repacked and redeployed after that change. Because GRR 4.0.0.0 removed the legacy UI and the v1 HTTP API in favor of the v2 API, any custom integration or router needs an update plan before you upgrade. Confirm whether you need the Python agent, the Rust RRG agent, or both, since actions are scheduled on either depending on availability.
Velociraptor requires a Linux server, typically on a cloud VM, with the frontend, GUI and gRPC API running from a single binary and data kept in files on the server filesystem. Deploy the client to endpoints, or use offline collectors built from the GUI for hosts where a client cannot be installed. Offline collectors have the same capabilities as a normal client and can write results to JSONL or CSV. Most of the effort sits in reviewing the artifacts that ship with the product and tuning them for your environment, since VQL artifacts are YAML files you can change in the GUI without rebuilding clients or servers. Confirm the server sizing and storage growth for your expected collection volume, which Velociraptor deployment and release notes you will track given the 0.77.3 update, and who approves and tests artifact changes before they reach production.
Questions buyers ask before choosing or hiring help
Which tool should I choose for continuous inventory versus incident response?
For continuous inventory and scheduled monitoring, osquery is the narrower tool: it exposes operating system state as SQL tables and runs queries ad hoc in osqueryi or on a schedule through osqueryd, but it has no central management server of its own. For incident response collection, GRR and Velociraptor are built for remote live forensics and hunts across many hosts. Velociraptor adds a built-in server, VQL artifacts, file collection and offline collectors, which matter when hosts cannot always be reached. Choose by the job you will run most often, then confirm the agent, network and licensing terms against your own environment before standardizing. A fleet manager is an extra component to budget for if you pick osquery alone.
Can osquery be used with Velociraptor or GRR?
Yes, but the path differs by tool. Velociraptor can push the osquery binary to an endpoint on demand through its Windows.OSQuery.Generic artifact, so osquery does not have to be installed in advance. GRR can run osquery queries through its Osquery collector flow only when the osquery executable is already on the client and its location is set in the Osquery.path configuration option, and GRR clients must be repacked and redeployed after that change. Test both paths on a representative host group, and confirm which operating systems and osquery versions your chosen agent supports before you rely on either route.
What does a GRR 4.0 migration require?
GRR 4.0.0.0, released on December 15, 2025, adds server-side support for RRG, a Rust agent, and runs it alongside the Python agent. It also removed the legacy UI and the legacy v1 HTTP API in favor of the v2 API, which uses protocol buffers and a different JSON format. A migration therefore has three parts: inventory any custom API integrations and routers that call v1, rewrite them against v2, and decide whether new endpoints use the Python or Rust agent. Scope depends on how much your team automated on top of GRR. Ask the vendor and your integrators to confirm the exact change list for your version before you plan the cutover.
Can our team run these tools without outside help?
A team with Linux administration, endpoint tooling and incident response experience can run any of these tools internally, and the documentation for each is public. The harder parts are the server deployment, certificate and access setup, client packaging and deployment, and ongoing upgrades. Velociraptor is typically deployed on a cloud VM and is only fully supported on Linux, and its server stores data in files rather than a database, which simplifies operations. GRR is a Python server with a Docker Compose recommended install. If your team has no spare capacity for upgrades and security patching, an implementation partner can cover that part under a retainer, scoped in writing.
How much effort and time does implementation take, and what drives it?
The main drivers are the number and type of endpoints, the networks they sit on, whether clients can be installed directly or need offline collectors, how many custom artifacts or integrations you need, and how much existing tooling must be connected. Velociraptor's single binary and file-based server reduce some setup work, while GRR's Python server and agent packaging add steps. No supplied figure gives a duration for your environment, so ask for a written scope that lists the deployment, testing, integration, documentation and handover tasks, with dates tied to each. Fixed-scope engagements agree those deliverables in writing before work starts.
What does the work need from our staff?
Plan for people who can read and write queries (SQL for osquery, VQL for Velociraptor, and Python for GRR server work), who understand endpoint telemetry, and who can run incident response procedures. Someone must own agent deployment, version tracking and update windows. Velociraptor's documentation asks users to move to release 0.77.3 to address multiple CVEs, which shows why patch ownership must be explicit. Confirm with each vendor which versions receive security fixes, and assign a named owner for each tool before go-live.
What does licensing mean if we host these tools for other teams or clients?
The license controls what you must share, so read it before you offer the tool as a service. Velociraptor is licensed under AGPL-3.0, which carries network-use obligations for modified versions. GRR is Apache License 2.0, and osquery is Apache-2.0 OR GPL-2.0-only, where you may choose either license. Obligations also depend on whether you modify the code and how you distribute clients. Have your legal counsel review the exact terms for your hosting model, and ask any implementation partner to state in writing which license obligations its work creates for you.
How DeployOpen helps teams choose and implement endpoint visibility tools
DeployOpen plans, implements, customizes, integrates, hardens, documents and supports self-hosted open-source platforms inside the client's own infrastructure. For endpoint visibility, that means matching the job to the tool first, then building the deployment, integrations and evidence around the chosen platform in the team's own cloud accounts, data centers or air-gapped networks.
How we scope
- Engagements are fixed-scope, with scope, deliverables and timelines agreed in writing before work starts.
- We confirm whether the need is live inventory queries, incident response collection or both, before naming a platform.
- We confirm the license position with your legal team, including AGPL-3.0 obligations for Velociraptor and Apache-2.0 or GPL-2.0 terms for osquery and GRR.
How we build
- We deploy the chosen platform in your environment, with the server, frontend and endpoint client configured for your network.
- We design artifacts or collector flows for your priority use cases, and test them on representative hosts before any fleet-wide rollout.
- Where osquery is involved, we set up how the binary reaches endpoints and how results reach your alerting or case workflow.
How we hand over
- We document the deployment, configuration, artifact library and offline collector procedures for your operators.
- We provide runbooks covering upgrades, such as applying the current Velociraptor release, and rollback steps.
- We walk your security and IR staff through the handover so they can run hunts and collections without us.
How we support
- Ongoing support, upgrades and continuous testing are available as retainers after handover.
- We can review new releases and advisories for your deployed platform and plan the upgrade window with your team.
- Ask any provider to confirm in writing which platform versions, hosting models and support windows the quote covers.

