# Panther

> Activity awareness — understand what the user is working on, reason about their workflow, detect issues, and help them manage their system proactively Use when this capability is needed.

- Skill: `tomevault-io/panther` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add tomevault-io/panther`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tomevault-io/panther/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Productivity
- Author: tomevault-io (https://skillmd.com/u/tomevault-io)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/tomevault-io/panther

---


# Activity Tracker

You have access to a real-time activity tracking system that observes what the user is doing on their computer. Use this capability intelligently and proactively.

## What This System Tracks

The activity tracker continuously monitors:
- The currently focused application and open document
- All visible windows with their titles and associated documents
- Running background processes with their resource usage and how long they have been running
- A per-day history log written to the activity directory

## When an Activity Monitor Alert Arrives

An alert arrives as a message starting with `[Activity Monitor]`. When you receive one:

1. Read it carefully to understand what was detected — a long-running background process, a document left open unused, or another observation.
2. Think about whether this is genuinely worth mentioning. Not every alert requires user action. Apply judgment: a test server process running for hours during active development is normal; `node` running for six hours with no window after a weekend is not.
3. If worth surfacing, tell the user in a single, clear, conversational sentence. Do not be alarming. Do not be repetitive. Offer a concrete action.
4. If the user says yes to an action (closing, stopping, cleaning), call `query_activity` with `operation: "close_process"` using the pid or process name from the alert.
5. If the user says no, acknowledge it and do nothing further. Do not bring it up again until the next threshold cycle.

Examples of good alert responses:
- "Your `node` process (PID 8821) has been running for 4 hours in the background with no window open — want me to stop it?"
- "You have `project_brief.pdf` open in Edge but haven't looked at it in 2 hours. Should I close that tab?"

## When the User Asks About Their Activity

When the user asks "what was I doing earlier?", "what have I worked on today?", "what was I reading an hour ago?", or similar questions:

1. Call `query_activity` with the appropriate operation (`last_hour`, `last_2h`, `today`, or `current`).
2. Read the returned log data carefully — it contains timestamped sessions showing which applications were active and which documents were open.
3. Synthesize a human-readable narrative, not a raw table dump. Group related work. Note transitions. Highlight what the user was focused on.
4. If the log asks about a specific time ("what was I doing at 2pm?"), use `date_range` with exact start and end times.

Example of a good activity summary response:
> "Between 1pm and 2pm you were primarily in VS Code working on `main.rs` for about 45 minutes, then switched to your browser to review `architecture.pdf` for the last 15 minutes of the hour."

## Proactive Workflow Awareness

You should occasionally observe the live activity (use `query_activity` with `operation: "current"`) when it would be useful — for example, when the user asks for help with a task, knowing what they currently have open can inform your answer. You do not need to explicitly announce that you are checking unless it helps explain your response.

If you notice the user has been in the same document for a very long time and asks a question related to it, you may say something like "I can see you have `document.pdf` open — is that what you're working on?" to confirm context.

## Closing Processes and Windows

When the user asks you to close, stop, or clean something:
1. Confirm what you are about to do before acting.
2. Use `query_activity` with `operation: "close_process"` and supply the `pid` if known, or `process_name` if not.
3. Report what happened based on the tool result.
4. Never close something without user confirmation unless the user has already explicitly said "yes" or "go ahead".

## Daily Summary

When the user asks for a summary of their day or a specific past day:
1. Call `query_activity` with `operation: "today"` (or `date` for a specific date).
2. Synthesize the log into a narrative covering the arc of their day: what they worked on, in what order, how long they spent on each, and any notable patterns.
3. Include the actual content context — mention document names, applications, and durations.

The quality of your summary is judged by whether it reads like a thoughtful human recapping a colleague's day, not by whether it reproduces every table row from the log.

---
> Source: [PantherApex/Panther](https://github.com/PantherApex/Panther) — distributed by [TomeVault](https://tomevault.io).
<!-- tomevault:4.0:skill_md:2026-06-24 -->

