01
Active aider processes, labeled by workspace
Aider installs from the Python package aider-chat and runs as aider. AgentPeek recognizes active interactive processes, uses their real working directory for project labeling, and opens the terminal that owns the run. Help, version, config display, model-list, update, upgrade, and shell-completion commands stay out of session discovery.
02
The latest run from Aider's rolling Markdown history
By default, Aider appends chat to the git root's .aider.chat.history.md. AgentPeek follows AIDER_CHAT_HISTORY_FILE and chat-history-file from AIDER_CONFIG or Aider's normal home, git-root, and current-directory config search. It reads the latest # aider chat started at ... section, user lines prefixed with ####, and assistant Markdown. Aider's rolling file has no durable session ID or exact per-message timestamps, so AgentPeek does not invent either.
03
Aggregate usage only when you already enabled the log
Aider can write JSONL with --analytics-log. If that path is already set by AIDER_ANALYTICS_LOG or config, AgentPeek sums exact message_send prompt, completion, total-token, per-message cost, model, and event-time fields into calendar-month and daily views. The log carries no cwd or session ID, so those numbers remain explicitly aggregate and are never attached to one chat. Its total_cost is cumulative inside a process and is not summed again. AgentPeek never creates the file or silently enables analytics.
04
Terminal-owned prompts, with no transport claims
Aider exposes no managed hook, native ACP session transport, or first-party MCP surface for AgentPeek to attach. A selected Aider session therefore has no Direct Chat, cancellation, or in-notch permission answers. Prompts and approvals stay in Aider's terminal; AgentPeek offers Open Terminal as the honest handoff.
05
Read-only Quick Routes
Quick Routes opens Aider's home config at ~/.aider.conf.yml and state directory at ~/.aider. Project chat and input histories stay project-scoped; AgentPeek resolves the active chat history from the process workspace instead of pretending it is a global file.
