The record is free software. The practice around it is the product.
Everything that makes a run defensible (the guards, the trace, the ledger, the report and its signed releases, the console) is published under the AGPL and stays that way. What a lab pays for is a verified toolset and the images built for it, a dedicated host for each case, and our time.
The whole harness, for an examiner working on their own hardware. Free is not a trial: the licence guarantees that everything a run's defensibility depends on stays free software, for everyone, for good.
- The swarm: board, leases, critic, sentinel
- Each agent in its own microVM, on macOS with Apple silicon or Linux with KVM; host mode, unisolated, by choice where a machine cannot run one
- Every guard the host can enforce, recorded
- Tool work as jobs in throwaway worker VMs, sealed into a store with a hash-chained journal; a catalogue of the evidence that grows while the agents work
- The hash-chained trace, ledger and case file; the report as one self-contained HTML document, printable to PDF
- A ledger of findings, events, indicators, searches that found nothing, hypotheses and limitations, each naming what it rests on
- One register of what a case is asked: the goal's questions, the agents' and the questions analysts add while it runs, claimed or signed
- Answers with their result, and negatives held to a bar: a coverage record, the hub's count, a review by another seat
- Caps that pause the run for you, and resume: the same run continues after a stop or a signed release
- The case contract: a policy preset, requests to you by id, evidence added during the run, material with its provenance
- A network closed by default, and lookups decided by rules and fetched on the host when a run allows them
- A custody verdict with a status for every check, signed and timestamped when you ask, and
custody-verifyto check it again - The report's releases: a draft the machine seals at the stop, the release the examiner signs after reading it, and each amendment naming the one before
- Signing with an ssh key, a FIDO2 security key or a PKCS#11 e-signature token, from the console or the command line, with a technical reviewer's signed review first when the run requires one
- A package signed with your ssh key, redacted where entries are sensitive, and
verifyfor whoever receives it, which checks every signature - The live console and the terminal panes
- Mixed teams across providers and local models
- The agents' own tools, and a library that grows
- Twelve method & tool packs: 107 skills, 69 tools, 14 goal templates
- Forty-five investigations: a goal document per kind of case, each with its own checks
- The finish-line contract, and checks the agents cannot edit
For the practitioner and the small lab: a toolset we have checked, and images built for it.
- A verified, curated toolset: packs whose tools are checked and shipped by us
- Pro packs installed with
pack install, under a commercial licence - Private, digest-pinned prebuilt images for every pack, checked for you
- Paid support, arranged by contact
For the lab that keeps every case apart: everything in Pro, with each case on a host of its own in your lab.
- A dedicated host per case, in your lab, with nothing of any other case on it
- Air-gapped where the evidence demands it, with the case file as the only thing that leaves
A swarm that starts the case already knowing how the work is done.
The swarm writes the tools it lacks and keeps them; a pack is that library, curated in advance. Each pack has four parts: skills, the method written for the agents the way a senior examiner would brief a junior one; tools, written, typed and tested against the artefacts they parse; a host check that names the binaries the case needs, from which the job images are built; and goal templates with finish lines and report sections for that kind of case. Several packs also ship catalogue recipes, which the job service runs over the evidence and over what the jobs produce.
Twelve packs ship in the repository, under the same licence as the harness, and every one of them is in the free edition. A hundred and seven skills, sixty-nine tools and fourteen goal templates, each pack sealed and checksummed, each one verified before a run starts. Every tool keeps its whole result: where a result is long, the agent reads a page of it and the rest is kept in a named file.
The method that is true whatever the evidence came from: read the container and find the volume, prove the evidence is unchanged, read the catalog before spending a token, extract and carve, tell an encrypted volume from an unreadable one, keep a timeline, cite every claim. Every other pack depends on it.
11 skills, 13 toolsItstimestamp_decode reads a bare number under every epoch in forensic use, because a guess there is wrong by decades or by a factor of a thousand.Ten artefact families: $MFT and the journals, the hives, execution evidence, the event logs and the records inside a cleared one, accounts and remote access, persistence, shell artefacts, browsers, shadow copies, memory, and what anti-forensics leaves behind.
24 skills, 20 tools, 3 goal templatesMuch of this shelf the swarm wrote for itself: the event-log query, the prefetch decompressor, the journal walker, each written in the middle of a case because the host had none.The system profile and its timezone, auth.log and the systemd journal, accounts and the keys that need no account, persistence across all six cron locations and systemd timers, ext4's own creation time, containers, and the package database that says which binary was replaced.
10 skills, 6 tools, 2 goal templatesauth_log follows the rotated and gzipped files in order and works out the year syslog never records, saying per file which year it applied.Property lists in all three encodings, the unified log that replaced the text logs, FSEvents, the KnowledgeC activity database, launch items and the permissions TCC records, and what APFS snapshots keep that a deleted file does not.
8 skills, 4 tools, 1 goal templateplist_read removes the commonest wasted hour on the platform: most system plists are binary, and a grep over one finds nothing while the value sits in plain sight.What kind of extraction you were handed and what it therefore cannot contain, the iOS backup manifest that turns hash-named files back into a file system, Android packages and their installers, app databases and their write-ahead logs, location with its accuracy, and protobuf without a schema.
7 skills, 3 tools, 1 goal templatesqlite_freespace walks the per-page freeblock chain, which is where a deleted message's bytes actually sit.What the container is before anything is run against it, what a memory image gives you with no framework at all, processes and injected code, network state including the connections that had already closed, credential exposure, and how a capture is made.
9 skills, 3 tools, 1 goal templateIts one wrapper drives MemProcFS, which is AGPL-3.0 like the harness; Volatility is called as a program under its own licence, and the pack says why in writing.What a capture can and cannot contain, session reconstruction, what survives encryption in DNS and the TLS handshake, finding something that calls home, exfiltration by volume, and tying any of it back to a machine.
8 skills, 6 tools, 1 goal templateThe capture parser is written in the pack, so a host with no Wireshark still answers the first four questions about a pcap.Static triage under quarantine: what a file is from its bytes rather than its name, where it is packed, PE, ELF and Mach-O structure, the strings a sample hides from a plain search, capability mapping, documents and the references that fetch on open, and writing a rule that survives a recompile.
7 skills, 4 tools, 1 goal templateThe method never executes a sample, and the harness mounts every extraction directory no-exec in every agent's microVM, and denies execution there in host mode.Which scheme this is, from the header: BitLocker and every key protector on it, LUKS key slots read with no key at all, FileVault, the container that leaves no signature on purpose, password-protected archives, and where the key already is.
5 skills, 3 tools, 1 goal templateThe BitLocker unlocker was written by an agent that needed it, on a case the host could not open. The pack keeps what it learned.Logs that belong to somebody else's computer: what each provider keeps and for how long, the Microsoft 365 unified audit log, Entra sign-ins, AWS CloudTrail, Google Workspace, and the tokens and consents that survive a password reset.
6 skills, 3 tools, 1 goal templatesignin_analyse computes the implied travel speed rather than asserting impossible travel, so the claim is measurable.The order the case has to be worked in: scope, then what left before anything was encrypted, then entry and spread, then the encryptor. What was destroyed deliberately, what can actually be recovered, and the report a regulator, an insurer and a negotiator each need.
7 skills, 2 tools, 1 goal templateencrypted_survey measures what was actually encrypted, and finds the bytes every encrypted file ends with, which identifies a family better than an extension an affiliate can change.The shape most cases arrive in. Which collector made this, what its own log says failed, the paths it rewrote and how to map them back, what a logical acquisition can never contain, and what to ask for when the collection has not happened yet.
5 skills, 2 tools, 1 goal templateIt flags a tree whose files all share one modification date, because an intermediate copy dropped the originals and every timestamp conclusion would be about the copy.A verified toolset.
Pro packs carry tools we have checked against the artefacts they parse and ship ourselves, installed with scripts/pack.sh install beside the free ones, under a commercial licence. Each comes with a private, digest-pinned image that holds the programs it calls. The format is published, so a lab can still write its own packs without asking anyone.
What each edition gives you.
Community is free and runs today. Pro and Enterprise are provided through direct contact.
| Capability | Communityfree · available nowYour own machine, the whole harness, the AGPL. |
Proby contactA verified toolset, and images built for it. |
Enterpriseby contactEverything in Pro, with a dedicated host per case in your lab. |
|---|---|---|---|
| Where it runsisolation | A microVM per agent on your own machine, on macOS with Apple silicon or Linux with KVM. Where a machine cannot run one, host mode by choice, unisolated: seatbelt profiles on macOS; Landlock, mount and network namespaces on Linux. | The same microVM per agent on your own machine, booted from private, digest-pinned images prebuilt for every pack. | The same, with each case on a dedicated host in your lab; air-gapped on request. |
| Egress guardnetwork | In a microVM, the host's network policy for that VM, and keys that enter it only as placeholders. In host mode, fail-closed on Linux and advisory on macOS, and the report says so. | The same as Community. | The same, and on an air-gapped host no egress at all. |
| Evidencecustody | A read-only share in every agent's microVM, or a read-only copy; hashed before, held to the imager's acquisition hashes, and re-hashed on the host after. The verdict gives every check a status, seals every chain it read, is anchored outside the run, can be signed and timestamped, and is checked again with custody-verify. | The same as Community. | The same, on the case's own host in your lab. |
| Modelsthe team | Any provider, any private endpoint, any local model, mixed in one team. | The same as Community. | The same; on an air-gapped host, a local-only team. |
| Toolsthe library | Agents write their own tools, and the library grows with every case you work. Twelve method & tool packs ship with it: 107 skills and 69 parsers across Windows, Linux, macOS, mobile, memory, network, reverse engineering, encrypted containers, cloud, ransomware and triage collections. | A verified, curated toolset: Pro packs whose tools are checked and shipped by us, installed with pack install under a commercial licence, with the programs they call already in the prebuilt images. | The same as Pro. |
| After a stopcase continuity | The same run goes on after a stop or a signed release: resume with new questions, in the same sandbox on the same chains, each earlier seal and signed release still valid for what it bound. Evidence acquired later joins a running case as a sealed inventory revision. A second opinion is a new run with the first one's findings kept unreadable. | The same as Community. | The same, on the case's own host. |
| Questionswhat a case is asked | The goal's questions, the agents' and those analysts add while it runs, in one register with who asked each and how, claimed or signed. Each answer carries its result, and a negative says where it looked and is reviewed by another seat before the run may finish. | The same as Community. | The same as Community. |
| What it may ask outsideintelligence | The providers the team needs, plus any host the case adds, and nothing else. A key aimed at the wrong host is stopped and logged; in host mode every refused connection is logged too. In a dynamic microVM run an agent may ask for one lookup from a reference service, decided by rules under the case policy (standard, live_adversary, internal or ctf) and fetched on the host. | The same as Community. | The same; on an air-gapped host, nothing. |
| Signingthe report's release | The examiner adopts each answer and signs the release with an ssh key, a FIDO2 security key, or the certificate on a PKCS#11 e-signature token (CAdES-BES, verified against the issuer's CA chain), from the console or the command line. A technical reviewer signs their own review first when the run requires one, and verify checks every signature against the organisation's register or the CA. | The same as Community. | The same as Community. |
| The recordwhat you hand over | Full, on your disk: board, ledger, chained trace, report, the jobs' sealed outputs and their journal, case file with hashes, the examiner's review, every release of the report as it was sealed and signed, the operator's record, and a signature over the package when you sign it. A redacted package leaves out what a sensitive entry says, and every chain in it still verifies. | The same as Community. | The same as Community, kept on the case's own host. |
| Supportwho answers | The documentation, the published case records, and GitHub issues. | Paid support from the maintainer, arranged by contact. | The same as Pro. |
| Licenceterms | GNU AGPL v3 or later. Free to run, study, change and share. | The Pro packs under a commercial licence; the harness stays AGPL. | The same as Pro. |
Someone alongside the tool, when your lab wants one.
The Community edition is free and stays free, and nothing a run's defensibility depends on is held back. What is paid here is time: getting it into your lab, shaping the method around it, and standing behind a run that has to survive review. The work is done remotely, with labs anywhere.
A working deployment on your own hosts, the guards your platform can actually enforce, and a first case run with your examiners watching. For a team that wants to adopt it without reading the repository first.
Writing the goal documents your casework needs, building the checks a finish line has to carry, and reading a completed run before it goes to a client or a court. The questions a reviewer will ask, asked first.
Your evidence, your questions, and the swarm run beside your own examiners. You keep the whole record: the board, the ledger, the trace and the report, with the hashes that let anyone replay it.
The AGPL asks nothing of you for running the software, on your own machines, for clients, whatever you charge. What you sell is the investigation.
Offering a modified version as a service to others without publishing your changes, shipping it inside a closed product, or a policy that forbids AGPL software.
Fork the code freely; give the fork its own name. "DFIR Swarm" says which build produced a result, and in a forensic report that matters.
The questions the licence answers.
Is the Community edition really free, and will it stay free?
Are the method packs free too?
Can a case stay open for more questions in the free edition?
Is signing a report part of the free edition?
Can I run it on paid client engagements?
Can I get paid support, or hire you to work with us?
When do I need the commercial licence?
How do I get Pro or Enterprise?
Can I fork it?
Tell us what you are investigating.
A case you want to run, a host it has to hold on, a pack your lab needs, support for a lab already running it, an edition you want to shape. Messages go straight to the maintainer.
halil@halilozturkci.com · github.com/halilozturkci/dfirswarm