https://github.com/feed-mob/peekoo-ai
Peekoo, A little Peek, A lot of Help.
https://github.com/feed-mob/peekoo-ai
acp ai openclaw rust
Last synced: 4 months ago
JSON representation
Peekoo, A little Peek, A lot of Help.
- Host: GitHub
- URL: https://github.com/feed-mob/peekoo-ai
- Owner: feed-mob
- Created: 2026-02-24T06:59:34.000Z (6 months ago)
- Default Branch: master
- Last Pushed: 2026-04-21T03:56:30.000Z (4 months ago)
- Last Synced: 2026-04-21T05:34:29.281Z (4 months ago)
- Topics: acp, ai, openclaw, rust
- Language: Rust
- Homepage:
- Size: 49.9 MB
- Stars: 6
- Watchers: 0
- Forks: 0
- Open Issues: 17
-
Metadata Files:
- Readme: README.md
- Agents: AGENTS.md
Awesome Lists containing this project
README
# Peekoo AI
AI-powered desktop pet built with Tauri v2, React, and Rust. A small, transparent, always-on-top companion that lives on your desktop with chat, task management, and a pomodoro timer.

## Features
- **AI Chat** — Conversational AI with streaming responses, configurable LLM providers, and persona/skill loading
- **Task Management** — Create and track tasks from the desktop pet
- **Pomodoro Timer** — Focus sessions with start/pause/resume/finish controls
- **Animated Sprite** — Desktop pet character with mood-based animations and reactions
## Installation
Download the latest release from [GitHub Releases](https://github.com/feed-mob/peekoo-ai/releases).
### Linux
Install Peekoo from the AUR:
```bash
yay -S peekoo-bin
```
- AUR package: [peekoo-bin](https://aur.archlinux.org/packages/peekoo-bin)
### macOS
Download the latest `.dmg` from [GitHub Releases](https://github.com/feed-mob/peekoo-ai/releases), move `Peekoo.app` to `/Applications`, then remove the quarantine attribute:
```bash
xattr -cr /Applications/Peekoo.app
```
- Detailed macOS instructions: [`docs/en/installation/macos.md`](docs/en/installation/macos.md)
### Windows
Download the latest `x64-setup.exe` installer from [GitHub Releases](https://github.com/feed-mob/peekoo-ai/releases), then run it.
## Tech Stack
| Layer | Technology |
|-------|-----------|
| Desktop Shell | Tauri v2 |
| Frontend | React 18 + TypeScript 5 + Vite 5 |
| Styling | Tailwind CSS v4 |
| Backend | Rust (edition 2024, MSRV 1.85) |
| Agent Runtime | pi_agent_rust (v0.1.7) |
| Persistence | SQLite (embedded migrations) |
| Secrets | OS keychain (keyring) with filesystem fallback |
## Prerequisites
- [Rust](https://rustup.rs/) 1.85+
- [Bun](https://bun.sh/)
- [just](https://github.com/casey/just) (command runner)
- Tauri v2 system dependencies ([see Tauri docs](https://v2.tauri.app/start/prerequisites/))
## Getting Started
```bash
# Install all dependencies (frontend + Rust CLI tools like cargo-tauri)
just setup
# Run in development mode
just dev
```
## Commands
```bash
just setup # Install all dependencies (frontend + Rust tools)
just install # Install frontend dependencies only
just install-tools # Install required Rust CLI tools (cargo-tauri)
just dev # Run desktop app in dev mode
just build # Production build
just check # Check Rust code
just test # Run all tests
just fmt # Format Rust code
just lint # Lint with Clippy
just clean # Clean all build artifacts
just icon SOURCE # Generate app icons from source image
```
## Project Structure
```
peekoo-ai/
├── apps/
│ ├── desktop-ui/ # React + Vite frontend
│ └── desktop-tauri/ # Tauri desktop runtime
├── crates/
│ ├── peekoo-agent/ # Agent runtime (wraps pi_agent_rust)
│ ├── peekoo-agent-app/ # Application orchestration and settings
│ ├── peekoo-agent-auth/ # OAuth and provider auth
│ ├── peekoo-productivity-domain/ # Task and pomodoro domain models
│ ├── persistence-sqlite/ # SQLite migrations
│ ├── security/ # Secret storage (keyring, file, fallback)
│ └── peekoo-paths/ # Shared filesystem path helpers
└── docs/ # User-facing product and developer docs
```
### Architecture
```
desktop-ui -> desktop-tauri -> peekoo-agent-app -> peekoo-agent
(transport) (orchestration) peekoo-agent-auth
peekoo-productivity-domain
persistence-sqlite
security
peekoo-paths
```
`desktop-tauri` is a transport layer only. All business logic, persistence, and auth orchestration live in the Rust crates behind `peekoo-agent-app`.
## Plugin I18n Convention
For store-installed plugins, localization is now standardized:
1. Plugin ships locale files in `locales/*.json` (at least `en.json`).
2. Host loads `locales/.json`, falls back to `locales/en.json`.
3. If no locale file exists, manifest defaults are used.
Recommended references for plugin authors:
- [`docs/en/develop/plugins.md`](docs/en/develop/plugins.md)
- [`plugins/openclaw-sessions/`](plugins/openclaw-sessions) as a complete example (`locales/` + panel i18n usage)
## License
MIT