一个小巧而美观的电子邮件客户端。
Pebble
A local-first desktop email client for people who want a calmer, more private inbox.
简体中文 · Releases · License
Pebble is a desktop mail client built with Rust, Tauri, and React. It keeps mail data, the search index, attachments, rules, and application settings on your device by default.
The app is designed around a few practical ideas:
Pebble currently supports Gmail, IMAP, POP3, and experimental Outlook accounts.
.vcf) import and export for moving contacts between Pebble and other address books. Re-imports merge by normalized email; existing non-empty local names and notes take precedence over imported values.T to translate selection, Ctrl+Shift+T to toggle bilingual view).mailto: protocol handler for composing mail from external apps.Inbox
Kanban
Dark Mode
Settings
| Layer | Technology |
|---|---|
| Desktop shell | Tauri 2 |
| Backend | Rust |
| Frontend | React 19, TypeScript |
| State | Zustand, TanStack Query |
| Database | SQLite via rusqlite |
| Search | Tantivy |
| Styling | Tailwind CSS and app CSS |
| Localization | i18next |
Download prebuilt desktop packages from the Releases page.
On Arch Linux, Pebble is available from the AUR as pebble-bin:
yay -S pebble-bin
# or
paru -S pebble-bin
By default, Pebble stores the database, search index, attachments, logs, imported backgrounds, and local interface preferences under the system app data directory.
You can opt into a custom or portable profile directory before Pebble starts:
PEBBLE_PROFILE_DIR to an absolute path.pebble-profile.txt next to pebble.exe; the first line can be an absolute path or a path relative to the executable directory.pebble-profile directory next to pebble.exe to store Pebble data beside the app.The selected directory is used on the next app launch.
git clone https://github.com/QingJ01/Pebble.git
cd Pebble
pnpm install
cp .env.example .env
pnpm dev
The development command starts the Vite frontend and the Tauri desktop app.
pnpm build
pnpm build:windows
pnpm build:macos
pnpm build:linux
Desktop bundles are written under target/release/ and target/release/bundle/.
On Linux, install the Tauri system dependencies first; pnpm build:linux produces AppImage, deb, and rpm packages under target/release/bundle/.
macOS bundles are unsigned unless you provide your own signing setup.
After copying an unsigned macOS build to /Applications, run the following command before opening it:
sudo xattr -cr /Applications/Pebble.app
Pebble can connect to Gmail and Outlook through OAuth. IMAP accounts use the IMAP/SMTP credentials configured in the app.
Copy .env.example to .env, then fill the provider values you need.
| Variable | Description |
|---|---|
GOOGLE_CLIENT_ID |
Google OAuth client ID. Use a Desktop app client when possible. |
GOOGLE_CLIENT_SECRET |
Optional for PKCE flows. Add it if Google rejects token exchange with client_secret is missing. |
MICROSOFT_CLIENT_ID |
Microsoft public/native app client ID. |
MICROSOFT_CLIENT_SECRET |
Optional. Leave empty for public/native Microsoft apps. |
| Command | Purpose |
|---|---|
pnpm dev |
Run the Tauri desktop app in development mode. |
pnpm dev:frontend |
Run only the Vite frontend dev server. |
pnpm test |
Run frontend tests with Vitest. |
pnpm build:frontend |
Type-check and build the frontend. |
pnpm build |
Build the desktop app for the current platform. |
pnpm build:windows |
Build the Windows NSIS installer. |
pnpm build:macos |
Build unsigned macOS .app and .dmg bundles. |
pnpm build:linux |
Build Linux .AppImage, .deb, and .rpm packages. |
cargo test -p pebble-mail |
Run the mail crate tests. |
cargo check |
Check the Rust workspace. |
…
| Shortcut | Action |
|---|---|
J / K |
Move through messages |
Enter |
Open the selected message |
E |
Archive |
S |
Toggle star |
R |
Reply |
A |
Reply all |
F |
Forward |
C |
Compose |
/ |
Focus search |
T |
Translate selected text |
Ctrl+Shift+T |
Toggle bilingual view |
Esc |
Close, cancel, or go back |
Shortcuts can be reviewed and customized in Settings.
Looking for a self-hosted web version? Pebble Web provides the same features as the desktop app, accessible from any browser via Docker.
curl -fsSL https://raw.githubusercontent.com/QingJ01/Pebble-Web/main/docker-compose.yml -o docker-compose.yml && docker compose up -d
Pebble Web shares the same Rust core crates and React frontend. Deploy it on your own server and access your email anywhere.
Pebble is under active development. It is usable for day-to-day testing, but mail clients handle sensitive data and provider behavior varies. Keep backups of important mail, and verify account actions against your provider when testing new builds.
Issues and pull requests are welcome.
For code changes, please keep patches focused and include tests for behavior changes when practical. Before submitting, run the relevant checks:
pnpm test
pnpm build:frontend
cargo check
Pebble is licensed under the GNU Affero General Public License v3.0.
Built by QingJ.
Friend link: LINUX DO
暂无开放 Issues,或尚未同步最近议题。