[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-81353":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":14,"subscribersCount":14,"size":14,"stars1d":15,"stars7d":12,"stars30d":16,"stars90d":14,"forks30d":14,"starsTrendScore":16,"compositeScore":17,"rankGlobal":9,"rankLanguage":9,"license":9,"archived":18,"fork":18,"defaultBranch":19,"hasWiki":20,"hasPages":18,"topics":21,"createdAt":9,"pushedAt":9,"updatedAt":22,"readmeContent":23,"aiSummary":24,"trendingCount":14,"starSnapshotCount":14,"syncStatus":12,"lastSyncTime":25,"discoverSource":26},81353,"skilled","av\u002Fskilled","av","TUI dashboard for skill usage stats across AI coding tools",null,"TypeScript",43,2,40,0,1,3,41.73,false,"main",true,[],"2026-06-12 04:01:33","[![screenshot](.\u002Fassets\u002Fscreenshot.png)](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=Lmq8A9R49ZI)\n\n[![release](https:\u002F\u002Fshieldcn.dev\u002Fgithub\u002Frelease\u002Fav\u002Fskilled.png?variant=secondary)](https:\u002F\u002Fgithub.com\u002Fav\u002Fskilled\u002Freleases)\n[![npm](https:\u002F\u002Fshieldcn.dev\u002Fnpm\u002F@avcodes\u002Fskilled.png?variant=secondary)](https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002F@avcodes\u002Fskilled)\n[![pypi](https:\u002F\u002Fshieldcn.dev\u002Fpypi\u002Fskilled.png?variant=secondary)](https:\u002F\u002Fpypi.org\u002Fproject\u002Fskilled\u002F)\n[![license](https:\u002F\u002Fshieldcn.dev\u002Fnpm\u002Flicense\u002F@avcodes\u002Fskilled.png?variant=secondary)](https:\u002F\u002Fgithub.com\u002Fav\u002Fskilled\u002Fblob\u002Fmain\u002FLICENSE)\n[![TypeScript + Rust](https:\u002F\u002Fshieldcn.dev\u002Fbadge\u002FTypeScript%20%2B%20Rust-blue.png?variant=secondary)](https:\u002F\u002Fgithub.com\u002Fav\u002Fskilled)\n\nYour AI coding tools keep traces. Skilled reads them.\n\nLive TUI dashboard that aggregates skill usage across Claude Code, OpenCode, Codex, Grok, and Droid. Reads local history files only. Zero network, zero telemetry.\n\n## What you get\n\n- 30 fps terminal dashboard: bar charts, 16-week activity heatmap, hourly histogram, recent activity feed\n- Skill audit: heavy hitters, rising\u002Fdeclining trends, stale skills, one-offs, cross-project patterns\n- CLI with JSON output: `skilled list`, `skilled audit`, `skilled detail \u003Cskill>`. Filter by source or project.\n\n## Install\n\nShell (Linux \u002F macOS):\n\n```sh\ncurl -fsSL https:\u002F\u002Fraw.githubusercontent.com\u002Fav\u002Fskilled\u002Fmain\u002Finstall.sh | sh\n```\n\nnpm:\n\n```sh\nnpm install -g @avcodes\u002Fskilled\n```\n\npip:\n\n```sh\npip install skilled\n```\n\nThen run `skilled`.\n\n## Usage\n\n```\nskilled                          Interactive dashboard\nskilled list                     All skills ranked by usage\nskilled list --sort recent       Sorted by last used\nskilled detail review            Deep dive on one skill\nskilled audit                    Health report across all skills\nskilled calls --source codex     Raw invocations from a specific tool\nskilled providers                Which tools are detected\n```\n\nAdd `--json` to any command for machine-readable output. Filter with `--source \u003Ctool>` and `--project \u003Cpath>`.\n\n### TUI keys\n\n| Key | Action |\n|-----|--------|\n| `s` | Cycle sort: count → alphabetical → recent |\n| `Tab` | Toggle sort direction |\n| `j` \u002F `k` | Scroll |\n| `Enter` | Open skill detail (replaces right panel) |\n| `a` | Toggle audit view |\n| `r` | Refresh data |\n| `q` \u002F `Esc` | Quit |\n\n## Supported tools\n\n| Tool | What it reads |\n|------|--------------|\n| **Claude Code** | `~\u002F.claude\u002Fhistory.jsonl` + session JSONL files |\n| **OpenCode** | Local session history |\n| **Codex** | Local session history |\n| **Grok** | Local session history |\n| **Droid** | Local session history |\n\nSkilled auto-detects which tools are installed. No configuration needed. If the history files exist, they show up.\n\n## How it works\n\nEach 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.\n\nFrom there: frequency counts, weekly trends, hourly distribution, per-project breakdowns, and audit heuristics (rising = 50%+ increase over 4 weeks, stale = unused 30+ days, etc.).\n\nThe TUI renders at 30 fps using [@opentui\u002Fcore](https:\u002F\u002Fgithub.com\u002Fnicholasgasior\u002Fopentui). Bar charts use 8-level Unicode block elements for sub-character precision. The heatmap uses a 5-level green intensity ramp.\n\nNo data leaves your machine. No accounts, no config files, no API keys.\n\n## Build from source\n\nRequires [Bun](https:\u002F\u002Fbun.sh):\n\n```sh\ngit clone https:\u002F\u002Fgithub.com\u002Fav\u002Fskilled.git\ncd skilled\nbun install\nbun run start\n```\n\nCompile to a standalone binary:\n\n```sh\nbun run build    # outputs .\u002Fskilled\n```\n\n### Optional: Rust index\n\nFor faster re-scanning of large history files:\n\n```sh\ncd index\ncargo build --release\n```\n\nThe TUI will use the index automatically when available.\n\n## License\n\nMIT\n","av\u002Fskilled 是一个用于分析 AI 编程工具中技能使用情况的终端用户界面（TUI）仪表板。该项目采用 TypeScript 开发，能够从 Claude Code、OpenCode、Codex、Grok 和 Droid 等工具的历史记录文件中读取数据，并在本地展示包括条形图、16 周活动热图、小时分布直方图及最近活动流在内的多种可视化图表。此外，它还支持通过命令行接口进行技能审计、详情查询等功能，并且可以输出 JSON 格式的数据以供进一步处理。适用于希望深入了解自己或团队成员在不同 AI 辅助编程工具上技能应用模式的开发者或管理者，特别是在需要离线数据分析的情况下。","2026-06-11 04:04:43","CREATED_QUERY"]