Skip to content
Back to skills

Palest Ink

ASecurity

Track and recall your daily activities including git commits, web browsing, shell commands, and VS Code edits. Use this skill whenever the user asks about their recent activity, wants a daily report or summary, asks \"what did I do today/yesterday/this week\", wants to find a specific commit or webpage they visited, asks about browsing history, needs to recall any past work activity, or queries about specific content they viewed online. Also trigger when the user mentions palest-ink, activity...

  • 33 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 5, 2026
toolspythongoshellbashgit

Works with

  • vscode

Security analysis

A100/100

Pro scans all 19 files and shows the line behind each finding

Scanned September 5, 2026

npx -y skills add dvcrn/openclaw-skills-marketplace --skill palest-ink --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Palest Ink?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Palest Ink
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/dvcrn-palest-ink/badge)](https://www.skillsdirectory.com/skills/dvcrn-palest-ink)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: palest-ink
description: "Track and recall your daily activities including git commits, web browsing, shell commands, and VS Code edits. Use this skill whenever the user asks about their recent activity, wants a daily report or summary, asks \"what did I do today/yesterday/this week\", wants to find a specific commit or webpage they visited, asks about browsing history, needs to recall any past work activity, or queries about specific content they viewed online. Also trigger when the user mentions palest-ink, activity tracking, daily log, work journal, daily report, or activity summary. Trigger for questions like \"which website had info about X\", \"when did I commit the code for Y\", \"show my git activity\"."
---

# Palest Ink (淡墨) — Activity Tracker & Daily Reporter

> 好记性不如烂笔头 — The faintest ink is better than the strongest memory.

## Overview

Palest Ink tracks the user's daily activities automatically:
- **Git operations**: commits, pushes, pulls, branch switches
- **Web browsing**: Chrome & Safari history with page content summaries
- **Shell commands**: zsh/bash command history with execution duration
- **VS Code edits**: recently opened/edited files
- **App focus**: which application is in the foreground, with time duration
- **File changes**: files modified in watched directories

All data is stored locally at `~/.palest-ink/data/YYYY/MM/DD.jsonl`.

## Setup Check

Before answering any query, first check if Palest Ink is installed:

```bash
test -f ~/.palest-ink/config.json && echo "INSTALLED" || echo "NOT_INSTALLED"
```

If NOT installed, tell the user:
> Palest Ink is not yet set up. To install, run:
> ```bash
> bash <SKILL_PATH>/../../collectors/install.sh
> ```
> This will set up automatic tracking of git, browsing, and shell activity.

Then stop and wait for the user to install.

## Answering Queries

### Daily Report / "What did I do today?"

Run the report generator:

```bash
python3 <SKILL_PATH>/scripts/report.py --date today
```

For yesterday: `--date yesterday`
For a specific date: `--date 2026-03-03`
For the whole week: `--week`

Read the output and present it conversationally to the user. Highlight notable patterns
(focused work sessions, frequent topics, etc).

### Searching for Specific Activities

Use the query tool to search activity records:

```bash
python3 <SKILL_PATH>/scripts/query.py --date today --type git_commit --search "plugin"
```

**Common query patterns:**

| User asks about... | Arguments |
|---------------------|-----------|
| A git commit | `--type git_commit --search "keyword"` |
| A webpage about X | `--type web_visit --search-content "keyword"` |
| Shell commands | `--type shell_command --search "keyword"` |
| VS Code files | `--type vscode_edit --search "keyword"` |
| App focus / screen time | `--type app_focus --summary` |
| File changes in project | `--type file_change --search "project"` |
| Everything today | `--date today --summary` |
| Date range | `--from 2026-03-01 --to 2026-03-07` |

**Important:** When the user searches for web page content (e.g., "which website talked about homebrew"),
use `--search-content` instead of `--search`. This searches within page content summaries and keywords,
not just URLs and titles.

### Status Check

Show collector status and data statistics:

```bash
python3 <SKILL_PATH>/scripts/status.py
```

If the output contains "CLEANUP RECOMMENDED", proactively tell the user:
> "Your palest-ink data is approaching 2 GB. Would you like me to clean up older records?"

If the user agrees, first show a dry-run preview:

```bash
python3 ~/.palest-ink/bin/cleanup.py --dry-run
```

Present the preview (how many files, date range, records count, space to free).
Then ask for explicit confirmation before actually deleting:

```bash
python3 ~/.palest-ink/bin/cleanup.py --force
```

Options:
- `--max-size N` — threshold in GB (default: 2.0)
- `--keep-days N` — always keep the most recent N days (default: 30)
- `--dry-run` — preview only, no changes
- `--force` — skip the interactive prompt (use after user confirms in chat)

## Fallback: Direct File Reading

If scripts fail or for simple lookups, read the JSONL files directly:

1. Construct the file path: `~/.palest-ink/data/YYYY/MM/DD.jsonl`
2. Use Grep to search: `grep "keyword" ~/.palest-ink/data/2026/03/03.jsonl`
3. Each line is a JSON object with fields: `ts`, `type`, `source`, `data`

## Data Schema

### Activity Types

- `git_commit` — data: repo, branch, hash, message, files_changed, insertions, deletions
- `git_push` — data: repo, branch, remote, remote_url
- `git_pull` — data: repo, branch, is_squash
- `git_checkout` — data: repo, from_ref, to_branch
- `web_visit` — data: url, title, visit_duration_seconds, browser, content_summary, content_keywords
- `shell_command` — data: command, duration_seconds (null if not available)
- `vscode_edit` — data: file_path, workspace, language
- `app_focus` — data: app_name, window_title, duration_seconds
- `file_change` — data: path, workspace, language, event

### Web Visit Content

Web visits include a `content_summary` field (up to 800 chars of page text) and
`content_keywords` (extracted keywords). This enables content-based search.

Example: if user browsed a page about "Homebrew installation guide", the content_summary
will contain the actual page text, making it searchable even if the URL/title don't mention it.

## Tips for Good Answers

1. When showing git activity, include the commit message and changed files
2. When showing web visits, include both the title and a brief content summary
3. For "what did I do" questions, give a narrative summary, not just raw data
4. Group related activities together (e.g., "You worked on project X, making 5 commits...")
5. If the search returns too many results, help the user narrow down
6. Mention the time of activities to give temporal context

Files in this skill

  • README.md6.2 KB
  • SKILL.md5.8 KB
  • collectors/cleanup.py6.8 KB
  • collectors/collect_app.py5.9 KB
  • collectors/collect_chrome.py4.4 KB
  • collectors/collect_content.py7.7 KB
  • collectors/collect_fsevent.py5.2 KB
  • collectors/collect_git.py6.2 KB
  • collectors/collect_safari.py4.4 KB
  • collectors/collect_shell.py5.9 KB
  • collectors/collect_vscode.py5.4 KB
  • collectors/cron_collect.sh2.1 KB
  • collectors/git_hook.sh4.4 KB
  • collectors/install.sh6 KB
  • collectors/uninstall.sh2.2 KB
  • references/schema.md4.2 KB
  • scripts/query.py9.9 KB
  • scripts/report.py18.1 KB
  • scripts/status.py5.5 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…