Skip to content

Repository files navigation

Personal Agent

Personal Agent is a native desktop app for chatting with AI models from your menu bar or system tray. It keeps a compact chat panel one click away, lets you switch between model profiles, streams responses as they arrive, and stores API keys in your operating system credential store.

Personal Agent chat panel

What it does

  • Opens from the macOS menu bar, Windows system tray, or Linux StatusNotifierItem/AppIndicator area.
  • Chats with OpenAI, Anthropic, and OpenAI-compatible APIs.
  • Saves reusable model profiles so you can switch providers or models quickly.
  • Streams responses in real time and preserves conversation history.
  • Supports model thinking/reasoning output when the selected model exposes it.
  • Stores API keys securely in Keychain Services, Windows Credential Manager, or Secret Service.
  • Runs as a native Rust/GPUI app with a dark desktop UI.

Install

macOS with Homebrew

Personal Agent is published through the acoliver/homebrew-tap Homebrew tap:

brew tap acoliver/homebrew-tap
brew install personal-agent

Launch it after installation and look for the Personal Agent icon in your menu bar.

macOS from a release

Download the latest macOS artifact from GitHub Releases, extract it, and open the app.

Windows

Download the latest Windows ZIP from GitHub Releases, extract it, and run personal-agent.exe.

Windows Defender SmartScreen may warn about unsigned binaries. If you trust the release, choose More info and Run anyway.

Linux

Download the latest Linux package from GitHub Releases:

  • .deb for Debian/Ubuntu
  • .rpm for Fedora/RHEL
  • .zip for a portable archive

The .deb and .rpm packages install the binary, a .desktop file, and hicolor icons at standard freedesktop paths (/usr/share/icons/hicolor/*/apps/personal-agent.png).

The Linux tray uses the StatusNotifierItem (SNI) protocol via the ksni crate. KDE Plasma supports it out of the box — the tray icon appears in the bottom-right system tray area, and clicking it opens the chat popup just above the taskbar. GNOME users may need an AppIndicator/SNI extension.

To verify the tray is working on KDE:

scripts/verify_linux_tray.sh

This script checks SNI registration via D-Bus, triggers the popup, and verifies window positioning.

First run

  1. Open Personal Agent from the menu bar or tray.
  2. Click the gear icon to open settings.
  3. Add or edit a model profile.
  4. Choose a provider/model, enter your API key, and save the profile.
  5. Select the profile in the chat panel and send a message.

For a complete setup guide and user documentation for skills and MCP tools, see the docs index.

Where settings are stored

  • macOS: ~/Library/Application Support/PersonalAgent/
  • Windows: %LOCALAPPDATA%\PersonalAgent\
  • Linux: ${XDG_CONFIG_HOME:-~/.config}/PersonalAgent/ and ${XDG_DATA_HOME:-~/.local/share}/PersonalAgent/

API key values are stored in the OS credential store, not directly in profile JSON files.

Build from source

Install Rust, then run:

git clone https://github.com/acoliver/personal-agent.git
cd personal-agent
cargo build --release --bin personal_agent_gpui

The built binary is target/release/personal_agent_gpui on macOS/Linux and target\release\personal_agent_gpui.exe on Windows.

Development

cargo build --bin personal_agent_gpui
cargo fmt --all -- --check
cargo clippy --all-targets -- -D warnings
cargo test --lib --tests
cargo qa

The project uses a Rust-native xtask runner for cargo qa and cargo coverage.

License

MIT

Contributing

Contributions are welcome. Please open an issue or pull request on GitHub.

About

A personal agent for the dock on Mac.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages