Skip to the content.

Development

Everything you need to build, run and release eve-online-tooling from source. For what the app is and how to install a prebuilt binary, see the README.

Built with Tauri 2 (Rust core) + React / TypeScript (Vite). Market and character data come from EVE’s ESI API; blueprint/material data from the SDE.

Getting started

1. Install prerequisites

2. Install dependencies

npm install

3. Run the app

npm run tauri dev      # launches the desktop app with hot reload

The first time you open the Production module it downloads the EVE SDE (a few hundred MB, Fuzzwork’s SQLite build) into your app data dir; that’s a one-off.

No audio / GStreamer element appsink not found on Linux? The WebView plays audio (the Scripts play_sound) through GStreamer. A snap terminal (e.g. Alacritty-as-snap) exports GST_PLUGIN_SYSTEM_PATH / GST_PLUGIN_SCANNER / LD_LIBRARY_PATH pointing at its own sandbox, which lacks those plugins. The app now strips those snap paths at startup so audio works regardless; if you still hit it (an unusual snap layout), launch from a non-snap terminal or run: env -u GST_PLUGIN_SYSTEM_PATH -u GST_PLUGIN_SCANNER -u GST_PLUGIN_PATH_1_0 -u LD_LIBRARY_PATH npm run tauri dev.

4. (Later) EVE SSO

Reading character assets/blueprints needs a developer application from developers.eveonline.com — a Client ID and the loopback callback http://localhost:8765/callback. Not required for the market/production calculations, which use public data.

Common commands

Command What it does
npm run tauri dev Run the desktop app (hot reload)
npm run tauri build Build distributable bundles
npm run build Type-check + build the frontend
npm run test Frontend unit tests (Vitest)
cd src-tauri && cargo test Rust unit tests

See CLAUDE.md for architecture and EVE domain notes, and the other docs for subsystems: plugins, scripts, MCP.

Implementation notes

Releasing

Installers are produced by the Release GitHub Actions workflow (.github/workflows/release.yml). To cut a release:

  1. Bump the version everywhere at once: scripts/bump-version.sh 0.25.0 (edits package.json, src-tauri/Cargo.toml, src-tauri/tauri.conf.json and regenerates both lockfiles). Review the diff.
  2. Commit, then tag and push: git commit -am "chore(release): v0.25.0" && git tag v0.25.0 && git push origin main --tags.

The workflow builds Windows installers on every tag; macOS (universal) and Linux join in on minor releases (vX.Y.0) or a manual run with all_platforms. It attaches the installers to the GitHub Release for that tag, then fills in the release notes with the changelog and the unsigned-build note (see SIGNING.md).

Status & tracking

Work is tracked as GitHub issues (afk = mergeable without a human, hitl = needs a human).