Matthew Breedlove
e63591492a
feat: add usage API HTTPS_PROXY support
CI / Lint & Type Check (push) Has been cancelled
CI / Test (push) Has been cancelled
CI / Build (push) Has been cancelled
2026-03-05 18:07:10 -05:00
Matthew Breedlove
eaab442794
chore: standardize lint scripts and CI
2026-03-05 14:31:46 -05:00
Bap
78d6dcc28c
feat: Add Skills widget with cross-platform hook framework ( #201 )
...
CI / Lint & Type Check (push) Has been cancelled
CI / Test (push) Has been cancelled
CI / Build (push) Has been cancelled
* feat: Add Skills widget with cross-platform hook framework
Replaces bash/jq hook with a built-in --hook CLI handler that works
on all platforms. Widgets can declare hooks via getHooks() which are
auto-synced to Claude settings when the statusline config is saved.
* feat: tighten hook lifecycle and upgrade skills widget
Notes:\n- Hook sync now follows saved-state semantics: installing statusline syncs hooks from saved ccstatusline settings on disk, and uninstall always removes all ccstatusline-managed hooks.\n- syncWidgetHooks always strips managed hooks first, including when statusline.command is missing, then persists cleanup.\n- Skills metrics storage path is now ~/.cache/ccstatusline/skills/skills-<sessionId>.jsonl.\n- Skills unique list ordering is now most-recent-first.\n- Skills widget updates: view toggle on (v), hide-when-empty toggle on (h), explicit empty outputs when not hidden, and new list-only (l)imit editor option where 0 means unlimited (default).\n- Added list-limit custom editor flow and list-only keybind visibility in ItemsEditor.\n- Maintained Node 14 compatibility by avoiding Array.prototype.at in skills metrics parsing.\n- Added/updated regression tests for hook sync/install/uninstall behavior, skills metrics path/order, Skills widget rendering/editing, and items-editor custom keybind handling.
* chore: bump version to 2.2.1 and update release notes
---------
Co-authored-by: Matthew Breedlove <sirmalloc@gmail.com >
2026-03-05 01:35:37 -05:00
olion500
7ca953400c
feat: Add token speed widgets (InputSpeed, OutputSpeed, TotalSpeed) ( #141 )
...
CI / Lint & Type Check (push) Has been cancelled
CI / Test (push) Has been cancelled
CI / Build (push) Has been cancelled
* Add token speed widgets (InputSpeed, OutputSpeed, TotalSpeed)
- Add SpeedMetrics type for tracking token throughput
- Implement speed calculation utilities in speed-metrics.ts
- Add InputSpeed, OutputSpeed, TotalSpeed widgets
- Extend jsonl.ts to extract timing data for speed calculation
- Inject speedMetrics into RenderContext for widget access
- Add unit tests for speed widgets
* Add widget-gated subagent speed aggregation with parallel reads
* Fix subagent speed parsing for session-directory transcript layout
* Consolidate speed windows into core speed widgets
* Bump to v2.2.0 and document new speed widgets
---------
Co-authored-by: Matthew Breedlove <sirmalloc@gmail.com >
2026-03-04 20:03:36 -05:00
dependabot[bot]
97d7491c12
chore(deps-dev): bump vitest from 3.2.4 to 4.0.18 ( #198 )
...
* chore(deps-dev): bump vitest from 3.2.4 to 4.0.18
Bumps [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest ) from 3.2.4 to 4.0.18.
- [Release notes](https://github.com/vitest-dev/vitest/releases )
- [Commits](https://github.com/vitest-dev/vitest/commits/v4.0.18/packages/vitest )
---
updated-dependencies:
- dependency-name: vitest
dependency-version: 4.0.18
dependency-type: direct:development
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
* fix: type console spy in config test for vitest 4 lint
---------
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Matthew Breedlove <sirmalloc@gmail.com >
2026-03-04 13:17:20 -05:00
dependabot[bot]
8049e28667
chore(deps-dev): bump the dev-dependencies group with 14 updates ( #196 )
...
* chore(deps-dev): bump the dev-dependencies group with 14 updates
Bumps the dev-dependencies group with 14 updates:
| Package | From | To |
| --- | --- | --- |
| [@eslint/js](https://github.com/eslint/eslint/tree/HEAD/packages/js ) | `9.33.0` | `9.39.3` |
| [@stylistic/eslint-plugin](https://github.com/eslint-stylistic/eslint-stylistic/tree/HEAD/packages/eslint-plugin ) | `5.2.3` | `5.9.0` |
| [chalk](https://github.com/chalk/chalk ) | `5.5.0` | `5.6.2` |
| [eslint](https://github.com/eslint/eslint ) | `9.33.0` | `9.39.3` |
| [eslint-plugin-import-newlines](https://github.com/SeinopSys/eslint-plugin-import-newlines ) | `1.4.0` | `1.4.1` |
| [ink](https://github.com/vadimdemedes/ink ) | `6.2.0` | `6.8.0` |
| [react](https://github.com/facebook/react/tree/HEAD/packages/react ) | `19.1.1` | `19.2.4` |
| [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react ) | `19.1.10` | `19.2.14` |
| [strip-ansi](https://github.com/chalk/strip-ansi ) | `7.1.0` | `7.1.2` |
| [tinyglobby](https://github.com/SuperchupuDev/tinyglobby ) | `0.2.14` | `0.2.15` |
| [typedoc](https://github.com/TypeStrong/TypeDoc ) | `0.28.12` | `0.28.17` |
| [typescript](https://github.com/microsoft/TypeScript ) | `5.9.2` | `5.9.3` |
| [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint ) | `8.39.1` | `8.56.1` |
| [zod](https://github.com/colinhacks/zod ) | `4.0.17` | `4.3.6` |
Updates `@eslint/js` from 9.33.0 to 9.39.3
- [Release notes](https://github.com/eslint/eslint/releases )
- [Commits](https://github.com/eslint/eslint/commits/v9.39.3/packages/js )
Updates `@stylistic/eslint-plugin` from 5.2.3 to 5.9.0
- [Release notes](https://github.com/eslint-stylistic/eslint-stylistic/releases )
- [Changelog](https://github.com/eslint-stylistic/eslint-stylistic/blob/main/CHANGELOG.md )
- [Commits](https://github.com/eslint-stylistic/eslint-stylistic/commits/v5.9.0/packages/eslint-plugin )
Updates `chalk` from 5.5.0 to 5.6.2
- [Release notes](https://github.com/chalk/chalk/releases )
- [Commits](https://github.com/chalk/chalk/compare/v5.5.0...v5.6.2 )
Updates `eslint` from 9.33.0 to 9.39.3
- [Release notes](https://github.com/eslint/eslint/releases )
- [Commits](https://github.com/eslint/eslint/compare/v9.33.0...v9.39.3 )
Updates `eslint-plugin-import-newlines` from 1.4.0 to 1.4.1
- [Release notes](https://github.com/SeinopSys/eslint-plugin-import-newlines/releases )
- [Commits](https://github.com/SeinopSys/eslint-plugin-import-newlines/compare/v1.4.0...v1.4.1 )
Updates `ink` from 6.2.0 to 6.8.0
- [Release notes](https://github.com/vadimdemedes/ink/releases )
- [Commits](https://github.com/vadimdemedes/ink/compare/v6.2.0...v6.8.0 )
Updates `react` from 19.1.1 to 19.2.4
- [Release notes](https://github.com/facebook/react/releases )
- [Changelog](https://github.com/facebook/react/blob/main/CHANGELOG.md )
- [Commits](https://github.com/facebook/react/commits/v19.2.4/packages/react )
Updates `@types/react` from 19.1.10 to 19.2.14
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases )
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react )
Updates `strip-ansi` from 7.1.0 to 7.1.2
- [Release notes](https://github.com/chalk/strip-ansi/releases )
- [Commits](https://github.com/chalk/strip-ansi/compare/v7.1.0...v7.1.2 )
Updates `tinyglobby` from 0.2.14 to 0.2.15
- [Release notes](https://github.com/SuperchupuDev/tinyglobby/releases )
- [Changelog](https://github.com/SuperchupuDev/tinyglobby/blob/main/CHANGELOG.md )
- [Commits](https://github.com/SuperchupuDev/tinyglobby/compare/0.2.14...0.2.15 )
Updates `typedoc` from 0.28.12 to 0.28.17
- [Release notes](https://github.com/TypeStrong/TypeDoc/releases )
- [Changelog](https://github.com/TypeStrong/typedoc/blob/master/CHANGELOG.md )
- [Commits](https://github.com/TypeStrong/TypeDoc/compare/v0.28.12...v0.28.17 )
Updates `typescript` from 5.9.2 to 5.9.3
- [Release notes](https://github.com/microsoft/TypeScript/releases )
- [Commits](https://github.com/microsoft/TypeScript/compare/v5.9.2...v5.9.3 )
Updates `typescript-eslint` from 8.39.1 to 8.56.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases )
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md )
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.56.1/packages/typescript-eslint )
Updates `zod` from 4.0.17 to 4.3.6
- [Release notes](https://github.com/colinhacks/zod/releases )
- [Commits](https://github.com/colinhacks/zod/compare/v4.0.17...v4.3.6 )
---
updated-dependencies:
- dependency-name: "@eslint/js"
dependency-version: 9.39.3
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: dev-dependencies
- dependency-name: "@stylistic/eslint-plugin"
dependency-version: 5.9.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: dev-dependencies
- dependency-name: chalk
dependency-version: 5.6.2
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: dev-dependencies
- dependency-name: eslint
dependency-version: 9.39.3
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: dev-dependencies
- dependency-name: eslint-plugin-import-newlines
dependency-version: 1.4.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: dev-dependencies
- dependency-name: ink
dependency-version: 6.8.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: dev-dependencies
- dependency-name: react
dependency-version: 19.2.4
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: dev-dependencies
- dependency-name: "@types/react"
dependency-version: 19.2.14
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: dev-dependencies
- dependency-name: strip-ansi
dependency-version: 7.1.2
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: dev-dependencies
- dependency-name: tinyglobby
dependency-version: 0.2.15
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: dev-dependencies
- dependency-name: typedoc
dependency-version: 0.28.17
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: dev-dependencies
- dependency-name: typescript
dependency-version: 5.9.3
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: dev-dependencies
- dependency-name: typescript-eslint
dependency-version: 8.56.1
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: dev-dependencies
- dependency-name: zod
dependency-version: 4.3.6
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: dev-dependencies
...
Signed-off-by: dependabot[bot] <support@github.com >
* chore: pin ink 6.2.0 and fix lint formatting
---------
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Matthew Breedlove <sirmalloc@gmail.com >
2026-03-04 13:10:40 -05:00
dependabot[bot]
a056183a67
chore(deps-dev): bump eslint-plugin-react-hooks from 5.2.0 to 7.0.1 ( #199 )
...
Bumps [eslint-plugin-react-hooks](https://github.com/facebook/react/tree/HEAD/packages/eslint-plugin-react-hooks ) from 5.2.0 to 7.0.1.
- [Release notes](https://github.com/facebook/react/releases )
- [Changelog](https://github.com/facebook/react/blob/main/packages/eslint-plugin-react-hooks/CHANGELOG.md )
- [Commits](https://github.com/facebook/react/commits/HEAD/packages/eslint-plugin-react-hooks )
---
updated-dependencies:
- dependency-name: eslint-plugin-react-hooks
dependency-version: 7.0.1
dependency-type: direct:development
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-04 12:45:32 -05:00
dependabot[bot]
fceab59ec6
chore(deps-dev): bump react-devtools-core from 6.1.5 to 7.0.1 ( #197 )
...
Bumps [react-devtools-core](https://github.com/facebook/react/tree/HEAD/packages/react-devtools-core ) from 6.1.5 to 7.0.1.
- [Release notes](https://github.com/facebook/react/releases )
- [Changelog](https://github.com/facebook/react/blob/main/CHANGELOG.md )
- [Commits](https://github.com/facebook/react/commits/HEAD/packages/react-devtools-core )
---
updated-dependencies:
- dependency-name: react-devtools-core
dependency-version: 7.0.1
dependency-type: direct:development
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-04 12:44:28 -05:00
Gary Norton
990f2703b1
fix: support bare repo worktrees in GitWorktree widget ( #138 )
...
CI / Lint & Type Check (push) Has been cancelled
CI / Test (push) Has been cancelled
CI / Build (push) Has been cancelled
* fix: support bare repo worktrees in GitWorktree widget
The GitWorktree widget now correctly detects worktrees from bare
repositories. Previously, it only checked for `.git/worktrees/` in
the path, but bare repos store worktree metadata at
`<bare-repo>/worktrees/<name>` without the `.git` prefix.
This adds an additional check for `/worktrees/` pattern when the
`.git/worktrees/` pattern isn't found.
Fixes detection for setups like:
- Bare repo at: /path/to/repo (contains objects/, refs/, HEAD, etc.)
- Worktree at: /path/to/repo/trees/feature-x
- Git dir: /path/to/repo/worktrees/feature-x
* chore: remove accidental npm lockfile from PR branch
* chore: bump version to 2.1.10 and update recent updates
---------
Co-authored-by: Matthew Breedlove <sirmalloc@gmail.com >
2026-03-04 11:47:59 -05:00
Matthew Breedlove
9c0f5feab6
chore: bump version to 2.1.9 and update release notes
2026-03-04 09:33:47 -05:00
Stuart Corbishley
d79eefb043
feat: Add --config flag for custom settings file path ( #166 )
...
* Add --config flag for custom settings file path
Allow users to specify an alternative settings file via `--config <path>`,
enabling distinct status line configs for different Claude Code instances.
- Add initConfigPath/getConfigPath/isCustomConfigPath to config.ts
- Fix backup path to always append .bak instead of replacing .json suffix
- Use path.dirname(SETTINGS_PATH) instead of CONFIG_DIR for mkdir
- Parse --config arg in ccstatusline.ts main() entry point
- Add tests for config path management
* Integrate --config flag with Claude Code install commands
When a custom config path is active, the install-to-Claude-Code feature
now appends --config <path> to the status line command. Also updates
isInstalled detection to recognize commands with the --config suffix.
- Add isKnownCommand() to deduplicate command-matching logic
- Add shell-safe path quoting for --config values with spaces/special chars
- Add buildCommand() to append --config when custom path is active
- Refactor isInstalled() to use isKnownCommand()
- Use isKnownCommand() in App.tsx install flow
- Add tests for isKnownCommand() and buildCommand() with CLAUDE_CONFIG_DIR safety net
* Show custom config path in TUI header
When a custom --config path is active, display it below the title bar
so users can see which settings file is being edited.
* fix: use platform-appropriate quoting for --config path
* chore: bump version to 2.1.8 and update recent updates
---------
Co-authored-by: Matthew Breedlove <sirmalloc@gmail.com >
2026-03-04 09:10:37 -05:00
Matthew Breedlove
79b8e4e2f5
refactor: implement phase 7 test/tooling simplification with tests
2026-03-04 01:39:48 -05:00
Matthew Breedlove
25b69228dd
feat(usage): split reset timers into block and weekly widgets
...
Closes #194
2026-03-04 00:14:49 -05:00
Matthew Breedlove
7e2ad30f77
fix(context): support 1M model name formats in fallback parsing
...
Handle [1M], (1M), and optional context labels when inferring model context size; use model id + display_name in context widgets and add regression coverage for ctx, ctx(u), and context bar.
Closes #193
2026-03-03 21:49:49 -05:00
Matthew Breedlove
b13ea14a8c
fix: coerce status JSON numeric strings and bump version
...
Coerce numeric strings in StatusJSON parsing to keep status line rendering resilient with third-party payload tweaks.
Closes #192
2026-03-03 18:30:04 -05:00
Matthew Breedlove
6edc1b4277
feat: add git insertions and deletions widgets
...
Closes #115
2026-03-03 00:22:13 -05:00
Matthew Breedlove
0c6bf4b02c
feat: add Link widget and fix ANSI/OSC truncation calculation
...
- add a new Link widget with OSC8 rendering, preview parity, and raw mode behavior
- fix truncation and visible-width calculation to handle ANSI/OSC sequences safely
- bump package version to 2.1.3
- update README recent updates and widget documentation
Resolves #188
2026-03-02 23:59:14 -05:00
Matthew Breedlove
eff030a9d8
Add 'star us on github' menu item, version bump to 2.1.2
2026-03-02 23:21:39 -05:00
Matthew Breedlove
9ddcb0003b
Version bump and readme update
2026-03-02 20:32:10 -05:00
Matthew Breedlove
8b1ec580d9
Version bump and README update
2026-03-02 17:43:32 -05:00
Matthew Breedlove
fc3934097b
chore: Fix for test failures when testing with vitest, remove 'test' script from package.json, prefer running tests using 'bun test'
2026-02-27 13:19:08 -05:00
Anthony Vincent Caracappa
3d43476d6b
Free Memory Widget ( #155 )
...
* FreeMemory widget:
Description: Shows system memory usage (used/total) in a compact format like Mem: 12.4G/16.0G
Features:
- On macOS: Uses vm_stat to calculate memory like htop (Active + Wired pages)
- On other platforms: Falls back to Node.js os.freemem()/os.totalmem()
- Smart byte formatting (G, M, K, B)
- Supports raw value mode (omits "Mem:" prefix)
- Default color: cyan
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
* Version bump and README update
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com >
Co-authored-by: Matthew Breedlove <sirmalloc@gmail.com >
2026-02-24 14:20:00 -05:00
Matthew Breedlove
b6426bf707
Version bump
2026-02-21 16:12:52 -05:00
Matthew Breedlove
2e0b321d41
Version bump and readme update
2026-02-21 12:07:00 -05:00
Matthew Breedlove
35b4c0caa0
Version bump
2026-02-21 11:36:25 -05:00
Matthew Breedlove
3050aefc1c
Version bump
2026-02-02 16:12:06 -05:00
Matthew Breedlove
d457e55913
Fix for model in statusLine JSON being passed as string vs object, closes #157 , version bump
2026-02-02 14:32:33 -05:00
Matthew Breedlove
03d19692ab
Lint fixes, version bump
2025-11-17 16:58:03 -05:00
Matthew Breedlove
bdcf6aac33
Version bump
2025-11-13 09:02:31 -05:00
Matthew Breedlove
929b004c22
Version bump
2025-10-07 23:39:27 -04:00
Matthew Breedlove
9feebf9a09
Version bump
2025-10-04 18:18:24 -04:00
Howard Zhang
1ad9304039
Fix bunx availability check on windows ( #96 )
2025-10-04 18:16:57 -04:00
Matthew Breedlove
2053a5577d
Version bump
2025-09-29 16:41:21 -04:00
Matthew Breedlove
36054e6b0b
Version bump
2025-09-24 10:10:15 -04:00
Matthew Breedlove
5c4521d014
Version bump
2025-09-19 12:19:21 -04:00
Matthew Breedlove
d9ee110fc7
Version bump and README update
2025-09-19 01:30:23 -04:00
Matthew Breedlove
bf269e1f63
Version bump and README update
2025-09-18 21:27:21 -04:00
Matthew Breedlove
2842f856e9
Version bump and README update
2025-09-17 22:38:54 -04:00
Alex Newman
7bb53d11e5
TypeDoc Docs ( #75 )
...
* Initial plan
* Add TypeDoc documentation generation system
Co-authored-by: thedotmack <683968+thedotmack@users.noreply.github.com >
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: thedotmack <683968+thedotmack@users.noreply.github.com >
2025-09-11 17:12:34 -04:00
Matthew Breedlove
5942afe563
Version bump
2025-09-09 00:00:50 -04:00
Matthew Breedlove
679bdac86e
Version bump and README update
2025-08-31 03:04:15 -04:00
Matthew Breedlove
dade396de1
Version bump and README update
2025-08-28 09:37:13 -04:00
Jack Allen
d5b2da2a47
chore(settings): support more than 3 lines ( #53 )
...
* chore(settings): support more than 3 lines
* chore: add confirm dialog
* chore: update example script
* chore: rm config override
* Fix spacing issues, disallow deletion of last line, fix issue where deleting lines 2 and 3 would keep them in the list, cleanup onDelete and onAppend method locations
* Initialize default settings with two empty lines
---------
Co-authored-by: Matthew Breedlove <sirmalloc@gmail.com >
2025-08-28 09:30:26 -04:00
Matthew Breedlove
698bdb7f1a
Updating version and README for 2.0.10
2025-08-27 11:08:48 -04:00
Jack Allen
7886e1f376
feat(git-worktree): Add git worktree widget ( #49 )
...
* feat(git-worktree): Add git worktree widget
* Minor cleanup
---------
Co-authored-by: Matthew Breedlove <sirmalloc@gmail.com >
2025-08-27 10:22:43 -04:00
Jack Allen
9354dbc9a3
chore(patch-package): Migrate to using bun patch, instead of patch-package
2025-08-27 13:16:47 +01:00
Matthew Breedlove
ad85f951a4
Fixes for inefficient rendering in auto-alignment mode
2025-08-24 02:45:38 -04:00
Matthew Breedlove
b46319c4e2
Adding powerline widget auto-alignment toggle
2025-08-24 00:22:22 -04:00
Matthew Breedlove
8e6b1013a1
Update readme and bump version to 2.0.7
2025-08-21 02:02:19 -04:00
Matthew Breedlove
f9a113a9d2
Fix for block timer calculation when last activity was in a previous block. Was incorrectly displaying an active block due to the diff of last activity and current block start
2025-08-20 19:10:38 -04:00