Claude-skill-registry devsql-querying
Query and analyze Claude Code history joined with Git data using SQL. Use when user asks about their Claude conversations, productivity patterns, commit history correlation, session analytics, or wants to explore their coding history with SQL queries.
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/devsql-querying" ~/.claude/skills/majiayu000-claude-skill-registry-devsql-querying && rm -rf "$T"
manifest:
skills/data/devsql-querying/SKILL.mdsource content
DevSQL Querying Skill
Query your Claude Code history joined with Git commits to analyze productivity patterns.
When to Use
- User asks "How many Claude sessions did I have this week?"
- User wants to "Find my longest debugging sessions"
- User asks "Which prompts led to the most commits?"
- User wants productivity analytics or session insights
- User asks about correlating Claude usage with Git history
Prerequisites
Ensure devsql is installed:
brew install douglance/tap/devsql
Available Tables
Claude Code Tables
| Table | Columns |
|---|---|
| timestamp, display (prompt text), project, pastedContents |
| Full conversation data including tool_use, tool_name |
| Todo items tracked in sessions |
Git Tables
| Table | Columns |
|---|---|
| id, message, summary, author_name, authored_at, short_id |
| name, is_head, commit_id |
| Diff content per commit |
| Line-by-line attribution |
Approach
- Understand what the user wants to analyze
- Compose a SQL query joining Claude and Git data as needed
- Execute with:
devsql "<query>" - Present results with insights
Note: history.timestamp is in milliseconds. Use
datetime(timestamp/1000, 'unixepoch') to convert.
Example Queries
-- Recent prompts SELECT display as prompt, project FROM history ORDER BY timestamp DESC LIMIT 10; -- Prompts this week SELECT COUNT(*) as prompts FROM history WHERE datetime(timestamp/1000, 'unixepoch') > date('now', '-7 days'); -- Correlate prompts with commits SELECT date(c.authored_at) as day, COUNT(DISTINCT h.timestamp) as prompts, COUNT(DISTINCT c.id) as commits FROM commits c LEFT JOIN history h ON date(c.authored_at) = date(datetime(h.timestamp/1000, 'unixepoch')) GROUP BY day ORDER BY day DESC LIMIT 14; -- Which prompts led to commits? SELECT h.display as prompt, COUNT(c.id) as commits_after FROM history h JOIN commits c ON date(datetime(h.timestamp/1000, 'unixepoch')) = date(c.authored_at) GROUP BY h.display ORDER BY commits_after DESC LIMIT 10; -- Tool usage SELECT tool_name, COUNT(*) as uses FROM transcripts WHERE type = 'tool_use' GROUP BY tool_name ORDER BY uses DESC;
Output Formats
- Default: formatted table
- CSV:
devsql -f csv "<query>" - JSON:
devsql -f json "<query>"