@avcodes/skilled 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +115 -0
- package/package.json +5 -1
- package/bin/skilled +0 -3
package/README.md
ADDED
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+

|
|
2
|
+
|
|
3
|
+
Your AI coding tools keep traces. Skilled reads them.
|
|
4
|
+
|
|
5
|
+
Live TUI dashboard that aggregates skill usage across Claude Code, OpenCode, Codex, Grok, and Droid. Reads local history files only. Zero network, zero telemetry.
|
|
6
|
+
|
|
7
|
+
<!-- TODO: demo video -->
|
|
8
|
+
|
|
9
|
+
## What you get
|
|
10
|
+
|
|
11
|
+
- 30 fps terminal dashboard: bar charts, 16-week activity heatmap, hourly histogram, recent activity feed
|
|
12
|
+
- Skill audit: heavy hitters, rising/declining trends, stale skills, one-offs, cross-project patterns
|
|
13
|
+
- CLI with JSON output: `skilled list`, `skilled audit`, `skilled detail <skill>`. Filter by source or project.
|
|
14
|
+
|
|
15
|
+
## Install
|
|
16
|
+
|
|
17
|
+
Shell (Linux / macOS):
|
|
18
|
+
|
|
19
|
+
```sh
|
|
20
|
+
curl -fsSL https://raw.githubusercontent.com/av/skilled/main/install.sh | sh
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
npm:
|
|
24
|
+
|
|
25
|
+
```sh
|
|
26
|
+
npm install -g @avcodes/skilled
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
pip:
|
|
30
|
+
|
|
31
|
+
```sh
|
|
32
|
+
pip install skilled
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
Then run `skilled`.
|
|
36
|
+
|
|
37
|
+
## Usage
|
|
38
|
+
|
|
39
|
+
```
|
|
40
|
+
skilled Interactive dashboard
|
|
41
|
+
skilled list All skills ranked by usage
|
|
42
|
+
skilled list --sort recent Sorted by last used
|
|
43
|
+
skilled detail review Deep dive on one skill
|
|
44
|
+
skilled audit Health report across all skills
|
|
45
|
+
skilled calls --source codex Raw invocations from a specific tool
|
|
46
|
+
skilled providers Which tools are detected
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Add `--json` to any command for machine-readable output. Filter with `--source <tool>` and `--project <path>`.
|
|
50
|
+
|
|
51
|
+
### TUI keys
|
|
52
|
+
|
|
53
|
+
| Key | Action |
|
|
54
|
+
|-----|--------|
|
|
55
|
+
| `s` | Cycle sort: count → alphabetical → recent |
|
|
56
|
+
| `Tab` | Toggle sort direction |
|
|
57
|
+
| `j` / `k` | Scroll |
|
|
58
|
+
| `Enter` | Open skill detail (replaces right panel) |
|
|
59
|
+
| `a` | Toggle audit view |
|
|
60
|
+
| `r` | Refresh data |
|
|
61
|
+
| `q` / `Esc` | Quit |
|
|
62
|
+
|
|
63
|
+
## Supported tools
|
|
64
|
+
|
|
65
|
+
| Tool | What it reads |
|
|
66
|
+
|------|--------------|
|
|
67
|
+
| **Claude Code** | `~/.claude/history.jsonl` + session JSONL files |
|
|
68
|
+
| **OpenCode** | Local session history |
|
|
69
|
+
| **Codex** | Local session history |
|
|
70
|
+
| **Grok** | Local session history |
|
|
71
|
+
| **Droid** | Local session history |
|
|
72
|
+
|
|
73
|
+
Skilled auto-detects which tools are installed. No configuration needed. If the history files exist, they show up.
|
|
74
|
+
|
|
75
|
+
## How it works
|
|
76
|
+
|
|
77
|
+
Each tool writes session traces to predictable local paths. Skilled has a provider for each one that parses those files and extracts skill invocations (slash commands, tool calls, skill triggers) into a common format: skill name, timestamp, project, session, source.
|
|
78
|
+
|
|
79
|
+
From there: frequency counts, weekly trends, hourly distribution, per-project breakdowns, and audit heuristics (rising = 50%+ increase over 4 weeks, stale = unused 30+ days, etc.).
|
|
80
|
+
|
|
81
|
+
The TUI renders at 30 fps using [@opentui/core](https://github.com/nicholasgasior/opentui). Bar charts use 8-level Unicode block elements for sub-character precision. The heatmap uses a 5-level green intensity ramp.
|
|
82
|
+
|
|
83
|
+
No data leaves your machine. No accounts, no config files, no API keys.
|
|
84
|
+
|
|
85
|
+
## Build from source
|
|
86
|
+
|
|
87
|
+
Requires [Bun](https://bun.sh):
|
|
88
|
+
|
|
89
|
+
```sh
|
|
90
|
+
git clone https://github.com/av/skilled.git
|
|
91
|
+
cd skilled
|
|
92
|
+
bun install
|
|
93
|
+
bun run start
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
Compile to a standalone binary:
|
|
97
|
+
|
|
98
|
+
```sh
|
|
99
|
+
bun run build # outputs ./skilled
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
### Optional: Rust index
|
|
103
|
+
|
|
104
|
+
For faster re-scanning of large history files:
|
|
105
|
+
|
|
106
|
+
```sh
|
|
107
|
+
cd index
|
|
108
|
+
cargo build --release
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
The TUI will use the index automatically when available.
|
|
112
|
+
|
|
113
|
+
## License
|
|
114
|
+
|
|
115
|
+
MIT
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@avcodes/skilled",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "TUI dashboard for skill usage stats across AI coding tools",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -8,6 +8,10 @@
|
|
|
8
8
|
"url": "git+https://github.com/av/skilled.git"
|
|
9
9
|
},
|
|
10
10
|
"homepage": "https://github.com/av/skilled",
|
|
11
|
+
"publishConfig": {
|
|
12
|
+
"access": "public",
|
|
13
|
+
"provenance": true
|
|
14
|
+
},
|
|
11
15
|
"bin": {
|
|
12
16
|
"skilled": "bin/skilled"
|
|
13
17
|
},
|
package/bin/skilled
DELETED