Open-source cyber threat intelligence platform for structuring, storing and visualizing threat knowledge and observables, built on the STIX2 standard.
cmu-sei/GHOSTS
A C#-based NPC framework that simulates realistic user activity on computers and networks for cyber training, exercises, and research.
- Stars
- 744
- Forks
- 102
- Open issues
- 3
- Last commit
- 4 days ago
What is it?
GHOSTS is an orchestration framework for non-player characters (NPCs) that behave like human users on computer systems. Each simulated user performs activity across applications, networks, and workflows, generating realistic network traffic and leaving behind artifacts that resemble real use. It is aimed at cyber training, exercises, research, and simulation environments where background user activity is needed.
The system is built around a central API server with a web management UI, a SignalR hub for always-connected clients, and several client types. The Windows client automates Office, browsers, SSH, and RDP across 27+ activity handlers, the Universal client runs on Windows, Linux, and macOS with 38+ handlers, and the Lite client generates network traffic without launching real applications. Supporting services include a persona generator for NPC names, careers, and social networks, a content server for web pages and documents, and PostgreSQL for storage.
Version 9 replaces the earlier UI with an Angular 20 frontend and adds an n8n workflow integration, a belief system for NPCs, and Grafana dashboards. Optional LLM integration is provided through a separate project, RangerAI.
Key features
- 01Simulates NPC user activity across desktop applications, browsers, and network services.
- 02Provides Windows, Universal (cross-platform), and Lite clients for different environments.
- 03Includes a web management UI built with Angular for machines, groups, timelines, and scenarios.
- 04Generates NPC personas with names, careers, and social networks.
- 05Integrates with n8n for scheduled workflows and with Grafana for activity dashboards.
- 06Runs as a Docker Compose stack with PostgreSQL and a REST API.
Use cases
- Populating cyber training environments with realistic user activity.
- Generating background noise during red team assessments.
- Creating network traffic for blue team detection and analysis practice.
- Building cognitive range environments with autonomous NPCs.
Quick start
- 1
Create a working folder
mkdir ghosts && cd ghosts - 2
Download the Docker Compose file
curl -O https://raw.githubusercontent.com/cmu-sei/GHOSTS/master/src/Ghosts.Api/docker-compose.yml - 3
Copy .env.example to .env and set POSTGRES_PASSWORD
- 4
Start the stack
docker compose up -d
Things to know
- The README says GHOSTS 9 is under active development, so expect changes in minor releases until 10.0.
- Running the full stack needs Docker and a PostgreSQL password set in .env.
- Each machine you want to simulate needs a separately installed client.
In collections
Topics
FAQ
- What is GHOSTS?
- A C#-based NPC framework that simulates realistic user activity on computers and networks for cyber training, exercises, and research. GHOSTS is an orchestration framework for non-player characters (NPCs) that behave like human users on computer systems. Each simulated user performs activity across applications, networks, and workflows, generating realistic network traffic and leaving behind artifacts that resemble real use. It is aimed at cyber training, exercises, research, and simulation environments where background user activity is needed.
- Is GHOSTS free to use? What license does it have?
- GHOSTS is open source under the Other license. Check the license terms before using it in commercial products.
- Is GHOSTS still maintained?
- Actively maintained. The last commit to GHOSTS was on Nov 3, 2026.
- What can I use GHOSTS for?
- Populating cyber training environments with realistic user activity. Generating background noise during red team assessments. Creating network traffic for blue team detection and analysis practice. Building cognitive range environments with autonomous NPCs.
- How do I install GHOSTS?
- Create a working folder: mkdir ghosts && cd ghosts Download the Docker Compose file: curl -O https://raw.githubusercontent.com/cmu-sei/GHOSTS/master/src/Ghosts.Api/docker-compose.yml Copy .env.example to .env and set POSTGRES_PASSWORD Start the stack: docker compose up -d
- Where can I get GHOSTS?
- The source code and installation instructions are on GitHub: https://github.com/cmu-sei/GHOSTS
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A collection of 70 hands-on cybersecurity projects, from beginner scripts to advanced tools, with certification roadmaps and learning resources.
A 2D mobile robot simulator in Python for prototyping robot behaviors, with an optional ROS 2 interface.
A research platform for studying how automated attacker and defender agents interact in simulated enterprise networks, with an OpenAI Gym interface.
A Python simulator for UAV swarm communication networks, covering routing, MAC, physical layer, mobility and energy models.
A command-line OSINT tool that searches for a username across 400+ social networks and reports where accounts exist.