MCPcopy Index your code
hub / github.com/cisagov/thorium

github.com/cisagov/thorium @1.6.1

Chat with this repo
repository ↗ · DeepWiki ↗ · release 1.6.1 ↗ · + Follow
5,972 symbols 19,606 edges 692 files 2,457 documented · 41% updated 35d ago1.6.1 · 2026-03-05★ 1,00916 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README
    <img alt="Thorium"
     src="https://github.com/cisagov/thorium/raw/1.6.1/api/docs/src/static_resources/logo_dark.svg"
     width="50%">

Documentation | Install Documentation | Single Node Install Documentation

A scalable file analysis and data generation platform that allows users to easily orchestrate arbitrary docker/vm/shell tools at scale.

Features


  • Highly scalable analysis of arbitrary files/repos
  • Near zero-cost analysis tool integration
  • Easy tool import capability
  • Static and dynamic analysis sandboxes
  • User friendly interfaces: GUI + CLI
  • RESTful API for automated access to data
  • Multi-tenant friendly permission system
  • Full-text search of analysis results
  • Key/Value tags for labeling data

FAQ


What Does Thorium actually do?

Thorium allows for developers or analysts to: - Easily scale up and orchestrate docker or baremetal based tools - Easily search and use results from tools - Comment and share files, tags, and results between users/analysts

Are any tools included?

Yes, you can use thorctl toolbox to import over 40 images and 20 pipelines into your Thorium instance. Some examples of images you can import are: - binwalk - capa - clamav - cwe-checker - email-parser - floss - foremost - ssdeep - quantumstrand - xortool - zeek-dump

What do I need to deploy Thorium?

Thorium was built and intended to run in a K8s cluster but it can also run on a laptop using minikube. However it is important to note the single node deployment was not intended for production and reliability/stability may be less then stellar. To deploy a single node instance follow the Minithor docs here.

For full production deployment on a cluster you will need the following: - Block store provider - S3 storage

For on prem deployments we recommend CEPH. To deploy Thorium on a cluster follow the docs here.

How scalable is Thorium?

Thorium is almost infinitely scalable if you have the compute/storage. Thorium has been tested to support billions of samples and utilization of large amounts of compute. Thorium partitions data temporally and allows admins to configure how scalable they want the system to be.

Does Thorium call home or send any telemetry out?

No, Thorium does not send any telemetry out.

How large of files/repos does Thorium support?

Currently, Thorium supports up to ~50 GiB per file/repo. This is after compression and so it is a fuzzy limit but it should never be significantly smaller then 50 GiB. We do have plans to increase this limit in the future please create an issue if you feel this would be useful.

Can you add more documentation and examples of using Thorium and what it can do?

Yes, we plan to continue to expand our documentation and examples soon.

Funded by


    <img alt="Thorium"
     src="https://github.com/cisagov/thorium/raw/1.6.1/api/docs/src/static_resources/funders_dark.png"

Contact us at thorium@sandia.gov.

Extension points exported contracts — how you extend this code

Utils (Interface)
The shared functions across all traits [20 implementers]
thoradm/src/backup/utils.rs
DescribeSealed (Interface)
A private trait preventing inner [`DescribeCommand`] business logic from being called outside of the module [7 implementers]
thorctl/src/args/traits/describe.rs
GenericClient (Interface)
A helper trait that returns the necessary information to send/receive for a particular client [6 implementers]
api/src/client/traits.rs
EventCompactable (Interface)
An event that can be compacted [2 implementers]
search-streamer/src/events.rs
Scheduler (Interface)
(no doc) [3 implementers]
scaler/src/libs/schedulers.rs
Launcher (Interface)
(no doc) [3 implementers]
reactor/src/libs/launchers.rs
AgentExecutor (Interface)
(no doc) [2 implementers]
agent/src/libs/agents.rs
AssociationTreeProps (Interface)
(no doc)
ui/src/components/associations/tree.tsx

Core symbols most depended-on inside this repo

arg
called by 1112
api/src/models/reactions.rs
new
called by 985
scaler/src/libs/schedulers.rs
map
called by 894
api/src/models/backends/streams.rs
clone
called by 707
api/src/models/tags.rs
new
called by 528
thoradm/src/census.rs
cmd
called by 445
api/src/models/results.rs
clone
called by 404
thorctl/src/handlers/repos/ingest.rs
get
called by 288
api/src/conf.rs

Shape

Method 2,590
Function 2,298
Class 823
Enum 161
Interface 100

Languages

Rust87%
TypeScript11%
Python1%
C1%

Modules by API surface

api/src/models/images.rs208 symbols
api/src/conf.rs169 symbols
api/src/models/files.rs107 symbols
api/src/models/system.rs74 symbols
api/src/models/git/repos.rs68 symbols
api/src/models/groups.rs66 symbols
api/src/models/backends/db/cursors.rs66 symbols
api/src/models/results.rs60 symbols
api/src/models/network_policies.rs57 symbols
agent/src/libs/agents/cmd.rs55 symbols
api/src/models/backends/files.rs54 symbols
api/src/models/reactions.rs50 symbols

Datastores touched

quickwit-metastoreDatabase · 1 repos

For agents

$ claude mcp add thorium \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact