Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
91 commits
Select commit Hold shift + click to select a range
7c18b14
core: env-gated Langfuse tracing for Bus events (Node OTEL; Bun v3 fa…
paulbettner Sep 27, 2025
b0abc68
observe: instrument message/tool/step parts with per-session tracing …
paulbettner Sep 27, 2025
389d920
observe: wrap global fetch to trace outgoing HTTP requests (skip Lang…
paulbettner Sep 27, 2025
a8607df
observe: switch to v4-only (Node OTel); remove v3 client and Bun fall…
paulbettner Sep 27, 2025
bf82c32
observe: add v4 Node sidecar and auto-start from server; stream SSE e…
paulbettner Sep 27, 2025
0c80b13
observe: auto-start v4 Node sidecar from server (worktree)
paulbettner Sep 27, 2025
3de39ee
observe: sidecar initOtel robust await of NodeSDK.start()
paulbettner Sep 27, 2025
21efb8e
observe(sidecar): set correct output field and TOOL type in observati…
paulbettner Sep 27, 2025
bf36170
observe: attach correct sessionId on all events (use info.sessionID/p…
paulbettner Sep 27, 2025
c1320dc
observe(sidecar): enrich observations
paulbettner Sep 27, 2025
88e3f1c
observe: fix duplicate variable in v4 Node instrumentation (reuse p)
paulbettner Sep 27, 2025
7925fa1
observe(sidecar): aggregate assistant generation I/O
paulbettner Sep 27, 2025
efcb1e1
Smarty branding: TUI/CLI logos, help banner, brand constant; caret fi…
paulbettner Sep 27, 2025
d0565cf
merge: sync origin/dev into feature/langfuse-observability; adapt sid…
paulbettner Sep 27, 2025
378f2f7
observability(langfuse): switch to sidecar-only v4 tracing to reliabl…
paulbettner Sep 27, 2025
bbf55a0
fix(types): quiet in-app tracing types under langfuse-app gate and br…
paulbettner Sep 27, 2025
36fb1ca
docs: add comprehensive README for Langfuse integration documenting a…
paulbettner Sep 27, 2025
280411c
Format and improve documentation
paulbettner Sep 27, 2025
6847f3b
Merge pull request #2 from Smarty-Pants-Inc/feature/langfuse-observab…
paulbettner Sep 27, 2025
b8ec352
observe(sidecar): dedupe streaming text, surface reasoning, and nest …
paulbettner Sep 27, 2025
8cdfc62
Merge pull request #3 from Smarty-Pants-Inc/fix/langfuse-sidecar-trac…
paulbettner Sep 27, 2025
eb02ca2
fix(tui): treat interrupted streams as clean aborts
paulbettner Sep 27, 2025
e181cfe
chore: format code
actions-user Sep 27, 2025
9cf31f7
perf(tui): stop idle redraw loops and confine shimmer to latest messa…
paulbettner Sep 28, 2025
7eed4da
fix(smartypants): sanitize history for provider input by dropping pri…
paulbettner Sep 28, 2025
929c2be
Merge pull request #5 from Smarty-Pants-Inc/fix/sanitize-history-reas…
paulbettner Sep 28, 2025
b99648a
docs+observe+tui: document Smarty Pants fork and land Langfuse/TUI re…
paulbettner Sep 28, 2025
b874251
chore: format code
actions-user Sep 28, 2025
dd140cd
ignore: update download stats 2025-09-28
actions-user Sep 28, 2025
52c7c19
tui: scope permission events to active session family; remove cross-s…
paulbettner Sep 28, 2025
816a760
perf(tui): stop idle redraw loops and confine shimmer to latest messa…
paulbettner Sep 28, 2025
d6a1615
fix(tui): treat interrupted streams as clean aborts
paulbettner Sep 27, 2025
3b1bc3a
tui: scope permission events to active session family; remove cross-s…
paulbettner Sep 28, 2025
8ad8958
core: env-gated Langfuse tracing for Bus events (Node OTEL; Bun v3 fa…
paulbettner Sep 27, 2025
fcd12cb
observe: instrument message/tool/step parts with per-session tracing …
paulbettner Sep 27, 2025
46df666
observe: wrap global fetch to trace outgoing HTTP requests (skip Lang…
paulbettner Sep 27, 2025
7b05a9d
observe: switch to v4-only (Node OTel); remove v3 client and Bun fall…
paulbettner Sep 27, 2025
9eec0df
observe: add v4 Node sidecar and auto-start from server; stream SSE e…
paulbettner Sep 27, 2025
b165463
observe: auto-start v4 Node sidecar from server (worktree)
paulbettner Sep 27, 2025
f7d4428
observe: sidecar initOtel robust await of NodeSDK.start()
paulbettner Sep 27, 2025
97e4207
observe(sidecar): set correct output field and TOOL type in observati…
paulbettner Sep 27, 2025
a323b2a
observe: attach correct sessionId on all events (use info.sessionID/p…
paulbettner Sep 27, 2025
44757fd
observe(sidecar): enrich observations
paulbettner Sep 27, 2025
e652698
observe: fix duplicate variable in v4 Node instrumentation (reuse p)
paulbettner Sep 27, 2025
2f3cfa3
observe(sidecar): aggregate assistant generation I/O
paulbettner Sep 27, 2025
d75a9f7
Smarty branding: TUI/CLI logos, help banner, brand constant; caret fi…
paulbettner Sep 27, 2025
58fbe28
observability(langfuse): switch to sidecar-only v4 tracing to reliabl…
paulbettner Sep 27, 2025
7e5ffa8
fix(types): quiet in-app tracing types under langfuse-app gate and br…
paulbettner Sep 27, 2025
725f178
docs: add comprehensive README for Langfuse integration documenting a…
paulbettner Sep 27, 2025
0466bf2
Format and improve documentation
paulbettner Sep 27, 2025
93f2870
observe(sidecar): dedupe streaming text, surface reasoning, and nest …
paulbettner Sep 27, 2025
08e7202
chore: format code
actions-user Sep 27, 2025
2f189bf
fix(smartypants): sanitize history for provider input by dropping pri…
paulbettner Sep 28, 2025
2555990
docs+observe+tui: document Smarty Pants fork and land Langfuse/TUI re…
paulbettner Sep 28, 2025
d6ca1fd
chore: format code
actions-user Sep 28, 2025
6f9b93f
ignore: update download stats 2025-09-28
actions-user Sep 28, 2025
913efbe
test(snapshot): normalize macOS /private prefix for tmp paths to stab…
paulbettner Sep 29, 2025
12d0dc3
test(smartypants): fix darwin tmp paths; align file extraction; make …
paulbettner Sep 29, 2025
c4340eb
test(tool): remove unused fixturePath in smartypants tool tests
paulbettner Sep 29, 2025
d76d082
Merge remote-tracking branch 'upstream/dev' into downstream/fixes
paulbettner Sep 29, 2025
4679263
merge(upstream/dev): resolve conflicts
paulbettner Sep 29, 2025
669c65e
merge(branch): bring downstream/fixes into integration/dev-sync-2025-…
paulbettner Sep 29, 2025
3e14d3b
merge(branch): resolve conflicts from downstream/smarty (prefer dev t…
paulbettner Sep 29, 2025
93e4f7d
Merge pull request #10 from Smarty-Pants-Inc/integration/dev-sync-202…
paulbettner Sep 29, 2025
60a1980
test: align with new glob/list semantics; file path regex under Confi…
paulbettner Sep 29, 2025
d07774f
Merge pull request #11 from Smarty-Pants-Inc/fix/dev-lockfile
paulbettner Sep 29, 2025
669e937
ci(test): make turbo test work and update snapshot
paulbettner Sep 29, 2025
96c2ebb
Merge pull request #12 from Smarty-Pants-Inc/fix/dev-lockfile
paulbettner Sep 29, 2025
9c80879
test(ci): stabilize list snapshot on fixtures/example and set develop…
paulbettner Sep 29, 2025
9d697d0
Merge pull request #13 from Smarty-Pants-Inc/fix/dev-lockfile
paulbettner Sep 29, 2025
93d5a45
test(ci): avoid brittle directory tree snapshot; assert count/truncat…
paulbettner Sep 29, 2025
335f73d
Merge pull request #14 from Smarty-Pants-Inc/fix/dev-lockfile
paulbettner Sep 29, 2025
c8af608
ci(typecheck): resolve @smartypants-ai/sdk via exports by adding cust…
paulbettner Sep 29, 2025
f533d35
Merge pull request #15 from Smarty-Pants-Inc/fix/dev-lockfile
paulbettner Sep 29, 2025
039d272
ci(typecheck): add customConditions=['development'] + bundler resolut…
paulbettner Sep 29, 2025
b7fa23c
Merge pull request #16 from Smarty-Pants-Inc/fix/dev-lockfile
paulbettner Sep 29, 2025
c4c1e32
ci(typecheck): resolve workspace packages in smartypants via bundler …
paulbettner Sep 29, 2025
0116975
Merge pull request #17 from Smarty-Pants-Inc/fix/dev-lockfile
paulbettner Sep 29, 2025
5fca43e
ci: skip snapshot/deploy on forks (run only on sst/opencode)
paulbettner Sep 29, 2025
fe3b0a1
Merge pull request #18 from Smarty-Pants-Inc/fix/dev-lockfile
paulbettner Sep 29, 2025
5bd517d
ci: make guidelines-check valid and skip on forks (workflow_dispatch …
paulbettner Sep 29, 2025
77b9a5a
Merge pull request #19 from Smarty-Pants-Inc/fix/dev-lockfile
paulbettner Sep 29, 2025
51516fd
ignore: update download stats 2025-09-29
actions-user Sep 29, 2025
da3ac9e
Merge remote-tracking branch 'upstream/dev' into downstream/fixes
paulbettner Sep 29, 2025
4205e22
merge(upstream/dev): resolve conflicts
paulbettner Sep 29, 2025
010ee7f
merge(branch): bring downstream/fixes into integration/dev-merge-2025…
paulbettner Sep 30, 2025
3f209b7
merge(branch): bring downstream/smarty into integration/dev-merge-202…
paulbettner Sep 30, 2025
0f2a9c6
chore: format code
actions-user Sep 30, 2025
bcce045
Merge pull request #22 from Smarty-Pants-Inc/integration/dev-merge-20…
paulbettner Sep 30, 2025
e8a6183
docs: local wrapper commands (fork usage)
paulbettner Sep 30, 2025
9393594
Merge pull request #24 from Smarty-Pants-Inc/docs/wrappers-v2
paulbettner Sep 30, 2025
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
1 change: 1 addition & 0 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ concurrency: ${{ github.workflow }}-${{ github.ref }}

jobs:
deploy:
if: ${{ github.repository == 'sst/opencode' }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
Expand Down
4 changes: 3 additions & 1 deletion .github/workflows/guidelines-check.yml
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
name: Guidelines Check

on:
# Disabled - uncomment to re-enable
# Disabled - uncomment to re-enable PR trigger
# pull_request_target:
# types: [opened, synchronize]
workflow_dispatch:

jobs:
check-guidelines:
if: ${{ github.repository == 'sst/opencode' }}
runs-on: ubuntu-latest
permissions:
contents: read
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/snapshot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ concurrency: ${{ github.workflow }}-${{ github.ref }}

jobs:
publish:
if: ${{ github.repository == 'sst/opencode' }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
Expand Down
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,5 @@ playground
tmp
dist
.turbo

bun.lock
76 changes: 75 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<picture>
<source srcset="packages/web/src/assets/logo-ornate-dark.svg" media="(prefers-color-scheme: dark)">
<source srcset="packages/web/src/assets/logo-ornate-light.svg" media="(prefers-color-scheme: light)">
<img src="packages/web/src/assets/logo-ornate-light.svg" alt="opencode logo">
<img src="packages/web/src/assets/logo-ornate-light.svg" alt="smartypants logo">
</picture>
</a>
</p>
Expand Down Expand Up @@ -48,6 +48,38 @@ OPENCODE_INSTALL_DIR=/usr/local/bin curl -fsSL https://opencode.ai/install | bas
XDG_BIN_DIR=$HOME/.local/bin curl -fsSL https://opencode.ai/install | bash
```

### Smarty Pants Fork Enhancements

This fork adds production-oriented observability, reliability, and UX improvements tailored for Smarty Pants. Highlights:

- Langfuse Observability (Sidecar v4): End-to-end tracing wired through a lightweight Node sidecar that listens to the server’s SSE stream and emits Langfuse GENERATION/TOOL/EVENT spans.
- Server auto-starts the sidecar (env-gated via `OPENCODE_OBSERVE=langfuse`), and exposes an `/event` SSE feed.
- Session-rooted traces: One root per session; per-assistant message generations are nested for clarity.
- Output batching: Streaming deltas are aggregated and stored as a single generation output (no word-per-span noise).
- Reasoning only when present: Emits a single reasoning event only if the model returns reasoning/tokens.
- Canonical URLs: Finalized trace URL logged back to the server for downstream UIs.

- TUI Integration:
- Status bar shows a Langfuse hyperlink; right-aligned near the tab strip with padding.
- New “/trace” slash command opens the latest trace URL directly from the TUI.
- Exit reliability improvements: fixes to ensure the UI and background goroutines shut down cleanly.

- Server/CLI Reliability:
- Sidecar port fix: sidecar connects to the server’s actual bound port (works with `--port 0`).
- `/event` SSE stream logs connection/disconnect and publishes bus events.
- `run` command prints final assistant text to stdout and exits with explicit status.

- Dev Experience & Guardrails:
- Observability is opt-in via `OPENCODE_OBSERVE` gates (`langfuse` or `langfuse-app`).
- Reasonable defaults for secrets/env; clean shutdown for the sidecar (OTel `sdk.shutdown()`).

See commit history for detailed changes:

- observe(sidecar): session-rooted traces, output aggregation, reasoning gating
- server: sidecar autostart + SSE feed; port detection fixes
- tui: status bar hyperlink, `/trace` command, clean exit behavior
- cli: robust `run` printing + explicit exit codes

### Documentation

For more info on how to configure opencode [**head over to our docs**](https://opencode.ai/docs).
Expand Down Expand Up @@ -108,3 +140,45 @@ The other confusingly named repo has no relation to this one. You can [read the
---

**Join our community** [Discord](https://discord.gg/opencode) | [X.com](https://x.com/opencode)

## Smarty‑Pants: Local Wrapper Commands (Fork Usage)

In the Smarty‑Pants fork, we use two local wrapper commands that run the latest code from our worktrees in `smarty-dev`:

- `opencode-fixes` → `<repo-root>/.worktrees/opencode-fixes` (branch: `downstream/fixes`)
- `smarty` → `<repo-root>/.worktrees/opencode-smarty` (branch: `downstream/smarty`)

Wrappers live in `smarty-dev/scripts/` and are exposed on PATH via `~/.local/bin` symlinks:

```bash
ln -sf /Users/paulbettner/Projects/smarty-dev/scripts/opencode-fixes ~/.local/bin/opencode-fixes
ln -sf /Users/paulbettner/Projects/smarty-dev/scripts/smarty ~/.local/bin/smarty
```

Features:
- `--where`: print worktree, branch, and commit
- `--switch`: safely switch to the expected branch (refuses if dirty)
- ff‑only update (no `reset --hard`)

Usage:
```bash
opencode-fixes --where
smarty --where
opencode-fixes --switch
smarty --switch
opencode-fixes run "whats 2+2?" # "4" (LLM latency expected)
```

Temporarily flip to a different worktree while developing:
- Run the CLI directly from a worktree (no PATH change):
```bash
bun --cwd /Users/paulbettner/Projects/smarty-dev/.worktrees/opencode-fixes/packages/opencode ./src/index.ts …
bun --cwd /Users/paulbettner/Projects/smarty-dev/.worktrees/opencode-smarty/packages/smartypants ./src/index.ts …
```
- Or repoint the symlink temporarily (and restore afterward):
```bash
ln -sf /path/to/dev-wrapper ~/.local/bin/opencode-fixes
ln -sf /Users/paulbettner/Projects/smarty-dev/scripts/opencode-fixes ~/.local/bin/opencode-fixes
```

Tip (zsh): add `typeset -U path PATH` to `~/.zshrc` to deduplicate PATH so `which -a` doesn't repeat the same location.
186 changes: 92 additions & 94 deletions STATS.md
Original file line number Diff line number Diff line change
@@ -1,96 +1,94 @@
# Download Stats

| Date | GitHub Downloads | npm Downloads | Total |
| ---------- | ---------------- | ----------------- | ----------------- |
| 2025-06-29 | 18,789 (+0) | 39,420 (+0) | 58,209 (+0) |
| 2025-06-30 | 20,127 (+1,338) | 41,059 (+1,639) | 61,186 (+2,977) |
| 2025-07-01 | 22,108 (+1,981) | 43,745 (+2,686) | 65,853 (+4,667) |
| 2025-07-02 | 24,814 (+2,706) | 46,168 (+2,423) | 70,982 (+5,129) |
| 2025-07-03 | 27,834 (+3,020) | 49,955 (+3,787) | 77,789 (+6,807) |
| 2025-07-04 | 30,608 (+2,774) | 54,758 (+4,803) | 85,366 (+7,577) |
| 2025-07-05 | 32,524 (+1,916) | 58,371 (+3,613) | 90,895 (+5,529) |
| 2025-07-06 | 33,766 (+1,242) | 59,694 (+1,323) | 93,460 (+2,565) |
| 2025-07-08 | 38,052 (+4,286) | 64,468 (+4,774) | 102,520 (+9,060) |
| 2025-07-09 | 40,924 (+2,872) | 67,935 (+3,467) | 108,859 (+6,339) |
| 2025-07-10 | 43,796 (+2,872) | 71,402 (+3,467) | 115,198 (+6,339) |
| 2025-07-11 | 46,982 (+3,186) | 77,462 (+6,060) | 124,444 (+9,246) |
| 2025-07-12 | 49,302 (+2,320) | 82,177 (+4,715) | 131,479 (+7,035) |
| 2025-07-13 | 50,803 (+1,501) | 86,394 (+4,217) | 137,197 (+5,718) |
| 2025-07-14 | 53,283 (+2,480) | 87,860 (+1,466) | 141,143 (+3,946) |
| 2025-07-15 | 57,590 (+4,307) | 91,036 (+3,176) | 148,626 (+7,483) |
| 2025-07-16 | 62,313 (+4,723) | 95,258 (+4,222) | 157,571 (+8,945) |
| 2025-07-17 | 66,684 (+4,371) | 100,048 (+4,790) | 166,732 (+9,161) |
| 2025-07-18 | 70,379 (+3,695) | 102,587 (+2,539) | 172,966 (+6,234) |
| 2025-07-19 | 73,497 (+3,117) | 105,904 (+3,317) | 179,401 (+6,434) |
| 2025-07-20 | 76,453 (+2,956) | 109,044 (+3,140) | 185,497 (+6,096) |
| 2025-07-21 | 80,197 (+3,744) | 113,537 (+4,493) | 193,734 (+8,237) |
| 2025-07-22 | 84,251 (+4,054) | 118,073 (+4,536) | 202,324 (+8,590) |
| 2025-07-23 | 88,589 (+4,338) | 121,436 (+3,363) | 210,025 (+7,701) |
| 2025-07-24 | 92,469 (+3,880) | 124,091 (+2,655) | 216,560 (+6,535) |
| 2025-07-25 | 96,417 (+3,948) | 126,985 (+2,894) | 223,402 (+6,842) |
| 2025-07-26 | 100,646 (+4,229) | 131,411 (+4,426) | 232,057 (+8,655) |
| 2025-07-27 | 102,644 (+1,998) | 134,736 (+3,325) | 237,380 (+5,323) |
| 2025-07-28 | 105,446 (+2,802) | 136,016 (+1,280) | 241,462 (+4,082) |
| 2025-07-29 | 108,998 (+3,552) | 137,542 (+1,526) | 246,540 (+5,078) |
| 2025-07-30 | 113,544 (+4,546) | 140,317 (+2,775) | 253,861 (+7,321) |
| 2025-07-31 | 118,339 (+4,795) | 143,344 (+3,027) | 261,683 (+7,822) |
| 2025-08-01 | 123,539 (+5,200) | 146,680 (+3,336) | 270,219 (+8,536) |
| 2025-08-02 | 127,864 (+4,325) | 149,236 (+2,556) | 277,100 (+6,881) |
| 2025-08-03 | 131,397 (+3,533) | 150,451 (+1,215) | 281,848 (+4,748) |
| 2025-08-04 | 136,266 (+4,869) | 153,260 (+2,809) | 289,526 (+7,678) |
| 2025-08-05 | 141,596 (+5,330) | 155,752 (+2,492) | 297,348 (+7,822) |
| 2025-08-06 | 147,067 (+5,471) | 158,309 (+2,557) | 305,376 (+8,028) |
| 2025-08-07 | 152,591 (+5,524) | 160,889 (+2,580) | 313,480 (+8,104) |
| 2025-08-08 | 158,187 (+5,596) | 163,448 (+2,559) | 321,635 (+8,155) |
| 2025-08-09 | 162,770 (+4,583) | 165,721 (+2,273) | 328,491 (+6,856) |
| 2025-08-10 | 165,695 (+2,925) | 167,109 (+1,388) | 332,804 (+4,313) |
| 2025-08-11 | 169,297 (+3,602) | 167,953 (+844) | 337,250 (+4,446) |
| 2025-08-12 | 176,307 (+7,010) | 171,876 (+3,923) | 348,183 (+10,933) |
| 2025-08-13 | 182,997 (+6,690) | 177,182 (+5,306) | 360,179 (+11,996) |
| 2025-08-14 | 189,063 (+6,066) | 179,741 (+2,559) | 368,804 (+8,625) |
| 2025-08-15 | 193,608 (+4,545) | 181,792 (+2,051) | 375,400 (+6,596) |
| 2025-08-16 | 198,118 (+4,510) | 184,558 (+2,766) | 382,676 (+7,276) |
| 2025-08-17 | 201,299 (+3,181) | 186,269 (+1,711) | 387,568 (+4,892) |
| 2025-08-18 | 204,559 (+3,260) | 187,399 (+1,130) | 391,958 (+4,390) |
| 2025-08-19 | 209,814 (+5,255) | 189,668 (+2,269) | 399,482 (+7,524) |
| 2025-08-20 | 214,497 (+4,683) | 191,481 (+1,813) | 405,978 (+6,496) |
| 2025-08-21 | 220,465 (+5,968) | 194,784 (+3,303) | 415,249 (+9,271) |
| 2025-08-22 | 225,899 (+5,434) | 197,204 (+2,420) | 423,103 (+7,854) |
| 2025-08-23 | 229,005 (+3,106) | 199,238 (+2,034) | 428,243 (+5,140) |
| 2025-08-24 | 232,098 (+3,093) | 201,157 (+1,919) | 433,255 (+5,012) |
| 2025-08-25 | 236,607 (+4,509) | 202,650 (+1,493) | 439,257 (+6,002) |
| 2025-08-26 | 242,783 (+6,176) | 205,242 (+2,592) | 448,025 (+8,768) |
| 2025-08-27 | 248,409 (+5,626) | 205,242 (+0) | 453,651 (+5,626) |
| 2025-08-28 | 252,796 (+4,387) | 205,242 (+0) | 458,038 (+4,387) |
| 2025-08-29 | 256,045 (+3,249) | 211,075 (+5,833) | 467,120 (+9,082) |
| 2025-08-30 | 258,863 (+2,818) | 212,397 (+1,322) | 471,260 (+4,140) |
| 2025-08-31 | 262,004 (+3,141) | 213,944 (+1,547) | 475,948 (+4,688) |
| 2025-09-01 | 265,359 (+3,355) | 215,115 (+1,171) | 480,474 (+4,526) |
| 2025-09-02 | 270,483 (+5,124) | 217,075 (+1,960) | 487,558 (+7,084) |
| 2025-09-03 | 274,793 (+4,310) | 219,755 (+2,680) | 494,548 (+6,990) |
| 2025-09-04 | 280,430 (+5,637) | 222,103 (+2,348) | 502,533 (+7,985) |
| 2025-09-05 | 283,769 (+3,339) | 223,793 (+1,690) | 507,562 (+5,029) |
| 2025-09-06 | 286,245 (+2,476) | 225,036 (+1,243) | 511,281 (+3,719) |
| 2025-09-07 | 288,623 (+2,378) | 225,866 (+830) | 514,489 (+3,208) |
| 2025-09-08 | 293,341 (+4,718) | 227,073 (+1,207) | 520,414 (+5,925) |
| 2025-09-09 | 300,036 (+6,695) | 229,788 (+2,715) | 529,824 (+9,410) |
| 2025-09-10 | 307,287 (+7,251) | 233,435 (+3,647) | 540,722 (+10,898) |
| 2025-09-11 | 314,083 (+6,796) | 237,356 (+3,921) | 551,439 (+10,717) |
| 2025-09-12 | 321,046 (+6,963) | 240,728 (+3,372) | 561,774 (+10,335) |
| 2025-09-13 | 324,894 (+3,848) | 245,539 (+4,811) | 570,433 (+8,659) |
| 2025-09-14 | 328,876 (+3,982) | 248,245 (+2,706) | 577,121 (+6,688) |
| 2025-09-15 | 334,201 (+5,325) | 250,983 (+2,738) | 585,184 (+8,063) |
| 2025-09-16 | 342,609 (+8,408) | 255,264 (+4,281) | 597,873 (+12,689) |
| 2025-09-17 | 351,117 (+8,508) | 260,970 (+5,706) | 612,087 (+14,214) |
| 2025-09-18 | 358,717 (+7,600) | 266,922 (+5,952) | 625,639 (+13,552) |
| 2025-09-19 | 365,401 (+6,684) | 271,859 (+4,937) | 637,260 (+11,621) |
| 2025-09-20 | 372,092 (+6,691) | 276,917 (+5,058) | 649,009 (+11,749) |
| 2025-09-21 | 377,079 (+4,987) | 280,261 (+3,344) | 657,340 (+8,331) |
| 2025-09-22 | 382,492 (+5,413) | 284,009 (+3,748) | 666,501 (+9,161) |
| 2025-09-23 | 387,008 (+4,516) | 289,129 (+5,120) | 676,137 (+9,636) |
| 2025-09-24 | 393,325 (+6,317) | 294,927 (+5,798) | 688,252 (+12,115) |
| 2025-09-25 | 398,879 (+5,554) | 301,663 (+6,736) | 700,542 (+12,290) |
| 2025-09-26 | 404,334 (+5,455) | 306,713 (+5,050) | 711,047 (+10,505) |
| 2025-09-27 | 411,618 (+7,284) | 317,763 (+11,050) | 729,381 (+18,334) |
| 2025-09-28 | 414,910 (+3,292) | 322,522 (+4,759) | 737,432 (+8,051) |
| 2025-09-29 | 419,919 (+5,009) | 328,033 (+5,511) | 747,952 (+10,520) |
| Date | GitHub Downloads | npm Downloads | Total |
| ---------- | ----------------- | ----------------- | ----------------- |
| 2025-06-29 | 18,789 (+0) | 39,420 (+0) | 58,209 (+0) |
| 2025-06-30 | 20,127 (+1,338) | 41,059 (+1,639) | 61,186 (+2,977) |
| 2025-07-01 | 22,108 (+1,981) | 43,745 (+2,686) | 65,853 (+4,667) |
| 2025-07-02 | 24,814 (+2,706) | 46,168 (+2,423) | 70,982 (+5,129) |
| 2025-07-03 | 27,834 (+3,020) | 49,955 (+3,787) | 77,789 (+6,807) |
| 2025-07-04 | 30,608 (+2,774) | 54,758 (+4,803) | 85,366 (+7,577) |
| 2025-07-05 | 32,524 (+1,916) | 58,371 (+3,613) | 90,895 (+5,529) |
| 2025-07-06 | 33,766 (+1,242) | 59,694 (+1,323) | 93,460 (+2,565) |
| 2025-07-08 | 38,052 (+4,286) | 64,468 (+4,774) | 102,520 (+9,060) |
| 2025-07-09 | 40,924 (+2,872) | 67,935 (+3,467) | 108,859 (+6,339) |
| 2025-07-10 | 43,796 (+2,872) | 71,402 (+3,467) | 115,198 (+6,339) |
| 2025-07-11 | 46,982 (+3,186) | 77,462 (+6,060) | 124,444 (+9,246) |
| 2025-07-12 | 49,302 (+2,320) | 82,177 (+4,715) | 131,479 (+7,035) |
| 2025-07-13 | 50,803 (+1,501) | 86,394 (+4,217) | 137,197 (+5,718) |
| 2025-07-14 | 53,283 (+2,480) | 87,860 (+1,466) | 141,143 (+3,946) |
| 2025-07-15 | 57,590 (+4,307) | 91,036 (+3,176) | 148,626 (+7,483) |
| 2025-07-16 | 62,313 (+4,723) | 95,258 (+4,222) | 157,571 (+8,945) |
| 2025-07-17 | 66,684 (+4,371) | 100,048 (+4,790) | 166,732 (+9,161) |
| 2025-07-18 | 70,379 (+3,695) | 102,587 (+2,539) | 172,966 (+6,234) |
| 2025-07-19 | 73,497 (+3,117) | 105,904 (+3,317) | 179,401 (+6,434) |
| 2025-07-20 | 76,453 (+2,956) | 109,044 (+3,140) | 185,497 (+6,096) |
| 2025-07-21 | 80,197 (+3,744) | 113,537 (+4,493) | 193,734 (+8,237) |
| 2025-07-22 | 84,251 (+4,054) | 118,073 (+4,536) | 202,324 (+8,590) |
| 2025-07-23 | 88,589 (+4,338) | 121,436 (+3,363) | 210,025 (+7,701) |
| 2025-07-24 | 92,469 (+3,880) | 124,091 (+2,655) | 216,560 (+6,535) |
| 2025-07-25 | 96,417 (+3,948) | 126,985 (+2,894) | 223,402 (+6,842) |
| 2025-07-26 | 100,646 (+4,229) | 131,411 (+4,426) | 232,057 (+8,655) |
| 2025-07-27 | 102,644 (+1,998) | 134,736 (+3,325) | 237,380 (+5,323) |
| 2025-07-28 | 105,446 (+2,802) | 136,016 (+1,280) | 241,462 (+4,082) |
| 2025-07-29 | 108,998 (+3,552) | 137,542 (+1,526) | 246,540 (+5,078) |
| 2025-07-30 | 113,544 (+4,546) | 140,317 (+2,775) | 253,861 (+7,321) |
| 2025-07-31 | 118,339 (+4,795) | 143,344 (+3,027) | 261,683 (+7,822) |
| 2025-08-01 | 123,539 (+5,200) | 146,680 (+3,336) | 270,219 (+8,536) |
| 2025-08-02 | 127,864 (+4,325) | 149,236 (+2,556) | 277,100 (+6,881) |
| 2025-08-03 | 131,397 (+3,533) | 150,451 (+1,215) | 281,848 (+4,748) |
| 2025-08-04 | 136,266 (+4,869) | 153,260 (+2,809) | 289,526 (+7,678) |
| 2025-08-05 | 141,596 (+5,330) | 155,752 (+2,492) | 297,348 (+7,822) |
| 2025-08-06 | 147,067 (+5,471) | 158,309 (+2,557) | 305,376 (+8,028) |
| 2025-08-07 | 152,591 (+5,524) | 160,889 (+2,580) | 313,480 (+8,104) |
| 2025-08-08 | 158,187 (+5,596) | 163,448 (+2,559) | 321,635 (+8,155) |
| 2025-08-09 | 162,770 (+4,583) | 165,721 (+2,273) | 328,491 (+6,856) |
| 2025-08-10 | 165,695 (+2,925) | 167,109 (+1,388) | 332,804 (+4,313) |
| 2025-08-11 | 169,297 (+3,602) | 167,953 (+844) | 337,250 (+4,446) |
| 2025-08-12 | 176,307 (+7,010) | 171,876 (+3,923) | 348,183 (+10,933) |
| 2025-08-13 | 182,997 (+6,690) | 177,182 (+5,306) | 360,179 (+11,996) |
| 2025-08-14 | 189,063 (+6,066) | 179,741 (+2,559) | 368,804 (+8,625) |
| 2025-08-15 | 193,608 (+4,545) | 181,792 (+2,051) | 375,400 (+6,596) |
| 2025-08-16 | 198,118 (+4,510) | 184,558 (+2,766) | 382,676 (+7,276) |
| 2025-08-17 | 201,299 (+3,181) | 186,269 (+1,711) | 387,568 (+4,892) |
| 2025-08-18 | 204,559 (+3,260) | 187,399 (+1,130) | 391,958 (+4,390) |
| 2025-08-19 | 209,814 (+5,255) | 189,668 (+2,269) | 399,482 (+7,524) |
| 2025-08-20 | 214,497 (+4,683) | 191,481 (+1,813) | 405,978 (+6,496) |
| 2025-08-21 | 220,465 (+5,968) | 194,784 (+3,303) | 415,249 (+9,271) |
| 2025-08-22 | 225,899 (+5,434) | 197,204 (+2,420) | 423,103 (+7,854) |
| 2025-08-23 | 229,005 (+3,106) | 199,238 (+2,034) | 428,243 (+5,140) |
| 2025-08-24 | 232,098 (+3,093) | 201,157 (+1,919) | 433,255 (+5,012) |
| 2025-08-25 | 236,607 (+4,509) | 202,650 (+1,493) | 439,257 (+6,002) |
| 2025-08-26 | 242,783 (+6,176) | 205,242 (+2,592) | 448,025 (+8,768) |
| 2025-08-27 | 248,409 (+5,626) | 205,242 (+0) | 453,651 (+5,626) |
| 2025-08-28 | 252,796 (+4,387) | 205,242 (+0) | 458,038 (+4,387) |
| 2025-08-29 | 256,045 (+3,249) | 211,075 (+5,833) | 467,120 (+9,082) |
| 2025-08-30 | 258,863 (+2,818) | 212,397 (+1,322) | 471,260 (+4,140) |
| 2025-08-31 | 262,004 (+3,141) | 213,944 (+1,547) | 475,948 (+4,688) |
| 2025-09-01 | 265,359 (+3,355) | 215,115 (+1,171) | 480,474 (+4,526) |
| 2025-09-02 | 270,483 (+5,124) | 217,075 (+1,960) | 487,558 (+7,084) |
| 2025-09-03 | 274,793 (+4,310) | 219,755 (+2,680) | 494,548 (+6,990) |
| 2025-09-04 | 280,430 (+5,637) | 222,103 (+2,348) | 502,533 (+7,985) |
| 2025-09-05 | 283,769 (+3,339) | 223,793 (+1,690) | 507,562 (+5,029) |
| 2025-09-06 | 286,245 (+2,476) | 225,036 (+1,243) | 511,281 (+3,719) |
| 2025-09-07 | 288,623 (+2,378) | 225,866 (+830) | 514,489 (+3,208) |
| 2025-09-08 | 293,341 (+4,718) | 227,073 (+1,207) | 520,414 (+5,925) |
| 2025-09-09 | 300,036 (+6,695) | 229,788 (+2,715) | 529,824 (+9,410) |
| 2025-09-10 | 307,287 (+7,251) | 233,435 (+3,647) | 540,722 (+10,898) |
| 2025-09-11 | 314,083 (+6,796) | 237,356 (+3,921) | 551,439 (+10,717) |
| 2025-09-12 | 321,046 (+6,963) | 240,728 (+3,372) | 561,774 (+10,335) |
| 2025-09-13 | 324,894 (+3,848) | 245,539 (+4,811) | 570,433 (+8,659) |
| 2025-09-14 | 328,876 (+3,982) | 248,245 (+2,706) | 577,121 (+6,688) |
| 2025-09-15 | 334,201 (+5,325) | 250,983 (+2,738) | 585,184 (+8,063) |
| 2025-09-16 | 342,609 (+8,408) | 255,264 (+4,281) | 597,873 (+12,689) |
| 2025-09-17 | 351,117 (+8,508) | 260,970 (+5,706) | 612,087 (+14,214) |
| 2025-09-18 | 358,717 (+7,600) | 266,922 (+5,952) | 625,639 (+13,552) |
| 2025-09-19 | 365,401 (+6,684) | 271,859 (+4,937) | 637,260 (+11,621) |
| 2025-09-20 | 372,092 (+6,691) | 276,917 (+5,058) | 649,009 (+11,749) |
| 2025-09-21 | 377,079 (+4,987) | 280,261 (+3,344) | 657,340 (+8,331) |
| 2025-09-22 | 382,492 (+5,413) | 284,009 (+3,748) | 666,501 (+9,161) |
| 2025-09-23 | 387,008 (+4,516) | 289,129 (+5,120) | 676,137 (+9,636) |
| 2025-09-24 | 393,325 (+6,317) | 294,927 (+5,798) | 688,252 (+12,115) |
| 2025-09-25 | 398,879 (+5,554) | 301,663 (+6,736) | 700,542 (+12,290) |
| 2025-09-28 | 414,973 (+16,094) | 322,522 (+20,859) | 737,495 (+36,953) |
| 2025-09-29 | 420,173 (+5,200) | 328,033 (+5,511) | 748,206 (+10,711) |
Loading