MCPcopy Index your code
hub / github.com/Firstp1ck/Pacsea

github.com/Firstp1ck/Pacsea @v0.8.2

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.8.2 ↗ · + Follow
3,972 symbols 12,112 edges 426 files 2,875 documented · 72%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Pacsea

License: MIT Made with Rust Target: Arch Linux

x86_64 aarch64

Pacsea Health

Pacsea is a TUI application for browsing and installing Arch and AUR packages. It includes an integrated Arch news and advisory feed, keyboard-first navigation, and optional support for extra package repositories you configure yourself.

Community

✨ Idea or bug? Open an issue or check out Idea Discussions

❤️ Thank you to the Pacsea community for your ideas, reports, and support!

Supported Platforms

Supported Distributions Supported Languages
Arch Linux English
EndeavourOS German
CachyOS Hungarian
Manjaro
Artix
BlackArch

Main app view

Main app view (v0.7.4)

News feed view

Browse Arch news, security advisories, package updates, and AUR comments in a unified feed. Filter by source, search with history, bookmark important items, and track read/unread status. All content is cached for offline access and automatically updated in the background.

News feed view (v0.7.1)

Demo

Part 1 of a multipart walkthrough: Pacsea demo on YouTube

Table of Contents

Quick start

  • Install (stable):
paru -S pacsea-bin   # or: yay -S pacsea-bin
  • Install (latest):
paru -S pacsea-git   # or: yay -S pacsea-git
  • Install via Cargo:
cargo install pacsea
  • Run:
pacsea

A .desktop launcher and SVG icon ship under data/ for menus and packaging; the AUR packages install them for you.

Prefer a dry run first? Add --dry-run.

Features

Feature Description
Integrated Process Execution Operations execute within the TUI with real-time output streaming and progress bars. Supports configurable privilege escalation (sudo/doas/auto), passwordless mode when available, and optional interactive authentication handoff so sudo/doas can prompt in the terminal when needed (password or PAM/fingerprint via fprintd, when configured)
Privilege setup wizards Built-in setup flows for sudo timestamp caching and doas persist, including guided steps, validation checklists, and context-aware visibility based on your selected privilege tool
News feed & advisories Unified news feed combining Arch news, security advisories, package update notifications, and AUR package comments. Includes offline access with automatic caching, filtering by source or date, search with history, bookmarking, read/unread tracking, and background updates
Security Scan for AUR Packages Comprehensive security scanning workflow with multiple tools (ClamAV, Trivy, Semgrep, ShellCheck, VirusTotal, custom patterns, aur-sleuth) and detailed scan summaries
Fuzzy Search Toggle flexible fuzzy search mode to find packages even without exact names
Unified search Fast results across official packages, any extra repositories you configure, and the AUR.
Custom sync repositories (optional) Add optional package sources to the same search as the defaults and the AUR, and show or hide each source in the UI.
Package Update Availability Automatic background checks with detailed version comparison view
Keyboard‑first Minimal keystrokes, Vim‑friendly navigation; numpad Enter works for submit in prompts and modals
Layout & modals Reorder the main vertical stack (search, results, details) and set per-band height limits in settings.conf; mouse wheel moves the focused row in System Update, Repositories, and Optional Deps when the pointer is over the list
Queue & install Add packages to queue and confirm installs. Run security scans for AUR packages before installing
Always‑visible details Open package links with a click
PKGBUILD preview Toggle viewer; copy PKGBUILD with one click; each PKGBUILD fetch runs on its own so a slow host does not stall other rows
AUR Comments viewer View community comments for AUR packages with markdown support, clickable URLs, and automatic updates when navigating packages
AUR status markings Visual indicators for out-of-date [OOD] and orphaned [ORPHAN] packages
Persistent lists Recent searches and Install list are saved
Installed‑only mode Review and remove installed packages safely. Configure filter mode to show only leaf packages (default) or all explicitly installed packages
Package downgrade Downgrade installed packages to previous versions using the downgrade tool
Distro-aware updates Automatic detection and use of appropriate mirror tools for Manjaro, EndeavourOS, CachyOS, Artix, and standard Arch
Updates modal View available updates with Preflight integration for safe installation
Helpful tools System update dialog with Force Sync mode (-Syyu), AUR update confirmation when pacman fails, distro-aware mirror management, and Arch News popup
Long-run auth readiness checks Pacsea evaluates whether your current privilege/auth setup can complete long-running actions and shows a one-time warning with next steps before update/install/remove tasks start
AUR package voting (SSH) Vote and unvote AUR packages directly from search results through an SSH-based workflow, including guided setup and connection checks
Announcements Version-specific and remote announcements shown at startup with clickable URLs and persistent read status

