Skip to main content

gitcli

Local git timeline CLI. Query commit history across 50+ repositories. Use when user asks about coding activity, what they worked on, commit history, project timeline, or 'what did I do on [date]'.

Source facts

Repository
junghan0611/agent-config
Last source activity
July 14, 2026 at 05:21
Detected SKILL.md language
Mixed languages
Stars
5
Forks
0

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

Showing SKILL.md

SKILL.md
Source instructions ยท Read-only preview
name
gitcli
description
Local git timeline CLI. Query commit history across 50+ repositories. Use when user asks about coding activity, what they worked on, commit history, project timeline, or 'what did I do on [date]'.
# gitcli v0.4.0 โ€” Local Git Timeline CLI Query commit history across all local git repositories (~/repos/gh, ~/repos/work). Binary is bundled in the skill directory. Invoke via `{baseDir}/gitcli`. All output is JSON. ## The time axis (v0.4.0) gitcli computes in **KST since 2026-07-14**, following the time contract in `~/repos/gh/junghan0611/timeline/README.md` โ€” the same contract `collect.py` implements, so the two answer a day identically (verified: equal full-sha sets). - A commit belongs to the day of its **author** timestamp in Seoul. A commit written at 20:00 UTC belongs to the *next* Seoul day. - Every instant on the wire is RFC3339 with `+09:00` (`ts`, `first_commit`, `last_commit`). - Windows snap to midnight KST and are half-open on instants โ€” a day is never sliced. - Each commit carries the **full `sha`** (joins the timeline) plus a short `hash` (for humans). - Walks `--all --no-merges`, deduped by sha across clones. - Symlinked repos are followed (`~/repos/gh/org` โ†’ `~/sync/org` was invisible before v0.4.0). - Unreadable repos are reported in `rejects`, never silently read as "no commits". ## When to Use - "์–ด์ œ ๋ญ ์ฝ”๋”ฉํ–ˆ์ง€?" โ†’ `gitcli day --days-ago 1 --me --summary` - "pi-mono ์ตœ๊ทผ ์ปค๋ฐ‹" โ†’ `gitcli log pi-mono --days 7` - "์ด๋ฒˆ ๋‹ฌ ํ™œ๋™๋Ÿ‰" โ†’ `gitcli timeline --month 2026-02 --me` - "๋ฆฌํฌ ๋ช‡ ๊ฐœ์•ผ?" โ†’ `gitcli repos` - ํŠน์ • ๋‚ ์งœ ํ™œ๋™ โ†’ `gitcli day 2025-10-10 --me --summary` - "ํšŒ์‚ฌ ์ž‘์—… ์ •๋ฆฌ" โ†’ `gitcli timeline --month 2026-02 --me --repos ~/repos/work` - "์—ฐ๋ด‰ํ˜‘์ƒ ์ž๋ฃŒ" โ†’ `gitcli timeline --days 90 --me --repos ~/repos/work` ## Commands ### day โ€” ํŠน์ • ๋‚ ์งœ์˜ ๋ชจ๋“  ์ปค๋ฐ‹ ```bash gitcli day # ์˜ค๋Š˜ gitcli day 2025-10-10 --me --summary # ๊ฐœ์š” (ํ† ํฐ ์ ˆ์•ฝ, ๊ธฐ๋ณธ ์ถ”์ฒœ) gitcli day 2025-10-10 --me # ์ƒ์„ธ (์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€/diff ํ†ต๊ณ„ ํฌํ•จ) gitcli day 20251010 # Denote ID ํ˜ธํ™˜ gitcli day --years-ago 1 --me # 1๋…„ ์ „ ์˜ค๋Š˜ gitcli day --days-ago 7 --me # 7์ผ ์ „ gitcli day --repos ~/repos/gh --me # ํŠน์ • ๋””๋ ‰ํ† ๋ฆฌ๋งŒ gitcli day --me --max 10 # ์ƒ์„ธ ๋ชจ๋“œ์—์„œ ์ตœ๊ทผ 10์ปค๋ฐ‹๋งŒ ``` **`--summary` ์ถœ๋ ฅ** (~500B, 96% ์ ˆ๊ฐ): ```json {"date":"2026-02-22","total_commits":45,"repos_summary":[{"name":"denotecli","commits":16},{"name":"pi-skills","commits":4}],"summary":{"active_repos":6,"first_commit":"2026-02-22T16:39:07+09:00","last_commit":"2026-02-22T20:18:44+09:00","active_hours":3.65}} ``` **๊ธฐ๋ณธ ์ถœ๋ ฅ** (~13KB): ์ปค๋ฐ‹๋ณ„ hash, sha, ts, time, message, files_changed, insertions, deletions ํฌํ•จ. `--max N`์œผ๋กœ ์ž๋ฅด๋ฉด `summary.dropped`์— **๋ฒ„๋ฆฐ ์ปค๋ฐ‹ ์ˆ˜**๊ฐ€ ์‹ค๋ฆฐ๋‹ค (์ƒํ•œ๊ฐ’ N์ด ์•„๋‹ˆ๋‹ค). ### repos โ€” ๋ฆฌํฌ ๋ชฉ๋ก๊ณผ ํ†ต๊ณ„ ```bash gitcli repos # ๊ธฐ๋ณธ (~/repos/gh + ~/repos/work) gitcli repos --repos ~/repos/gh # ๊ฐœ์ธ๋งŒ ``` ### log โ€” ํŠน์ • ๋ฆฌํฌ ์ปค๋ฐ‹ ๋กœ๊ทธ ```bash gitcli log agent-config --days 7 gitcli log agent-config --from 2025-10-01 --to 2025-10-31 gitcli log nixos-config --from v2026.5.30-beta.1 # OpenClaw-style tag date accepted gitcli log nixos-config --author junghan ``` ๋ฆฌํฌ ์ด๋ฆ„์€ `gitcli repos`๊ฐ€ ๋‚ด๋Š” ์ด๋ฆ„์ด๋‹ค. ์—†๋Š” ์ด๋ฆ„์„ ์ฃผ๋ฉด `repo not found`๋กœ ์ฃฝ๋Š”๋‹ค. ### timeline โ€” ๊ธฐ๊ฐ„๋ณ„ ํ™œ๋™ ๊ฐœ์š” ```bash gitcli timeline --days 30 --me gitcli timeline --month 2025-10 --me ``` Output: period, total_commits, active_days, daily[].{date, commits, repos[], hours} `--me` works here as of v0.4.0. Before that the flag was documented but never read, so `timeline --me` silently counted everyone's commits. ## Important Notes - **`--me --summary` ๊ธฐ๋ณธ ์‚ฌ์šฉ**: ํ† ํฐ ์ ˆ์•ฝ + ํฌํฌ/AI ์ปค๋ฐ‹ ํ•„ํ„ฐ๋ง - **`--tz`**: v0.4.0๋ถ€ํ„ฐ no-op. KST๊ฐ€ ๊ณ„์•ฝ์ด์ž ๊ธฐ๋ณธ์ด๋ฏ€๋กœ ๋„˜๊ฒจ๋„ ๋ฌดํ•ดํ•˜์ง€๋งŒ ํ•„์š” ์—†๋‹ค. - **๊ธฐ๋ณธ ๊ฒฝ๋กœ**: `~/repos/gh,~/repos/work` (๋‘˜ ๋‹ค ์Šค์บ”) - **๊ฒฝ๋กœ ๋ถ„๋ฆฌ**: ๊ฐœ์ธ(`--repos ~/repos/gh`), ํšŒ์‚ฌ(`--repos ~/repos/work`) - **repos๋Š” ํ•ญ์ƒ `[]`**: ์ปค๋ฐ‹ ์—†๋Š” ๋‚ ๋„ null ์•„๋‹Œ ๋นˆ ๋ฐฐ์—ด ๋ฐ˜ํ™˜ - **authors ์—†์œผ๋ฉด ๊ฒฝ๊ณ **: `~/.config/gitcli/authors` ๋ฏธ์กด์žฌ ์‹œ stderr ๊ฒฝ๊ณ  ์ถœ๋ ฅ ## Author Config (~/.config/gitcli/authors) ``` # ํ•œ ์ค„์— ํ•˜๋‚˜, ๋Œ€์†Œ๋ฌธ์ž ๋ฌด๊ด€ ๋ถ€๋ถ„ ์ผ์น˜ junghan # ๊ฐœ์ธ: junghan, junghan0611, Jung Han, junghanacs jhkim2 # ํšŒ์‚ฌ: Junghan Kim <jhkim2@goqual.com> ``` ## Repo Groups | ๊ฒฝ๋กœ | ์„ฑ๊ฒฉ | ๋ฆฌํฌ ์ˆ˜ | ๊ธฐ๊ฐ„ | |------|------|---------|------| | `~/repos/gh` | ๊ฐœ์ธ GitHub | ~57 | 2011~ | | `~/repos/work` | ํšŒ์‚ฌ GitHub | ~25 | 2025~ | ๋ฆฌํฌ ์ˆ˜๋Š” ์†์œผ๋กœ ๊ด€๋ฆฌํ•˜๋Š” ๋‚ก๋Š” ์ˆซ์ž๋‹ค. ์‚ด์•„์žˆ๋Š” ๊ฐ’์€ `gitcli repos`๊ฐ€ ๋‚ธ๋‹ค.
View on GitHub