Skip to content

OpenLoaf/ai-pocket-desktop

Repository files navigation

AI Pocket Desktop

AI Pocket Desktop is the sender application for the AI Pocket screen-capture & casting system. It captures your screen, encodes it to H.264, and streams it to AI Pocket receiver devices over the network.

Built with Tauri 2 (Rust backend) and React + Vite (frontend).

Tech stack

  • Tauri 2 — native shell, window management, and the Rust command surface
  • React 18 + Vite 5 — the desktop UI
  • TypeScript (strict) — frontend type safety
  • Rust 2024 (rust-version 1.85) — capture engine integration via the shared ai-pocket-core and ai-pocket-transport crates

Prerequisites

Development

pnpm install
pnpm tauri dev

pnpm tauri dev starts the Vite dev server on http://localhost:1420 and launches the native window with hot reload.

To run only the frontend in a browser (no native shell):

pnpm dev

Build

pnpm tauri build

This produces a platform-native installer/bundle under src-tauri/target/release/bundle/.

Icons required. Bundling needs the app icons in src-tauri/icons/ (32x32.png, 128x128.png, icon.icns, icon.ico, …). They are not committed yet — see src-tauri/icons/README.md. Generate them with pnpm tauri icon path/to/source.png before building.

Shared Rust crates: path vs. git-tag

The Rust backend depends on two shared crates, ai-pocket-core and ai-pocket-transport. There are two dependency modes:

  • Development (default): local path dependencies, so changes in the shared crates are picked up immediately without publishing.

    ai-pocket-core      = { path = "../../core/crates/core" }
    ai-pocket-transport = { path = "../../core/crates/transport" }
  • Release: switch to pinned git-tag dependencies for reproducible builds. Each path dependency in src-tauri/Cargo.toml has the locked form in a comment directly above it:

    ai-pocket-core      = { git = "https://github.com/OpenLoaf/ai-pocket-core", tag = "v0.1.0" }
    ai-pocket-transport = { git = "https://github.com/OpenLoaf/ai-pocket-core", tag = "v0.1.0" }

When cutting a release, comment out the path lines and uncomment the git-tag lines (and replace OpenLoaf with the real org).

Configuration

Runtime configuration is read from environment variables. Copy the example and fill in your own values — never commit real secrets:

cp .env.example .env

License

TODO — choose and add a license (e.g. MIT or Apache-2.0) before publishing.

About

AI Pocket desktop app (Tauri 2 + React)

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors