OpenTrace is a private-by-design, offline desktop workspace for organizing OSINT investigations. It provides a visual investigation board without accounts, cloud synchronization, telemetry, or mandatory online services.
OpenTrace is an organizational and analytical tool. Users are responsible for complying with applicable laws, platform terms, and ethical standards.
- Infinite visual board with text notes, images, pins, and directional relationships
- Editable relationship labels, colors, arrows, and branched connections
- Tasks, verification queue, sources, hypotheses, and an investigation journal
- OSINT properties, tags, classifications, source URLs, aliases, and SHA-256 integrity information
- Search across materials, journal entries, and UUID identifiers
- Global, user-managed OSINT tool library shared between investigations
- Automatic saving, undo/redo, layers, saved camera state, and board navigation
- Portable investigation folders with ZIP packaging and extraction
- PNG and structured JSON export
- Polish and English user interface
- Fully offline operation with no telemetry
- Python 3.12
- PySide6 6.11.1
py -3.12 -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install -e .[dev]
python -m appOn Linux, activate the environment with:
source .venv/bin/activateThe source code is designed to be cross-platform, but the downloadable 1.0.1 binary release currently targets Windows x64.
$env:QT_QPA_PLATFORM = "offscreen"
pytestThe GitHub Actions test workflow runs the suite on both Windows and Ubuntu.
python -m pip install -e .[dev]
pyinstaller --clean --noconfirm opentrace.specThe application is created in dist/OpenTrace/. The release workflow runs the
tests, builds this directory on a Windows runner, adds the licensing files,
creates a ZIP archive, calculates its SHA-256 checksum, and publishes both as
GitHub Release assets.
Caution
Create regular manual backups of your investigation folders. OpenTrace is under active development and may still contain bugs that could result in data loss or corruption. Do not keep the only copy of an important investigation in a single location.
An investigation is a regular portable directory. SQLite stores its metadata,
while imported images are copied into the investigation's media/ directory.
Paths stored in the database are relative.
The global OSINT tool library is stored in the user's application configuration directory and is intentionally independent of individual investigations.
On Windows, user-defined OSINT tools and categories are stored in:
%LOCALAPPDATA%\Local OSINT Tools\OpenTrace\osint_tools.json
The environment variable usually expands to a path similar to:
C:\Users\YourName\AppData\Local\Local OSINT Tools\OpenTrace\osint_tools.json
This file is global to the current Windows user and is not included when an
individual investigation is packed to ZIP. To create a manual backup, close
OpenTrace and copy osint_tools.json to a safe location. To restore the
library, close OpenTrace and replace the existing file with the backed-up copy.
The file is regular, unencrypted JSON. It is intended for tool names, links, descriptions, and categories—not passwords, API keys, or authentication tokens.
OpenTrace does not send telemetry and does not automatically query external services. URLs explicitly opened by the user are passed to the system's default web browser.
OpenTrace is released under the MIT License.
The standalone distribution includes Qt for Python components used under
LGPLv3. Third-party notices, complete license texts, corresponding-source
information, and relinking instructions are available in
THIRD_PARTY_LICENSES.md and the
licenses/ directory.
Created by Gacut with OpenAI Codex.