worthweave 0.1.1

Private local-first investment portfolio
docs.rs failed to build worthweave-0.1.1
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.

Worthweave brings investments held across Trading 212, Interactive Brokers, and Robinhood into one coherent macOS application. It reconstructs holdings from broker history, keeps every provider and account type separate, and reports portfolio value, performance, income, and allocation in a configurable reporting currency.

Planned reporting and analysis features are documented in the product roadmap.

Financial results come from deterministic Rust code using exact decimal representations. The optional local AI can explain those verified results, but it cannot create transactions, change the ledger, or substitute speculation for missing data.

Preview

The screenshots below use Worthweave's isolated showcase profile and entirely fictional portfolio data.

Overview

Worthweave overview showing a consolidated fictional portfolio

Portfolio

Worthweave portfolio showing fictional holdings, performance history, and return attribution

Highlights

  • A consolidated view across Trading 212, Interactive Brokers, and Robinhood accounts.
  • Account-aware CSV imports for Trading 212 and Interactive Brokers.
  • Region-aware Robinhood UK and US account tracking, with imports enabled as export schemas are validated.
  • Separate histories for each provider, account, and tax wrapper—including general investment accounts, Stocks and Shares ISAs, and supported US brokerage and retirement accounts.
  • Exact quantities, cost basis, average cost, value, and gain/loss calculations.
  • Allocation by broker, account, asset class, sector, geography, and source currency.
  • Transaction, dividend, interest, and valuation-snapshot history.
  • True total-return attribution across realised and unrealised gains, dividends, interest, fees, and taxes, with explicit data-completeness diagnostics.
  • Position comparison against the latest broker-reported holdings.
  • Configurable reporting currency without rewriting source transactions.
  • Human-readable JSON export plus encrypted, versioned backup and restore.
  • Optional device-tuned local AI through Rapid-MLX or Ollama.
  • Signed in-app updates with a clear install-and-restart prompt.
  • Native Apple Silicon macOS application with no Python runtime or web server.

First run

Onboarding keeps setup short and reversible:

  1. Choose the reporting currency used for consolidated totals and performance.
  2. Select providers and account types to track so every account and tax wrapper remains separate.
  3. Accept or skip the local AI recommendation generated for the Mac's hardware.
  4. Import broker CSV exports; Worthweave checks file hashes and transaction identifiers to prevent duplicates.

Prices and investment categories are configured after import, when Worthweave knows which holdings require them. Worthweave refreshes official ECB reference exchange rates automatically and keeps manual rates available as overrides. All preferences can be revisited in Settings.

Privacy and financial integrity

  • Portfolio data is stored in a local SQLite database with owner-only filesystem permissions.
  • Broker CSV files are parsed locally and broker credentials are not required.
  • Imported source records are immutable.
  • Missing history, prices, or exchange rates produce explicit partial or unavailable states rather than estimates.
  • Local AI requests are restricted to loopback services and grounded in application-calculated analytics.
  • Backups are encrypted with a user-supplied password that Worthweave never stores.

Worthweave is portfolio-analysis software, not financial advice. Local AI explanations must not be treated as price predictions or recommendations to trade.

Technology

  • Tauri 2 and Rust for the native application, broker adapters, calculations, and SQLite storage.
  • React, TypeScript, TanStack Query, and Zod for the interface and native-command boundary.
  • Tailwind CSS design tokens with purpose-built component styling.
  • Locally bundled Manrope Variable and Inter Variable WOFF2 fonts; no remote font requests.
  • Rapid-MLX or Ollama for optional local model inference.

The repository pins its Rust toolchain and JavaScript dependencies for reproducible builds.

Development

Requirements:

  • macOS 13 or later.
  • Node.js 22 or later.
  • pnpm 11.13.0.
  • Rust 1.97.0, installed automatically from rust-toolchain.toml when using rustup.

Install dependencies and start the native development application:

pnpm --dir frontend install --frozen-lockfile
frontend/node_modules/.bin/tauri dev

Private broker exports belong in .dev/. That directory is excluded from source control.

Validation

cargo fmt --manifest-path src-tauri/Cargo.toml --check
cargo test --manifest-path src-tauri/Cargo.toml --locked
cargo clippy --manifest-path src-tauri/Cargo.toml --all-targets --all-features --locked -- -D warnings
pnpm --dir frontend test
pnpm --dir frontend lint
pnpm --dir frontend build
pnpm --dir frontend test:e2e

The end-to-end suite exercises first-run onboarding, navigation, imports, settings, portfolio reporting, and automated accessibility checks.

macOS builds and releases

Create local .app and .dmg bundles with:

frontend/node_modules/.bin/tauri build

Pushing a changelog-backed vMAJOR.MINOR.PATCH tag runs .github/workflows/macos-release.yml. It imports the Developer ID certificate into an ephemeral keychain, runs the release gates, signs and notarises the application, verifies Gatekeeper and stapled tickets, publishes the matching Rust crate to crates.io, creates the GitHub Release from the matching changelog section, and publishes the DMG with its SHA-256 checksum. It also publishes a separately signed updater archive and manifest used by Worthweave’s in-app update prompt.

See the release process for required GitHub secrets and variables.

Documentation

Contributing

Issues and pull requests are welcome. Read CONTRIBUTING.md before starting, use synthetic financial fixtures only, and report vulnerabilities privately according to SECURITY.md.

License

Worthweave is licensed under the Apache License 2.0. It is permissive and includes an explicit patent grant from contributors. See the license for its preservation, attribution, and change-notice requirements.

Worthweave bundles Inter and Manrope under the SIL Open Font License 1.1. Their copyright notices and license terms are included in Third-party notices and in every packaged application bundle.