gchq /CyberChef

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

★ 36,358⑂ 4,194👁 389⑃ 1,439● 1,272▤ 459◈ 7
JavaScriptApache-2.0Created 2016-11-28gchq.github.io/CyberChef
36,358
stars
+8+61+330
4,194
forks
389
watchers
1,439
prs
1,272
issues
459
releases
7
discussions

README

CyberChef







 The Cyber Swiss Army Knife

CyberChef is a simple, intuitive web app for carrying out all manner of "cyber" operations within a web browser. These operations include simple encoding like XOR and Base64, more complex encryption like AES, DES and Blowfish, creating binary and hexdumps, compression and decompression of data, calculating hashes and checksums, IPv6 and X.509 parsing, changing character encodings, and much more.

The tool is designed to enable both technical and non-technical analysts to manipulate data in complex ways without having to deal with complex tools or algorithms. It was conceived, designed, built and incrementally improved by an analyst in their 10% innovation time over several years.

 Contents

- Official website
- Running Locally
  - With Docker
  - From source
- How it works
- Features
- Deep linking
- Browser support
- Node.js support
- Security
- Contributing
- Licencing

 Official website

[CyberChef's official website can be found here][1] - have fun!

 Running Locally

You can run CyberChef with Docker (no toolchain required) or build it from source with Node.js.

 With Docker

Prerequisites

- Docker
  - Docker Desktop must be open and running on your machine


 Option 1: Build the Docker Image Yourself

1. Build the docker image
bash
docker build --tag cyberchef --ulimit nofile=10000 .

2. Run the docker container
bash
docker run -it -p 8080:8080 cyberchef

3. Navigate to http://localhost:8080 in your browser

 Option 2: Use the pre-built Docker Image

If you prefer to skip the build process, you can use the pre-built image

bash
docker run -it -p 8080:8080 ghcr.io/gchq/cyberchef:latest


Just like before, navigate to http://localhost:8080 in your browser.

This image is built and published through our GitHub Workflows.

 From source

If you want to develop CyberChef or run it without Docker, you can build it directly with Node.js.

Prerequisites

- Node.js v24 (see Node.js support)


 [!NOTE] 

 You can use nvm to manage Node.js versions and use the current development version in this project to avoid conflicts with other projects on your machine.

Setup

bash
git clone https://github.com/gchq/CyberChef.git
cd CyberChef
npm install


Common tasks

| Command | Description |
| --- | --- |
| npm start | Run the development server with live reload at http://localhost:8080. |
| npm run build | Produce a production build in the build/prod directory. |
| npm test | Run the Node.js and operation test suites. |
| npm run testui | Run the browser (UI) tests. |
| npm run lint | Check the code against the linting rules. |
| npm run newop | Scaffold a new operation via the interactive quickstart script. |

If you hit an out-of-memory error while building large recipes, increase Node's heap size with npm run setheapsize.

 How it works

There are four main areas in CyberChef:

 1. The input box in the top right, where you can paste, type or drag the text or file you want to operate on.
 2. The output box in 

Top issues

Discussions

Latest release

v11.5.0 v11.5.0 2026-09-18
See the CHANGELOG and commit messages for details.

Snapshot: 2026-11-10T09:35:25Z · Data license Apache-2.0 · JSON