Skip to content

Repository files navigation

WorkBuddy Tools

English | 简体中文

Version Tauri Rust React

WorkBuddy Tools is a Windows desktop companion for managing WorkBuddy model providers, local sessions, and encrypted WebDAV backups. It provides a safer UI for operations that would otherwise require editing JSON files or the WorkBuddy SQLite database by hand.

This is an independent companion application. It does not replace WorkBuddy.

Screenshots

Model and provider management

Model management Provider management

Session management

Session management

WebDAV sync

WebDAV sync

Features

Models and providers

  • Read models configured in %USERPROFILE%\.workbuddy\models.json.
  • Add, update, and remove third-party OpenAI-compatible models.
  • Store provider names, API endpoints, and API keys separately in model-providers.json.
  • Fetch available models from a provider's /v1/models endpoint.
  • Infer tool calling, image input, reasoning, custom protocol, and reasoning-effort capabilities.
  • Fill token limits and capabilities from provider metadata, the built-in database, or the models.dev public catalog.
  • Sync the bundled catalog from Cherry Studio's provider registry with npm run sync:model-database.
  • Back up models.json before changing it.

Sessions

  • Read active sessions directly from the sessions table in %USERPROFILE%\.workbuddy\workbuddy.db.
  • Search sessions by title or working directory.
  • Display the model recorded in sessions.model.
  • Edit a session name (custom_title) and working directory (cwd).
  • Move inactive sessions to the WorkBuddy recycle bin.
  • Protect running sessions from editing or deletion.

WebDAV sync

  • Sync WorkBuddy sessions, referenced blobs, artifact indexes, user memory Markdown, portable personalization fields, models, and provider settings as one ZIP package.
  • Choose smart merge, remote overwrite, or local overwrite.
  • Optionally encrypt the package with a dedicated sync passphrase.
  • Create a local backup before a remote overwrite.
  • Keep local model and provider configuration unchanged during smart merge.
  • Repair workspace paths when devices use different default workspace roots.
  • Show staged progress and an animated sync action while WebDAV work is running.

During session sync, the remote and local defaultWorkspacePath values are compared. The local value is read from:

%USERPROFILE%\.workbuddy\app\app-config.json

If the roots differ, imported values in sessions.cwd and workspaces.path are rewritten to use the local root. For example:

D:\OneDrive\WorkBuddy\WorkSpace\project-a
->
E:\OneDrive\WorkBuddy\WorkSpace\project-a

The full app-config.json is not uploaded. The package contains only disableAgentTeams, personalization, and the default workspace path metadata required for path repair.

Synced Data

Data Included Notes
Session metadata Yes Exported from workbuddy.db; the database file itself is not uploaded
Project conversations Yes %USERPROFILE%\.workbuddy\projects\**\*.jsonl
Referenced session blobs Yes Content-addressed files referenced by synchronized conversations
Artifact indexes Yes Merged by session and stable artifact identity
User memory and identity Yes Root identity Markdown plus memory/**/*.md; backup files are excluded
Portable personalization Selected fields disableAgentTeams and personalization only
Models Yes models.json
Provider settings Yes model-providers.json, which may contain API keys
Default workspace path Metadata only Used for path repair; the complete app-config.json is not uploaded
Runtime files No PID sidecars, caches, logs, SQLite WAL and SHM files are excluded

The remote package is named workbuddy-sync.zip.enc when encryption is enabled, or workbuddy-sync.zip when no passphrase is configured. An unencrypted package can expose conversations, user memory, attachments, personalization, model configuration, and API keys to the WebDAV server; encryption is strongly recommended.

Configuration Files

WorkBuddy data is read from %USERPROFILE%\.workbuddy:

%USERPROFILE%\.workbuddy\
├── app\app-config.json
├── projects\
├── model-providers.json
├── models.json
└── workbuddy.db

WorkBuddy Tools stores its own settings at:

%USERPROFILE%\.workbuddy\workbuddy-tools\settings.json

WebDAV credentials and the optional sync passphrase are currently stored as plain text in this local settings file. Protect it with appropriate Windows account and filesystem permissions.

Requirements

  • Windows
  • WorkBuddy with data in %USERPROFILE%\.workbuddy
  • Node.js and npm for development
  • Rust and Cargo for development
  • WebView2 Runtime
  • An OpenAI-compatible provider for custom model management

Providers should support at least:

GET /v1/models
POST /v1/chat/completions

Development

Install dependencies and start the Tauri application:

npm install
npm run tauri dev

Useful checks:

npm run typecheck
npm run test:layout
npm run test:provider-workflow
npm run test:runtime
npm run test:theme
cargo test --manifest-path src-tauri/Cargo.toml --lib
npm run build

Build the release executable without an installer bundle:

npm run tauri build -- --no-bundle

Application Updates

The app checks GitHub Releases after startup, shows an update indicator in the header, and installs signed updates from “Application Settings → About & Updates”. Before publishing a v* tag, configure these GitHub Actions secrets:

  • TAURI_SIGNING_PRIVATE_KEY: the Tauri updater private key paired with the public key in src-tauri/tauri.conf.json.
  • TAURI_SIGNING_PRIVATE_KEY_PASSWORD: the private-key password; leave empty for an unencrypted key.

Keep the versions in package.json, src-tauri/Cargo.toml, src-tauri/tauri.conf.json, and VERSION synchronized before publishing. The release workflow generates signed updater artifacts and latest.json. Back up the private key securely: existing installations cannot verify updates signed with a replacement key.

Tech Stack

  • Tauri 2
  • Rust and SQLite
  • React 18 and TypeScript
  • Vite

Privacy

  • Provider API keys are stored locally in model-providers.json.
  • Synced provider settings may contain API keys.
  • Session sync packages contain conversation data.
  • Use a strong, separate sync passphrase and keep it available on every device that needs to decrypt the backup.
  • Model capabilities and token limits may be inferred; verify them against the provider's current documentation when exact limits matter.

About

简化WorkBuddy第三方模型配置

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages