Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,26 @@

All notable changes to this project are documented in this file.

## [0.2.2]

Presentation-only polish pass on the local stack report. Nothing about what is
scanned changed, there are no new commands or flags, and `--json`/`--markdown`
output is byte-for-byte unchanged apart from the `cli_version` field.

- Terminal report opens with the `devcat` wordmark and version, so a shared
screenshot says what produced it and which release
- Each tool type gets its own accent — `mcp` cyan, `plugin` magenta, `skill`
green, `subagent` blue — on both its label and its new count bar. Four hues
of the standard ANSI 16 that read on light and dark terminals; red and
yellow stay reserved for failure and truncation
- Per-type counts gain a proportional bar, scaled against the largest count
anywhere in the report so equal lengths mean equal counts in every section
- Closing dim hint pointing at `npx devcat-cli --markdown`
- Empty state: locations under the current directory now print `./`-relative
instead of as long absolute paths, and it carries the same wordmark header
- Color remains decoration only: ANSI-stripped output is byte-for-byte the
plain render, for a populated, empty, and truncated scan alike

## [0.2.1]

Presentation-only delight pass on the local stack report. No change to what
Expand Down
20 changes: 12 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,23 +20,27 @@ That's the whole thing — the report above is what it prints.
<summary>The same output as text</summary>

```
devcat v0.2.2

✓ Your AI-coding stack — 23 tools

Claude Code · 18 tools
6 mcp context7, github, linear, playwright, sentry, supabase
3 plugin pr-review-toolkit, superpowers, typescript-lsp
6 skill brainstorming, deep-research, handoff, research-notes, tdd,
writing-plans
3 subagent code-reviewer, debugger, test-engineer
██████ 6 mcp context7, github, linear, playwright, sentry, supabase
███ 3 plugin pr-review-toolkit, superpowers, typescript-lsp
██████ 6 skill brainstorming, deep-research, handoff, research-notes,
tdd, writing-plans
███ 3 subagent code-reviewer, debugger, test-engineer

Codex · 3 tools
3 mcp exa, node-repl, serena
███ 3 mcp exa, node-repl, serena

Cursor · 2 tools
2 mcp figma, postgres
██ 2 mcp figma, postgres

23 tools in Claude Code, Codex, and Cursor · 13 locations checked
2 project-scoped · 21 user-wide

Share it — npx devcat-cli --markdown
```

</details>
Expand Down Expand Up @@ -97,7 +101,7 @@ npx devcat-cli --json | jq '.clients[] | {label, total}'

```json
{
"cli_version": "0.2.1",
"cli_version": "0.2.2",
"total": 23,
"project_scoped": 2,
"user_scoped": 21,
Expand Down
38 changes: 20 additions & 18 deletions assets/devcat-report.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "devcat-cli",
"version": "0.2.1",
"version": "0.2.2",
"description": "See your whole AI-coding stack in one command. npx devcat-cli scans this machine for the MCP servers, plugins, skills, and subagents installed across Claude Code, Codex, and Cursor and prints them grouped — locally, with no account and no network call.",
"license": "MIT",
"author": "Andrew Noble (https://github.com/AnobleSCM)",
Expand Down
11 changes: 11 additions & 0 deletions src/ui/colors.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,24 @@ import { detectEnv, shouldUseColor } from '../lib/isHeadless.js';
const env = detectEnv();
const enabled = shouldUseColor(env);

/**
* Only the six chromatic colors of the standard ANSI 16 are offered, and
* white/black are deliberately absent: a terminal theme picks the background,
* so anything at either end of the ramp is invisible on half of them. Bold and
* dim carry emphasis instead, because they hold in every theme.
*
* red and yellow stay reserved for failure and truncation — the report never
* spends them on ordinary data, so seeing one always means something.
*/
export const c = {
bold: (s: string): string => (enabled ? pc.bold(s) : s),
green: (s: string): string => (enabled ? pc.green(s) : s),
red: (s: string): string => (enabled ? pc.red(s) : s),
yellow: (s: string): string => (enabled ? pc.yellow(s) : s),
dim: (s: string): string => (enabled ? pc.dim(s) : s),
cyan: (s: string): string => (enabled ? pc.cyan(s) : s),
magenta: (s: string): string => (enabled ? pc.magenta(s) : s),
blue: (s: string): string => (enabled ? pc.blue(s) : s),
};

export const SUCCESS_GLYPH = enabled ? pc.green('✓') : '✓';
Expand Down
Loading
Loading