Security-first approach for AUR Packages

  • Security-first approach for installing AUR Packages.
  • Security Coverage via automatic Scans and Optional Measures (e.g., converting AUR packages to Flatpak (in Planning)), and more

Scan configuration (v0.4.5)

Security scans for AUR

Pacsea adds a security‑first workflow for AUR installs. Before building you can run one or more checks — ClamAV (antivirus), Trivy (filesystem), Semgrep (static analysis), ShellCheck for PKGBUILD/.install, VirusTotal hash lookups, custom suspicious pattern scanning, and aur-sleuth (LLM audit). Scans generate a comprehensive summary showing infections, vulnerabilities by severity, Semgrep findings count, and VirusTotal statistics.

VirusTotal API Setup: Configure your VirusTotal API key directly from the Optional Deps modal. The modal blocks main UI interactions to prevent accidental clicks/keys. For detailed setup instructions, see the How to use Pacsea wiki page.

System update dialog

System update dialog (v0.4.1)

TUI Optional Deps

  • Install and verify recommended helper tools directly from a dedicated view with environment-aware defaults.
  • Desktop-aware preferences include GNOME Terminal on GNOME, Klipper on KDE, and support for multiple editors (nvim, vim, helix, emacs/emacsclient, nano).
  • The modal detects your:
  • environment (Wayland/X11, desktop environment, distro)
  • and shows relevant options.
  • Tools include editors, terminals, clipboard utilities (wl-clipboard for Wayland, xclip for X11),
  • mirror updaters (reflector, pacman-mirrors, eos-rankmirrors, cachyos-rate-mirrors),
  • AUR helpers (paru, yay), and
  • security utilities (ClamAV, Trivy, Semgrep, ShellCheck, VirusTotal API setup, aur-sleuth).
  • Quickly see what's installed and install missing packages directly from the modal.

TUI Optional Deps (v0.4.5)

Usage

Pacsea provides a keyboard-first interface for searching, queueing, and installing packages. For detailed usage instructions, keyboard shortcuts, and workflows, see the How to use Pacsea wiki page.

Quick overview: - Type to search packages across official repos and AUR - Queue packages for installation - Review packages before installing with the Preflight modal - Run security scans for AUR packages - Manage installed packages, including removal and downgrade - Switch to News mode (Options → News) or start directly in News mode to browse Arch news, security advisories, package updates, and AUR comments. Filter by source/age/installed-only, search with history (independent search inputs for each mode), bookmark/read items, and track package changes with automatic detection - Open Options → Repositories to review and apply your optional repository settings—Space turns lines on or off; after changes are applied, you might see a short prompt if something you already installed also shows up in a newly enabled source - All operations execute directly in the TUI with real-time output and progress indicators

For a complete reference of all keyboard shortcuts, see the Keyboard Shortcuts wiki page.

PKGBUILD preview

PKGBUILD preview (v0.4.1)

AUR Comments viewer

View community comments for AUR packages directly in Pacsea. Comments are automatically fetched and displayed with markdown formatting support, clickable URLs, and user profile links. The comments pane splits the Package Info area and updates automatically when navigating between packages. Toggle comments visibility with Ctrl+T or click the "Show comments" button in Package Info.

CLI Commands

