RepoGuard
Updated 1 h ago
GCHQ

Organization

Public GitHub footprint of GCHQ

@gchq
View profile on GitHub

We are the UK's intelligence, security and cyber agency. Our mission is to help keep the country safe.

UK

73

Public repositories

39,056

Total stars

2,373

Followers

GCHQ maintains a significant public presence on GitHub, featuring a wide array of repositories primarily in Java, Python, and JavaScript. Notable projects include CyberChef, a versatile tool for data manipulation, and Gaffer, a large-scale database for entity relations, reflecting GCHQ's commitment to cybersecurity and data analysis.

Top languages

Java 26Python 10Shell 10JavaScript 8TypeScript 4Groovy 2Go 2Batchfile 1

Public repositories

CyberChef

35,087

The Cyber Swiss Army Knife - a web app for encryption, encoding, compression and data analysis

JavaScript
Updated Jun 13, 2026

Gaffer

1,790

A large-scale entity and relation database supporting aggregation of properties

Java
Updated Jun 9, 2026

BoilingFrogs

628

GCHQ's internal Boiling Frogs research paper on software development and organisational change in the face of disruption #boilingfrogs

Unknown Language
Updated May 12, 2026

stroom

476

Stroom is a highly scalable data storage, processing and analysis platform.

Java
Updated Jun 12, 2026

CyberChef-server

172

A server providing RESTful access to CyberChef

JavaScript
Updated Jun 3, 2026

sleeper

102

A cloud-native, serverless, scalable, cheap key-value store

Java
Updated Jun 12, 2026

Palisade

97

A Tool for Complex and Scalable Data Access Policy Enforcement

Batchfile
Updated Oct 23, 2025

Bailo

93

Managing the lifecycle of machine learning to support scalability, impact, collaboration, compliance and sharing.

TypeScript
Updated Jun 11, 2026

annchor

63

Fast k-NN graph construction for slow metrics

Python
Updated Aug 20, 2025

gaffer-tools

49

gaffer-tools is deprecated. Use https://github.com/gchq/gafferpy instead

Python
Updated Oct 22, 2025

nix-bootstrap

41

Easily generate reproducible infrastructure

Haskell
Updated Jun 5, 2026

coreax

40

A library for coreset algorithms, written in JAX for fast execution and GPU support.

Python
Updated Jun 8, 2026

gaffer-docker

32

Gaffer Docker images and associated Helm charts for deploying on Kubernetes

Shell
Updated Nov 22, 2025

stroom-docs

31

Documentation for Stroom and associated projects

Shell
Updated May 19, 2026

MagmaCore

28

Magma Core is a collection of Java Classes and utilities to enable HQDM objects and patterns to be created and consumed as RDF Linked Data.

Java
Updated May 20, 2026

event-logging-schema

25

Event Logging is an XML Schema for describing the auditable events generated by computer systems, hardware devices and access control systems

Shell
Updated Oct 22, 2025

koryphe

24

A flexible library for writing functional operations in Java

Java
Updated Oct 28, 2025

synthetic-data-generator

22

Code for generating synthetic data for testing

Java
Updated Dec 11, 2024

LD-Explorer

21

LD-Explorer is the missing tool for exploring, federating and querying linked data resources directly from the browser

TypeScript
Updated Jun 8, 2026

ConcourseTools

16

A Python package for easily implementing Concourse resource types.

Python
Updated Apr 16, 2026

event-logging

16

A Java JAXB library for generating events conforming to the Event Logging XML Schema

Java
Updated Oct 22, 2025

CyberChef-web

16

The Cyber Swiss Army Knife - a web app for encryption, encoding, compression and data analysis

Unknown Language
Updated Sep 27, 2025

stroom-visualisations-dev

14

A set of D3 data visualisations for use in Stroom dashboards or other applications

JavaScript
Updated Dec 7, 2025

HQDM

14

Java implementation of the High-Quality Data Model framework.

Java
Updated Oct 22, 2025

iris-worm

12

IRIS Worm is a real-time data graphing component.

JavaScript
Updated Dec 17, 2022

gaffer-doc

10

Documentation for Gaffer

Unknown Language
Updated Oct 22, 2025

stroom-content

9

Content for Stroom such as XML Schemas, translations, pipelines and dashboards

XSLT
Updated Dec 1, 2025

gafferpy

6

Python API for Gaffer

Python
Updated Oct 22, 2025

Kai

6

Kai is an experimental Graph-as-a-Service framework built with the Amazon CDK

TypeScript
Updated Oct 22, 2025

stroom-proxy

6

Acts as a proxy for forwarding and aggregating data en route to Stroom

Java
Updated Feb 12, 2023

gaffer-experimental

6

No description provided for this repository.

Java
Updated Feb 1, 2023

gchq-data-quality

5

A lightweight package to conduct data quality measurements in Pandas and Spark dataframes

Python
Updated Jun 12, 2026

stroom-resources

5

Applications and resources on which Stroom services depend

Shell
Updated Jun 4, 2026

Vanguard

5

No description provided for this repository.

Python
Updated Apr 12, 2026

iris-schedule-viewer

5

An IRIS component for displaying gantt-style categorised data over time.

JavaScript
Updated Dec 17, 2022

iris-timeline-viewer

5

An IRIS component for navigating and interacting with time based data.

JavaScript
Updated Apr 15, 2022

stroom-ansible

4

A home for all stroom related ansible playbooks, roles, etc.

Python
Updated Dec 3, 2025

Maestro

4

A framework for configurable operation executors

JavaScript
Updated Apr 9, 2024

stroom-stats

4

No description provided for this repository.

Java
Updated Dec 17, 2022

stroom-js

4

No description provided for this repository.

JavaScript
Updated Dec 17, 2022

stroom-expression

4

No description provided for this repository.

Java
Updated Apr 23, 2021

stroom-data-generator

3

Utility for generating data suitable for testing Stroom

Java
Updated Mar 10, 2026

Palisade-readers

3

Contains all the implementations for Palisade data reader technologies.

Java
Updated Oct 22, 2025

Palisade-examples

3

Contains the various examples for demoing Palisade

Java
Updated Oct 22, 2025

Palisade-clients

3

Contains the code for the client libraries for Palisade

Java
Updated Oct 22, 2025

stroom-clients

3

A collection of client libraries to help with sending data to Stroom

Shell
Updated Oct 22, 2025

Palisade-services

3

Contains the service implementations for a Palisade deployment

Java
Updated May 23, 2025

stroom-agent

3

A simple java program that can be used for pulling data (such as log files) from remote hosts and forwarding it to Stroom

Java
Updated Aug 12, 2024

stroom-ui

3

The new (for StroomV7) React based user interface for Stroom

TypeScript
Updated Apr 22, 2024

hbase-common-shaded

3

A shaded version of org.apache.hbase:hbase-common: shades Jersey and excludes logging.

Unknown Language
Updated Dec 17, 2022

stroom-timeline

3

Disorder in, order out

Java
Updated Dec 17, 2022

hadoop-common-shaded

3

A shaded version of org.apache.hadoop:hadoop-common: shades Jersey and excludes logging.

Shell
Updated Jul 4, 2021

stroom-auth

3

No description provided for this repository.

Java
Updated Mar 14, 2020

event-logging-json-schema

2

No description provided for this repository.

Unknown Language
Updated Aug 5, 2025

Palisade-common

2

Contains the libraries that are common across Palisade services

Java
Updated May 23, 2025

event-logging-proto-schema

2

No description provided for this repository.

C++
Updated Apr 4, 2025

hadoop-hdfs-shaded

2

A shaded version of org.apache.hadoop:hadoop-hdfs: shades Jersey and excludes logging.

Shell
Updated Apr 29, 2021

stroom-query

2

No description provided for this repository.

Java
Updated Oct 26, 2020

stroom-headless

2

An example of how to run Stroom processing from the command line

Shell
Updated Jul 15, 2019

stroom-timeline-loader

2

No description provided for this repository.

Java
Updated May 17, 2019

stroom-shaded-dependencies

2

No description provided for this repository.

Unknown Language
Updated May 17, 2019

urlDependencies-plugin

2

A Gradle plugin for retrieving remote dependencies by URL. E.g. from GitHub releases.

Groovy
Updated May 17, 2019

coreax-metadata

1

No description provided for this repository.

Python
Updated Jun 8, 2026

vanguard-metadata

1

No description provided for this repository.

Python
Updated Aug 20, 2025

detections-schema

1

No description provided for this repository.

Shell
Updated Apr 4, 2025

stroom-test-data

1

Generic library for generating test data with configurable fields, formats and outputs

Shell
Updated Apr 30, 2021

stroom-annotations

1

Annotations Service for Stroom Dashboards

Java
Updated May 17, 2019

stroom-k8s-operator

0

Stroom Kubernetes operator, for automating the deployment and lifecycle management of a Stroom cluster

Go
Updated Jun 1, 2026

stroom-kubernetes-operator

0

Stroom Kubernetes operator, for automating the deployment and lifecycle management of a Stroom cluster

Go
Updated Aug 15, 2025

stroom-analytic-demo

0

Analytic demonstrator / event generator for Stroom. Includes stochastic event generation component, that features a state machine and is capable of creating realistic looking streams of data, e.g. for UEBA development.

Jupyter Notebook
Updated Jun 15, 2021

stroom-spark-datasource

0

An Apache Spark Datasource for access to data held within Stroom

Java
Updated Jun 15, 2021

gradle-dependency-analyze

0

Dependency analysis plugin for gradle

Groovy
Updated Feb 2, 2021

stroom-query-elastic

0

A Stroom API wrapper around Elastic Search

Java
Updated Apr 12, 2018

Frequently asked questions

What does gchq build on GitHub?

GCHQ develops various tools on GitHub, including CyberChef for data encryption and analysis, and Gaffer for managing large-scale databases. Their repositories focus on enhancing cybersecurity, data processing, and software development methodologies.

Which programming languages does gchq use?

GCHQ primarily uses Java, Python, Shell, JavaScript, TypeScript, and Groovy in their public repositories. This diverse range of languages supports their various projects aimed at data analysis, encryption, and software development.

Are gchq's repositories public?

Yes, GCHQ's repositories are public on GitHub. This transparency allows the community to access tools and resources related to cybersecurity, data processing, and software development practices.

Is this exposure intended?

Monitor GCHQ with RepoGuard and get alerted the moment a new public repository appears.

Monitor this account