promptfoo vs Giskard

promptfoo is a Node CLI for config-driven evals and red teaming in CI. Giskard v3 is a Python 3.12 library for teams that already write Python tests. The right choice depends on your language stack and how you gate releases.

On this page

promptfoo vs Giskard: when each platform is the better choice

If you are shortlisting two open-source LLM testing tools, the choice usually comes down to where your existing tests live. promptfoo fits teams that want declarative configs and CI gating from a Node CLI, with the Node.js 22.22.0 or newer requirement that comes with it. Giskard fits teams whose test suites are already Python, because its v3 release requires Python 3.12 or newer and installs with pip install giskard. Both projects are open source, promptfoo under the MIT license and Giskard's library under Apache-2.0, and promptfoo was announced as joining OpenAI on March 9, 2026, with its founders stating it will remain open source. License and ownership alone will not separate them, so treat those as settled and look at the operating factors below.

Three decision drivers matter most. The first is the language of your existing test suite: if your evaluation harness, fixtures and CI jobs are in Python, a Python library that runs inside pytest-style workflows will likely cost less integration work than adding a Node toolchain to the pipeline. The second is how attacks should be generated. promptfoo generates adversarial inputs from plugins and strategies aligned with the OWASP LLM Top 10 and the NIST AI Risk Management Framework, driven by a declarative config. Giskard's vulnerability_scan builds adversarial suites from a plain-language description of the agent, so the question is whether you can describe your system accurately enough for that description to drive useful coverage. The third is the operating model. Both can run locally, but the self-hosted promptfoo app uses a local SQLite database that cannot be shared across replicas and lacks RBAC and SSO, so a shared team deployment points you toward promptfoo Enterprise or On-Premise. Confirm with Giskard which hosting and multi-user options apply, since its Hub is not planned for v3.

Feature counts will not settle this. Run one representative workflow in each tool against a non-production copy of your target: a release gate, a multi-turn agent check and a failing example you expect to see. Measure how long it takes your team to write, review and maintain the tests, and note which tool your engineers already read fluently. Ask each vendor, in writing, which judge model is used by default, how the judge is configured, and what telemetry is sent. Giskard's README says its telemetry excludes prompts and outputs and can be disabled with DO_NOT_TRACK=1, but confirm that setting covers your environment before you rely on it.

Which scenario favors which tool

This table maps common team situations to the tool that fits them better, with the condition that makes each choice hold. Read each row against your own pipeline, language skills and governance needs, since the right answer depends on where your tests must run.

ScenarioBetter fitCondition that decides it
Release gate in a Node.js pipelinepromptfooNode.js 22.22.0 or newer is available in the pipeline, and you want declarative configs that run from the CLI in CI/CD.
Python data science team extending pytest-style checksGiskard v3Your team already writes Python and runs Python 3.12 or newer, and you want checks written as code inside existing test suites.
Black-box agent needing a plain-language vulnerability scanGiskard v3 (giskard-scan)You can describe the agent in plain language, and you want generated adversarial suites covering prompt injection, jailbreaks and OWASP LLM Top 10 categories.
Config-driven attack coverage with minimal PythonpromptfooYour team prefers YAML-style declarative configs and wants red team plugins aligned with OWASP LLM Top 10 and NIST AI RMF.
Enterprise SSO and centralized dashboardpromptfoo Enterprise (confirm fit with vendor)Self-hosted promptfoo has no built-in SSO or RBAC, so you need the paid Enterprise or On-Premise tier. Neither tool's open-source core covers this need alone.
Mixed Node and Python teams sharing one test suiteConfirm with both vendorsChoose by which language owns the tests. Splitting ownership across two runtimes usually adds maintenance effort (illustrative).
Self-hosted, production shared test historyConfirm for each toolSelf-hosted promptfoo uses local SQLite that cannot be shared across replicas, so confirm storage and multi-user options for Giskard in your environment.

How promptfoo and Giskard are built and deployed

Both tools can run from a developer laptop or a CI runner, but they differ in what you install, which language your team maintains, and whether you need to host a server. The cards below cover the runtime model, the self-hosted option, the data path, and the packaging choices that decide who operates each tool.

promptfoo runs as a Node CLI

promptfoo is a Node.js CLI and library, and the current npm release requires Node.js 22.22.0 or newer. Evals run on the machine that invokes them and call the model provider directly, so prompts and responses travel from your runner to the provider you configured. Teams that already manage Node runtimes in CI will find this the lighter path, while Python-only shops should confirm they can add a Node toolchain to their build images.

Local execution keeps data on your machine

The promptfoo documentation states that the software runs completely locally, so evals execute on your machine and talk directly with the LLM. Data is not routed through a promptfoo-hosted service in this mode. Confirm with your security team which provider endpoints the runner may reach, and whether results written to disk need the same retention rules as the application logs they were derived from.

promptfoo self-hosted app is an Express server

The optional self-hosted promptfoo app is an Express server that serves the web UI and API. It can be deployed with Docker, Docker Compose or Kubernetes using Helm, which gives a shared place to view results. Someone on your platform team owns the container image, the upgrade path and the ingress, so budget for that operator role before treating the UI as a team tool.

SQLite limits the self-hosted app in production

The self-hosted app stores data in a local SQLite database that cannot be shared across replicas. It has no RBAC, no horizontal scaling, and no built-in authentication or SSO, and the documentation does not recommend it for production. If you need multiple operators, access control or SSO, plan on the Enterprise tiers or put the app behind your own access layer, and confirm that choice in writing before rollout.

Giskard v3 is a Python 3.12 library

Giskard 3.0.1 requires Python 3.12 or newer and installs with pip install giskard. Optional extras such as [scan] and [openai] add the vulnerability scanner and the OpenAI integration. Tests live in the same repository and virtual environment as your application code, so the team that writes Python tests can own the process without adding a new runtime. Confirm that your build images meet the Python version floor before committing.

giskard-checks and giskard-scan are split

Giskard v3 separates giskard-checks, which provides the scenario API, built-in checks and LLM-as-judge checks, from giskard-scan, which provides the agent vulnerability scanner and RAG and quality evaluation. You can install the checks for deterministic regression tests and add the scanner for periodic adversarial runs. Decide which package each pipeline stage needs, because the scanner's generated suites can call judge models and increase run time and provider spend.

How each tool generates attacks

promptfoo generates adversarial inputs from red team plugins and strategies, and those plugins are mapped to the OWASP LLM Top 10, the NIST AI Risk Management Framework and the EU AI Act. The red teaming documentation presents these frameworks as support for systematic testing before deployment. In practice, you pick the plugins and strategies in a declarative config file, and the CLI produces attack inputs that run against your target. Because promptfoo runs locally, the evals execute on your machine and talk directly to the model, so the prompts and responses stay inside the environment you control. Confirm with promptfoo which plugins cover the categories your auditors ask about, and check the mapping against the framework controls you need to show, since a plugin name does not prove coverage.

giskard-scan works from a plain-language description of the agent rather than a fixed plugin list. You describe what the agent does, and the vulnerability scan generates an adversarial suite covering prompt injection, jailbreaks, harmful content and OWASP LLM Top 10 threat categories. This suits a team that can state its agent's purpose clearly but has no catalog of attacks yet. The trade-off is that the generated suite reflects the description you wrote, so review the generated cases before you treat a clean scan as coverage. Ask Giskard which categories the scan produces for your agent type and how the suite is regenerated when the agent changes.

giskard-checks judges responses with explicit checks, written in Python. Built-in checks include string and regex matching, semantic similarity and LLM-judge checks such as Groundedness and Conformity. The default judge model is openai/gpt-4o-mini, so every LLM-judge check sends content to that model unless you change it. Judge calls are a recurring cost that grows with suite size and run frequency, and you should estimate them against your own provider pricing and test volume before you schedule a scan in CI. Also confirm that the judge model is acceptable under your data handling rules, because the judge sees the prompts and outputs under test.

Capability comparison: promptfoo and Giskard v3

This table compares promptfoo and Giskard v3 on license, language, attack generation, framework mapping, agent wrapping, CI use, self-hosting, identity and paid tiers. Read each row against your team's language skills and whether you need a self-hosted team UI, since the answer often decides the choice.

CapabilitypromptfooGiskard v3
LicenseMIT licenseApache-2.0 license (giskard-oss repository)
Language and runtimeNode.js CLI and library; npm 0.124.1 requires Node.js 22.22.0 or newerPython library; giskard 3.0.1 requires Python 3.12 or newer
Install pathnpm package promptfoo, run from declarative config filespip install giskard, with optional extras such as [scan] and [openai]
Attack generationRed team plugins and strategies that generate adversarial inputs from declarative configvulnerability_scan builds adversarial suites from a plain-language description of the agent
Framework mappingOWASP LLM Top 10, NIST AI RMF and EU AI Act referenced in its red teaming docsOWASP LLM Top 10 threat categories covered by the scan; confirm other framework mappings
Agent or black-box wrappingConfirm how black-box agents and multi-step pipelines are wrapped in your target setupWraps an LLM, a black-box agent or a multi-step pipeline for testing
CI integrationRuns checks in CI/CD pipelines from the CLI; confirm the exact pipeline setup you needPython checks can run in your test suite; confirm the CI pattern for your pipeline
Self-hosted web appExpress server with Docker, Compose or Helm; SQLite store, no RBAC or horizontal scaling, not recommended for productionConfirm whether a self-hosted team UI exists; Giskard Hub is not planned for v3
Identity and SSOSSO and RBAC are Enterprise features, not in the self-hosted appConfirm identity and SSO options for shared use before you commit
Telemetry and paid tierCommunity edition is free with 10k red team probes per month; Enterprise and On-Premise priced on request. Telemetry settings: confirm in docsOptional aggregated telemetry without prompts or outputs, disabled with DO_NOT_TRACK=1; confirm any paid offering

What promptfoo and Giskard license and charge for

promptfoo is an MIT-licensed CLI and library for evaluation and red teaming. The free Community edition includes all LLM evaluation features, all model providers and integrations, and red teaming with a monthly probe allowance, so a team can start without a contract. The recurring costs at this tier are engineering time to maintain configs and the model and judge API usage, which you pay directly to your providers.

  • MIT license: The CLI and library carry the MIT license, and the founders state that promptfoo will remain open source after the OpenAI acquisition announced on March 9, 2026.
  • Community allowance: Red teaming includes 10k probes per month. Confirm whether that allowance covers your planned CI run volume before you set a release schedule.
  • Community support: This edition comes with community support, so incident response depends on your own staff.
  • Local execution: Evals run on your machine and talk directly with the LLM, so the tool itself does not route your data through a vendor service.

Check the current allowance and feature list on the promptfoo pricing page before you plan CI volume, because packaging can change.

Identity integration and extending each tool

Self-hosted promptfoo has no built-in authentication or SSO, and its documentation lists RBAC and SSO among the things its self-hosted SQLite deployment does not provide. If your security standard requires named logins, SSO through your identity provider, or role-based access to evaluation results and red team reports, the self-hosted server alone will not meet it. SSO, teams-based access control and custom roles appear in the Enterprise tier, and the On-Premise option runs that Enterprise functionality on your own infrastructure. Before you shortlist promptfoo for a team that needs SSO, ask the vendor in writing which Enterprise edition includes SSO, how it is configured for your identity provider, and whether it runs inside your network.

Giskard extends through Python code rather than a hosted control plane. You wrap the model under test, whether that is an LLM, a black-box agent or a multi-step pipeline, and then write checks in Python using the giskard-checks API, including custom checks where the built-in string, regex, semantic similarity and LLM-judge checks do not match your policy. Identity around the wrapped target is your responsibility: the credentials your wrapper uses to call the agent, the way test scenarios and their results are stored, and who can run a scan are decisions your engineering team makes and documents. The v2 Giskard Hub is not planned for v3, so do not assume a managed multi-user console is part of the v3 path.

Confirm the current access controls of both options before you decide. For promptfoo, check the Community and Enterprise pages and the self-hosting documentation for the exact authentication, SSO and RBAC features in the edition you plan to buy. For Giskard, check the giskard-oss README for any authentication or access features in the release you pin, and test how your wrapper stores API keys for the judge model and the target. Record the answers in your architecture review, because a tool that depends on your own wrapper for identity will need the same review as any other internal service.

What drives running cost for each tool

Running either tool costs more than its license line. The biggest items are the people who write and maintain tests, the model calls made during attacks and judging, and the infrastructure and access controls you add around a self-hosted deployment. Read each card as a question to put to a vendor or to your own team before you compare quotes.

Engineering skill: Node versus Python

promptfoo runs as a Node.js CLI that requires Node.js 22.22.0 or newer, and its tests are declarative configs. Giskard v3 requires Python 3.12 or newer and its checks are Python code. The main recurring cost is the skill mix of the people who maintain the suites. A team that already writes Python tests will spend less time on Giskard, while a team of YAML and CI engineers may find promptfoo cheaper to keep running. Ask who will write and review the test code in each option.

Judge model and API spend

Attack generation, multi-turn attacks and LLM-judge checks all call a model, and those calls are billed by the provider. Giskard's built-in LLM-judge checks use openai/gpt-4o-mini as the default judge, so judge calls recur on every run. Both tools let you choose the model, so the cost depends on how many probes you run per build and how often the nightly scan runs. Ask the vendor or partner to estimate calls per pipeline run, the judge model used by default and whether it can be swapped for a cheaper or self-hosted model.

Infrastructure for the self-hosted server

The self-hosted promptfoo app is an Express server deployable with Docker, Docker Compose or Kubernetes with Helm. Its default data store is a local SQLite database that cannot be shared across replicas, so a shared or production deployment needs a different storage plan. Giskard's open-source library runs as a local Python process with no server to host. Costs here include compute, storage, backups, and the time to patch the server. Ask whether your deployment needs more than one instance and what storage the team will operate.

Enterprise licensing for SSO and shared dashboards

The open-source promptfoo CLI and the free Community edition cover evaluation and red teaming, with a monthly allowance of 10k probes. Team sharing, SSO, role-based access control, continuous monitoring and a central guardrail dashboard sit in the Enterprise tier, priced custom, and On-Premise adds a dedicated deployment engineer. Giskard's library is Apache-2.0 licensed, and its commercial terms are not covered in the sources used here. If you need SSO or shared results, this is a recurring line item for promptfoo. Ask for the written scope and whether it covers your user count and deployment model.

Test suite maintenance as agents change

Both tools need test cases that match the current agent. Giskard's scan generates adversarial suites from a plain-language description of the agent, which reduces hand-written attacks but still requires review when the description or tools change. promptfoo configs are declarative, so changes to prompts, tools or providers often mean editing the config and its assertions. This is the largest recurring effort for most teams. Ask who owns the suite, how often it is reviewed after an agent change, and whether the vendor or partner includes updates in a retainer.

One-time setup and migration

Initial setup includes wiring the tool into CI, building the first attack and check suite, connecting the model providers and documenting evidence for your assessors. These costs are mostly one-time, but they repeat if you later move from one tool to the other, because the suites are not portable. Giskard v2 is no longer actively maintained, so teams on v2 face a migration to v3 before any new work. Ask the partner for a written scope that lists setup, the first suite, and any migration of existing tests, and confirm what is excluded.

Moving test suites between promptfoo and Giskard

This sequence moves an existing set of attack and eval cases from one tool to the other without losing track of what was tested. It ends with a baseline both tools have run on the same target, so the team can decide on the switch with evidence rather than memory.

  1. Inventory existing attack and eval cases

    The AI or platform engineer who owns the current suite lists every attack, eval assertion and red team category in use, along with the target it runs against and the pass criteria. Include the manual cases kept in spreadsheets or notebooks, since those are often the ones nobody has written down. The step is done when the list is complete enough that a reviewer outside the team could recreate each test's intent from the list alone.

  2. Map each case to the target tool's model

    For each inventory item, the engineer identifies the nearest equivalent in the other tool. In promptfoo, that usually means a declarative config entry, a red team plugin or strategy, or an assertion. In Giskard v3, it means a scenario step, a built-in check such as string or regex matching or an LLM-judge check, or a category from the vulnerability scan. Some cases will have no direct match. Mark those as rebuild items with a note on what behavior they were meant to catch. The step is done when every case has a mapped target or an explicit gap.

  3. Rebuild custom judges and Python checks

    Custom graders, scoring functions and domain-specific judgments do not carry over as files. The engineer rewrites them in the target model: promptfoo custom assertions or provider-based graders on one side, Python check functions on the other. Confirm the judge model each tool will call, since Giskard's documented default LLM judge is openai/gpt-4o-mini, and set the judge explicitly in both tools so results are not tied to an unstated default. The step is done when each custom judge has a written rule, a unit-level example input and output, and a reviewer sign-off.

  4. Define the shared target and run the baseline

    The team points both tools at the same application endpoint, model version, system prompt and retrieval configuration, and records those values in version control. Each tool then runs the full mapped suite against that target. Keep the raw outputs from both runs, including promptfoo results and Giskard scan or check reports. The step is done when both runs are archived with the target version, judge model and run date, so the baseline can be reproduced later.

  5. Compare findings against the shared baseline

    The reviewer compares findings category by category rather than by raw counts. Attack generation is probabilistic and the two tools generate attacks differently, so a difference in totals is not a verdict on either tool. Look for categories where one tool flags failures the other misses, then check whether the gap comes from the attack, the judge or the target setup. The step is done when each discrepancy has a recorded cause and a decision to keep, fix or accept the gap.

  6. Switch the CI job and retire the old one

    The platform team rewires the pipeline to call the new tool, keeping the old job running in parallel until the new gate has produced results on several real changes. Pipeline secrets, judge API keys and artifact storage need to be set up for the new tool before cutover. The old job is removed only after the team has confirmed the new gate fails on the same test cases it used to fail on. The step is done when the new job is the required check and the old job is removed from the branch protection rules.

What implementing each tool involves and where projects run long

For promptfoo, the rollout is mostly configuration and pipeline wiring. The team writes a declarative config that names the target application, the provider credentials and the red team plugins and strategies to run, then adds a job to the CI system that runs the scan on each change. Provider configuration is the first decision: which model endpoints need keys, and whether the target is called directly or through a gateway. A self-hosted server becomes a question only when results must be shared. The open-source app stores data in a local SQLite database that cannot be shared across replicas, has no RBAC and no built-in authentication or SSO, and its documentation says it is not recommended for production. If several reviewers need a shared results view, confirm with the vendor whether the Enterprise tier or your own authentication layer fills that gap before you deploy. The self-hosting documentation lists the deployment options.

For Giskard, the work starts with the runtime. Giskard v3 requires Python 3.12 or newer, so that interpreter must exist in CI images and developer environments before you run pip install giskard with the extras you need, such as [scan] or [openai]. Two packages matter: giskard-checks, which holds the scenario API and built-in checks, and giskard-scan, which runs the vulnerability scan. Selecting checks means deciding which ones are deterministic, such as string, regex and similarity checks, and which depend on an LLM judge. Wrapping the target is the other large task. The agent, black-box endpoint or multi-step pipeline must be exposed as something Giskard can call, and that code belongs to the application team, so schedule it with them. Telemetry is optional and the giskard-oss repository says it never includes prompts or outputs. Still, set DO_NOT_TRACK=1 or GISKARD_TELEMETRY_DISABLED=1 in regulated environments unless your policy team has approved it.

Projects usually run long in four places. The first is agent scope. A vulnerability scan generates suites from a plain-language description of the agent, so a vague description produces a vague test set. Write down the tools, data sources and permitted actions before the first run. The second is judge choice. The default judge in Giskard v3 is openai/gpt-4o-mini, and LLM-judge results can shift when the judge changes, so pin the judge model and record it with every result. The third is false positives. Someone must review each flagged attempt, and that review recurs with every scan and grows with the number of attack categories. The fourth is access control. Confirm what each open-source setup provides for per-user permissions on findings, who may change checks, and where API keys are stored, because gaps here usually surface after the pipeline is already gating releases.

Questions teams ask before choosing or hiring help

How much does each tool cost to run in our environment?

Neither core tool has a license fee to start: promptfoo Community is free under the MIT license and includes red teaming with 10k probes per month, and Giskard's open-source library is Apache-2.0. Recurring cost comes from three places: judge and attack-generation calls billed by your model provider, the compute that runs scans in CI, and engineer time to maintain suites. Giskard's default judge model is openai/gpt-4o-mini, so judge calls are a direct API charge you can change. promptfoo Enterprise and On-Prem are custom priced, so ask for a written quote that covers seats, support level, deployment model and the expected probe volume.

How much effort does an implementation take?

No effort figure is supplied for either tool, so treat any number you hear as something to confirm in writing. The main drivers are the number of target systems, whether you test a chatbot, a retrieval pipeline or a multi-step agent, how many attack categories you must map to the OWASP LLM Top 10 or the NIST AI Risk Management Framework, and how much of the release gate you want automated. Giskard's vulnerability scan builds adversarial suites from a plain-language description of the agent, which can shorten setup, but someone still has to review the findings and tune the judges. DeployOpen's engagements are typically fixed-scope, with scope, deliverables and timelines agreed in writing before work starts, and the quote follows from that scope.

Can our Python team run Giskard without outside help?

Probably yes, if your team already writes Python tests and runs Python 3.12 or newer. Install with pip install giskard, then add the [scan] extra for vulnerability scans and [openai] if you use OpenAI models. Confirm four things first: the Python version your CI runners use, access to the judge model, whether you need the agent scan or only the checks, and whether any existing code depends on Giskard v2. The README says v2 remains available but is no longer actively maintained, so new suites should target v3. Outside help is most useful for threat modeling, judge calibration and CI hardening, and DeployOpen scopes that work in writing.

Does promptfoo need Node.js expertise to run in CI?

You need a working Node.js runtime, and promptfoo 0.124.1 requires Node.js 22.22.0 or newer. Most teams install the CLI from npm and call it from a pipeline step, so the skills involved are standard Node tooling: pinning the version, caching installs and reading exit codes. Suites are declarative configs, so routine test definitions need no code, but confirm in the documentation how much custom code your specific providers or assertions require. The self-hosted web app is an Express server that runs with Docker, Docker Compose or Helm, yet it stores data in a SQLite database that cannot be shared across replicas and is not recommended for production. Check that your runner image supports Node.js 22.22.0 before you commit to the pipeline.

What does promptfoo Enterprise SSO change for our team?

Enterprise adds single sign-on, teams-based access control, custom roles and permissions, team sharing, continuous monitoring and a centralized guardrail dashboard. The free self-hosted server has no RBAC, built-in authentication or SSO, so a shared instance on it would need access control added around it by your own team. SSO plus role separation is the main reason to price Enterprise if auditors or your CISO require identity-tied access records. Enterprise is custom priced, and On-Prem runs the same Enterprise functionality on your infrastructure with a dedicated deployment engineer. Confirm which identity protocols the SSO supports, how roles map from your directory, and whether the tier you are quoted includes every feature you need.

How long does a switch between promptfoo and Giskard take?

No switching duration is supplied, so the answer depends on what you have already built. Declarative promptfoo configs and Giskard Python checks are written in different forms, so moving suites means translating attack definitions, assertions and judge settings in both directions. Plan for the judge model, the CI jobs that call the tool and the historical results you want to compare. Running both tools in parallel for a period lets you confirm that findings match before you retire the old gate. Ask any vendor or partner for a migration scope in writing that lists your suites, judge model and pipeline jobs, since those three items drive most of the work.

Does Giskard send our prompts or outputs to its maintainers?

Giskard's README states that its optional telemetry is aggregated and never includes prompts or outputs, and you can turn it off with DO_NOT_TRACK=1 or GISKARD_TELEMETRY_DISABLED=1 in the environment that runs your scans. The more important exposure is elsewhere: every attack prompt and LLM judge call goes to whichever model provider you configure, so a hosted judge receives your test content. Using a local judge or an approved internal endpoint changes that exposure, but confirm the judge is reachable from your environment and allowed by your data policy. promptfoo's documentation says evals run on your machine and talk directly with the LLM, so the same provider question applies to it.

How DeployOpen helps choose and implement either tool

DeployOpen is a Chainscore Labs company that plans, implements, integrates, hardens and documents self-hosted open-source platforms inside the client's own infrastructure. For promptfoo vs Giskard, we start from your test language, CI system and deployment constraints, then build the configuration that fits your team.

How we scope

  • Confirm whether your test authors work in Node.js or Python 3.12 before choosing a tool.
  • Agree in writing which target applications, agents and OWASP LLM Top 10 categories the engagement covers.
  • Define whether the work is a fixed-scope pilot, a CI gate or a wider rollout, with deliverables and timelines set before work starts.

How we build

  • Write the promptfoo declarative configs or Giskard v3 Python checks that exercise your application.
  • Wire the chosen tool into your existing CI pipeline and confirm failing runs block the intended merges.
  • Test attack suites against your own endpoints and review detector results with your security engineers.

How we hand over

  • Document configuration files, scan settings, judge model choices and how results are stored and reviewed.
  • Run a walkthrough with your engineers so they can add tests and interpret findings without us.
  • Deliver evidence of test runs and control mappings in a form your auditors can review, without us issuing any certification.

How we support

  • Offer ongoing support, upgrades and continuous testing as a retainer after handover.
  • Review new tool releases and track changes that affect your test suites or judge models.
  • Confirm with the vendor any self-hosting, multi-user or access control needs before committing to a deployment design.

Sources and further reading

Talk to our team.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.

  • 30-minute call: free, with no obligation.
  • NDA on request: we can sign before you share details.
  • Clear next steps: a scope and plan after the call.