A lightweight desktop hub for managing multiple web apps with isolated accounts.
Built with Tauri 2 + Rust + TypeScript.
Tentacle is designed to consolidate everyday web services into a single desktop app, with:
- multiple accounts per service
- isolated persistent sessions (separate login/cookie storage)
- clean and fast UI with minimal overhead
- Multi-account support per service (for example, multiple WhatsApp accounts)
- Embedded webviews with dedicated profile data per account
- Native notifications with per-service policy controls
- Per-account unread badges
- Encrypted configuration backup (export/import)
- Local download handling with configurable destination folder
- Persisted app UI state and window geometry
- Tray support and Dock reopen integration
- WhatsApp Web
- Telegram Web
- Discord
- Tauri 2
- Rust (core app, commands, storage)
- TypeScript + Vite (UI)
@tauri-apps/plugin-notification
- Node.js >= 18
- Rust toolchain (
cargo)
./run.shThe script:
- installs npm dependencies if needed
- generates app icon set from
branding/tentacle-icon.pngif missing - starts the app in development mode
./run.sh --buildnpm install
npm run tauri:dev
npm run tauri:buildRun the complete suite (frontend unit tests + build + Rust tests + Rust check):
npm run test:allRun only frontend unit tests:
npm run test:unitRun frontend unit tests with coverage report:
npm run test:unit:coverageCoverage policy (enforced):
- lines >= 90%
- statements >= 90%
- functions >= 90%
- branches >= 80%
Release builds are automated through .github/workflows/release.yml.
Trigger modes:
- push a tag like
v0.2.0(recommended) - manual run via
workflow_dispatchwith an existing tag
What the workflow does:
- builds platform bundles on Linux, Windows, and macOS
- collects all bundle artifacts
- creates/updates a GitHub Release with auto-generated release notes
- uploads downloadable assets to the Release
Prepare version files:
./scripts/release-tag.sh 0.2.0Then create and push the tag:
git add package.json src-tauri/tauri.conf.json
git commit -m "release: v0.2.0"
git tag v0.2.0
git push origin <your-branch> --tagsAfter tag push, GitHub Actions will publish the release artifacts automatically.
Expected release assets:
- Linux:
.AppImage,.deb - Windows:
.msi,.exe(NSIS installer) - macOS:
.dmg,.app.zip
Project icon source:
branding/tentacle-icon.png
Regenerate Tauri icon assets:
npx tauri icon branding/tentacle-icon.png.
├── src/ # TypeScript frontend
├── src-tauri/ # Rust core + Tauri config
├── branding/ # Branding assets (source icon)
├── run.sh # Run/build helper script
└── README.md
DEVELOPER_GUIDE.mdfor architecture, configuration, state model, and extension pointsCONTRIBUTIONS.mdfor contributor workflow and PR checklist
If you want to help, these are the next implementation steps:
- Improve onboarding and service discoverability
- Add more service presets (Gmail, Slack, Notion, etc.)
- Publish binaries via GitHub Releases
- Add functional validation tests on Windows and Linux
PRs and issues are welcome. For structural changes, please open a short discussion first so approach and scope are aligned.
MIT