Pacsea supports powerful command-line operations, allowing you to manage packages without launching the TUI. For a complete list of all CLI commands, options, and detailed usage instructions, see the CLI Commands section in the wiki.

You can also run pacsea --help to see all available commands and options.

Configuration

Pacsea uses configuration files in ~/.config/pacsea/: - settings.conf — app behavior (including main_pane_order and per-band vertical min/max for the main stack, layout percentages, defaults, visibility, scans, news, custom repo filter toggles, etc.) - theme.conf — colors and styling - keybinds.conf — keyboard shortcuts - repos.conf (optional) — third-party sync repo recipes for search, filters, and the Repositories modal; baseline template: config/repos.conf

Opening any of these from the app uses your VISUAL or EDITOR environment variable.

Privilege/auth behavior is configurable via privilege_tool (auto | sudo | doas) and auth_mode (prompt | passwordless_only | interactive) in settings.conf.

AUR voting over SSH is configurable in settings.conf with aur_vote_enabled, aur_vote_ssh_timeout_seconds, and aur_vote_ssh_command.

For complete configuration documentation, including all available settings, theme customization, and keybind configuration, see the Configuration wiki page.

Example configuration files are available in the config/ directory.

News mode supports multiple sources (Arch news, advisories, package updates, AUR comments) with smart caching and background processing. Configure via app_start_mode (package or news to start in News mode), news_filter_* toggles for each source type, news_filter_installed_only, and news_max_age_days (default: unlimited) in settings.conf.

Settings overview (v0.4.1)

Preflight Modal

By default, Pacsea shows a Preflight review modal before installs/removals. This allows you to inspect dependencies, files, config conflicts, and optionally run AUR security scans.

For Install actions: Review dependencies that will be installed, files that will be added, and optionally run security scans for AUR packages.

For Remove actions: Review reverse dependencies (packages

Extension points exported contracts — how you extend this code

HandlerConfig (Interface)
What: Configuration for a result handler that specifies how to access and update `AppState` fields for a specific result [4 …
src/app/runtime/handlers/common.rs
SshVoteTransport (Interface)
What: Abstraction over SSH subprocess execution for testability. Details: - `RealSshTransport` spawns the actual SSH pr [3 …
src/sources/aur_vote.rs
CommandRunner (Interface)
What: Abstract command execution interface used for spawning helper binaries such as `pacman`. Inputs: - `program`: Exe [3 …
src/logic/preflight/command.rs
ModalRenderer (Interface)
What: Trait for rendering modal variants and managing their state. Inputs: - `f`: Frame to render into - `app`: Mutable [1 …
src/ui/modals/renderer.rs
ModalTestHelper (Interface)
Helper trait for testing [1 implementers]
tests/file_sync/file_sync_integration.rs

Core symbols most depended-on inside this repo

push
called by 1267
src/state/types.rs
is_empty
called by 914
src/state/types.rs
len
called by 543
src/state/types.rs
t
called by 442
src/i18n/mod.rs
insert
called by 393
src/state/types.rs
theme
called by 155
src/theme/store.rs
clear
called by 127
src/state/types.rs
as_str
called by 121
src/state/types.rs

Shape

Function 3,520
Class 206
Method 186
Enum 55
Interface 5

Languages

Rust100%
Python1%

Modules by API surface

src/logic/privilege.rs92 symbols
src/ui/modals/renderer.rs57 symbols
src/events/modals/common.rs57 symbols
src/sources/aur_vote.rs49 symbols
src/state/types.rs45 symbols
src/logic/repos/apply_plan.rs41 symbols
src/ui/modals/announcement.rs36 symbols
src/events/modals/handlers.rs36 symbols
tests/passwordless_sudo/passwordless_sudo_integration.rs35 symbols
src/theme/config/settings_save.rs35 symbols
src/state/modal.rs35 symbols
src/ui/modals/preflight/tabs/summary.rs34 symbols

For agents

$ claude mcp add Pacsea \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact