code-context-control 2.49.1__py3-none-any.whl → 2.49.2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
cli/commands/parser.py CHANGED
@@ -9,8 +9,12 @@ def build_parser(version: str, parse_cli_ide_arg):
9
9
  parser = argparse.ArgumentParser(
10
10
  prog="c3",
11
11
  description="Claude Code Companion - Reduce token usage with local intelligence",
12
+ epilog="Support C3 development: https://github.com/sponsors/drknowhow",
13
+ )
14
+ parser.add_argument(
15
+ "--version", "-v", action="version",
16
+ version=f"c3 version {version} | support C3: https://github.com/sponsors/drknowhow",
12
17
  )
13
- parser.add_argument("--version", "-v", action="version", version=f"c3 version {version}")
14
18
  subparsers = parser.add_subparsers(dest="command")
15
19
 
16
20
  p_init = subparsers.add_parser("init", help="Initialize C3 for a project")
cli/guide/bitbucket.html CHANGED
@@ -79,6 +79,7 @@
79
79
  <a href="tools.html">Tools</a>
80
80
  <a href="bitbucket.html" class="active">Bitbucket</a>
81
81
  <a href="oracle.html">Oracle</a>
82
+ <a href="https://github.com/sponsors/drknowhow" target="_blank" rel="noopener" style="color:#EA4AAA">&#9829; Sponsor</a>
82
83
  </nav>
83
84
  <span class="header-version">v2.30.0</span>
84
85
  </header>
@@ -22,6 +22,7 @@
22
22
  <a href="tools.html">Tools</a>
23
23
  <a href="bitbucket.html">Bitbucket</a>
24
24
  <a href="oracle.html">Oracle</a>
25
+ <a href="https://github.com/sponsors/drknowhow" target="_blank" rel="noopener" style="color:#EA4AAA">&#9829; Sponsor</a>
25
26
  </nav>
26
27
  <span class="header-version">v2.x</span>
27
28
  </header>
cli/guide/index.html CHANGED
@@ -224,6 +224,7 @@
224
224
  <a href="tools.html">Tools</a>
225
225
  <a href="bitbucket.html">Bitbucket</a>
226
226
  <a href="oracle.html">Oracle</a>
227
+ <a href="https://github.com/sponsors/drknowhow" target="_blank" rel="noopener" style="color:#EA4AAA">&#9829; Sponsor</a>
227
228
  </nav>
228
229
  <span class="header-version">v2.x</span>
229
230
  </header>
cli/guide/oracle.html CHANGED
@@ -77,6 +77,7 @@
77
77
  <a href="tools.html">Tools</a>
78
78
  <a href="bitbucket.html">Bitbucket</a>
79
79
  <a href="oracle.html" class="active">Oracle</a>
80
+ <a href="https://github.com/sponsors/drknowhow" target="_blank" rel="noopener" style="color:#EA4AAA">&#9829; Sponsor</a>
80
81
  </nav>
81
82
  <span class="header-version">v2.32.0</span>
82
83
  </header>
cli/guide/tools.html CHANGED
@@ -81,6 +81,7 @@
81
81
  <a href="tools.html" class="active">Tools</a>
82
82
  <a href="bitbucket.html">Bitbucket</a>
83
83
  <a href="oracle.html">Oracle</a>
84
+ <a href="https://github.com/sponsors/drknowhow" target="_blank" rel="noopener" style="color:#EA4AAA">&#9829; Sponsor</a>
84
85
  </nav>
85
86
  <span class="header-version">v2.x</span>
86
87
  </header>
cli/guide/workflow.html CHANGED
@@ -224,6 +224,7 @@
224
224
  <a href="tools.html">Tools</a>
225
225
  <a href="bitbucket.html">Bitbucket</a>
226
226
  <a href="oracle.html">Oracle</a>
227
+ <a href="https://github.com/sponsors/drknowhow" target="_blank" rel="noopener" style="color:#EA4AAA">&#9829; Sponsor</a>
227
228
  </nav>
228
229
  <span class="header-version">v2.x</span>
229
230
  </header>
@@ -64,6 +64,9 @@ function TopBar({ version, activeCount, darkMode, hubConfig, mainView, setMainVi
64
64
  <a href="/guide/" target="_blank" rel="noopener" title="Open the C3 guide" style={ctrl}>
65
65
  <I name="fileText" size={13} color={T.textMuted} />
66
66
  </a>
67
+ <a href="https://github.com/sponsors/drknowhow" target="_blank" rel="noopener" title="Sponsor C3 development" style={ctrl}>
68
+ <I name="heart" size={13} color="#EA4AAA" />
69
+ </a>
67
70
  {hubConfig && hubConfig.oracle_url && (
68
71
  <a href={hubConfig.oracle_url} target="_blank" rel="noopener" title="Open Oracle" style={ctrl}>
69
72
  <I name="external" size={13} color={T.textMuted} />
cli/ui/app.js CHANGED
@@ -1,5 +1,5 @@
1
1
  // ─── Main App ─────────────────────────────
2
- const BUILD_TIME = "2026-04-10 UI-v2";
2
+ const BUILD_TIME = "2026-07-02 UI-v2";
3
3
  const { useState, useEffect, useCallback, useRef } = React;
4
4
 
5
5
  const tabs = [
@@ -191,6 +191,14 @@ function App() {
191
191
  }}>
192
192
  Ledger
193
193
  </a>
194
+ <a href="https://github.com/sponsors/drknowhow" target="_blank" rel="noopener" title="Sponsor C3 development"
195
+ style={{
196
+ width: 28, height: 28, borderRadius: 6, border: "1px solid #EA4AAA40",
197
+ background: "#EA4AAA12", textDecoration: "none", display: "flex",
198
+ alignItems: "center", justifyContent: "center"
199
+ }}>
200
+ <I name="heart" size={13} color="#EA4AAA" />
201
+ </a>
194
202
  <button onClick={() => setDarkMode(!darkMode)} title="Toggle theme"
195
203
  style={{
196
204
  width: 28, height: 28, borderRadius: 6, border: `1px solid ${T.border}`,
cli/ui/icons.js CHANGED
@@ -18,6 +18,7 @@ const icons = {
18
18
  refresh: "M1 4v6h6M23 20v-6h-6M20.49 9A9 9 0 0 0 5.64 5.64L1 10m22 4l-4.64 4.36A9 9 0 0 1 3.51 15",
19
19
  copy: "M20 9h-9a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h9a2 2 0 0 0 2-2v-9a2 2 0 0 0-2-2zM5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1",
20
20
  check: "M20 6L9 17l-5-5",
21
+ heart: "M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z",
21
22
  layers: "M12 2l10 6.5v7L12 22 2 15.5v-7zM12 22v-7M22 8.5l-10 7-10-7",
22
23
  brain: "M12 2a7 7 0 0 0-7 7c0 3 2 5.5 5 7v4h4v-4c3-1.5 5-4 5-7a7 7 0 0 0-7-7z",
23
24
  chevron: "M9 18l6-6-6-6",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: code-context-control
3
- Version: 2.49.1
3
+ Version: 2.49.2
4
4
  Summary: Local code-intelligence layer for AI coding tools (Claude Code, Codex, Gemini, Copilot). Retrieve less, read less, edit safer — and version the configs that shape your agent (CLAUDE.md, skills, hooks, MCP).
5
5
  Author-email: Dimitri Tselenchuk <dtselenc@gmail.com>
6
6
  License-Expression: Apache-2.0
@@ -9,6 +9,7 @@ Project-URL: Documentation, https://github.com/drknowhow/code-context-control#re
9
9
  Project-URL: Repository, https://github.com/drknowhow/code-context-control
10
10
  Project-URL: Changelog, https://github.com/drknowhow/code-context-control/blob/main/CHANGELOG.md
11
11
  Project-URL: Issues, https://github.com/drknowhow/code-context-control/issues
12
+ Project-URL: Funding, https://github.com/sponsors/drknowhow
12
13
  Keywords: claude,claude-code,mcp,ai,code-intelligence,code-context,developer-tools,llm-tools
13
14
  Classifier: Development Status :: 4 - Beta
14
15
  Classifier: Intended Audience :: Developers
@@ -74,6 +75,7 @@ Dynamic: license-file
74
75
  <img alt="Python 3.10+" src="https://img.shields.io/badge/python-3.10%2B-blue.svg">
75
76
  <img alt="Platforms" src="https://img.shields.io/badge/platform-windows%20%7C%20macos%20%7C%20linux-lightgrey">
76
77
  <img alt="Status: Beta" src="https://img.shields.io/badge/status-beta-yellow">
78
+ <a href="https://github.com/sponsors/drknowhow"><img alt="Sponsor" src="https://img.shields.io/badge/sponsor-%E2%9D%A4-EA4AAA?logo=githubsponsors&logoColor=white"></a>
77
79
  </p>
78
80
 
79
81
  <p align="center">
@@ -423,6 +425,12 @@ Reports include token deltas, cost deltas, win rates, tool-usage analysis, and p
423
425
 
424
426
  ---
425
427
 
428
+ ## Support C3
429
+
430
+ C3 is free, open source, and built by one person. If it saves you tokens (it should — that's the whole point), consider [sponsoring on GitHub](https://github.com/sponsors/drknowhow). Sponsorship directly funds API costs for cross-model test runs and dedicated development time.
431
+
432
+ ---
433
+
426
434
  ## License
427
435
 
428
436
  - **Current OSS license** — Apache License 2.0 ([`LICENSE`](LICENSE)). Free for any use, including commercial. Modify, fork, redistribute — all permitted under Apache-2.0 terms.
@@ -440,3 +448,4 @@ The author may introduce a paid offering or relicense future major versions; no
440
448
  - **Security policy:** [`SECURITY.md`](SECURITY.md)
441
449
  - **Licensing FAQ:** [`LICENSING.md`](LICENSING.md)
442
450
  - **Issues:** https://github.com/drknowhow/code-context-control/issues
451
+ - **Sponsor:** https://github.com/sponsors/drknowhow
@@ -27,14 +27,14 @@ cli/ui_legacy.html,sha256=cI8tC6RKmE2NIJOcsu7CY-zT4VznjcbD6NTjxb_fvUY,378460
27
27
  cli/ui_nano.html,sha256=UAwQ6bbTOXAoGq191AZ7slhngR9edJSa3IhqpynveDg,27740
28
28
  cli/commands/__init__.py,sha256=0Z8MABNzwSFJGT4Xv9R5AJVR8XxraTsuVTz5b0bShmo,38
29
29
  cli/commands/common.py,sha256=fHZWzkd4OLl3vPWTTgaI5vaqMi3Ma3XqAu1Ds_-51_4,11299
30
- cli/commands/parser.py,sha256=inkJuMro1kkpKj8lpiWRlNYPQ_DC4REF-m6Ut1CAkmA,25355
31
- cli/guide/bitbucket.html,sha256=5HrLDm6Ue-AJZ81bqWaSp2nSfxaRdEjHFY29P7plLXA,33350
32
- cli/guide/getting-started.html,sha256=F3AaF2HVfeg6eKO25p_vPogr_i1hvkjIZVggIJFWTl0,18829
33
- cli/guide/index.html,sha256=XIpgQN0XbLJzL-Atou65NU5Irj_I-w4mbERU9WfZJ0E,21223
34
- cli/guide/oracle.html,sha256=KuPd8Pf3qH0fNR6boDAhZuVJV7nR8Al9jv6I_M9zrL8,22087
30
+ cli/commands/parser.py,sha256=aiB73vED8Ryax7c8BuCYo7YiSdZ4Q1YAHPY0mhUhNVE,25510
31
+ cli/guide/bitbucket.html,sha256=9vN1VPLmvTLrkqDSrqKmuy7z3BHEmQusY1jkAG0FjnI,33477
32
+ cli/guide/getting-started.html,sha256=vTcy-1vKP2NgsI-r-wopx18-Uo_IN5d7oJOBf9OXvjA,18956
33
+ cli/guide/index.html,sha256=mUDUBX590TTappvrKT7_eXi0P8G-3YvHjGk9pCcwWzQ,21350
34
+ cli/guide/oracle.html,sha256=3HSyPB25mH83IwUeKjetykSOK0jwcui7OJkFoJLLWjg,22214
35
35
  cli/guide/shared.css,sha256=Mmm7W6aYxrkDq2RPOcyXiQFYGR-yB3auwX1uIWi6C74,15967
36
- cli/guide/tools.html,sha256=vIghEraZVfBVnzBsv-tZTYbjXRnbwUx-SSE0VPej_2s,74595
37
- cli/guide/workflow.html,sha256=Hq8u2fKE7PTfoS1FF6Hc21egbCnFZ0vuJKX1jD1oPQY,52011
36
+ cli/guide/tools.html,sha256=_5iq50nWDFbS9L295SqoCIxS4uPQCqDF7w7yq-klLY4,74722
37
+ cli/guide/workflow.html,sha256=AXskNK_MJk7ygDM12MmXn1FzdOJnLKwKpbIDzemoKCc,52138
38
38
  cli/hub_ui/app.js,sha256=sumBGtIOiChqmYn1biPU-Ex89YDffdv3rKbckIf3NHo,6191
39
39
  cli/hub_ui/state.js,sha256=-lQ5GceV0QkrlsL0T0h60nEKK65Hi3BeY3nRcITwARE,5779
40
40
  cli/hub_ui/components/add_project.js,sha256=j5m0mX0gePcEYQW_0vodJkw5v8Vn2lQqPAI0miIGdv4,3182
@@ -55,7 +55,7 @@ cli/hub_ui/components/sidebar.js,sha256=RH0OlqCINFNCIXgns-wgge5gG8vkn5wyfRT87qdm
55
55
  cli/hub_ui/components/summary_bar.js,sha256=JnMq01Oum8DwwUOhFnX5mr8K7I-ERdPlbaBOR8QT72o,2993
56
56
  cli/hub_ui/components/task_board.js,sha256=UVm73TIBkSEeEFuJAv9Kwr0TzIjjgdACiq0rd3UKj2g,12579
57
57
  cli/hub_ui/components/toasts.js,sha256=Q3vJIkGOxPwGpppcgDlTH0D8t6m59yh3_nqPDVg_GQk,3008
58
- cli/hub_ui/components/topbar.js,sha256=4NMRdm9E_sUQRCuegtH4Kt1Lm__81XoBVc3LKzaaNi8,4145
58
+ cli/hub_ui/components/topbar.js,sha256=NB4h8W-M5FexGZsBCvFfl7EBgCKI253soo1ZcmoppxA,4345
59
59
  cli/tools/__init__.py,sha256=HO6eVKzDm1KPqsKTHY6lfIsnFnv3C7Bd9o3Q_V88idg,127
60
60
  cli/tools/_helpers.py,sha256=lv6Bxeh_pseDXCJ4trKn0cpzPSxdb7AYjMmtSrjqkbQ,5858
61
61
  cli/tools/agent.py,sha256=fdt5kmw9O-AEKlYaij-PPmCJ4sI7bmdej56V4NGWaqI,48145
@@ -78,8 +78,8 @@ cli/tools/status.py,sha256=mK2840JMQkJkbHGQU0f2Epr-vmkXwQKUzqmMVeOYu-0,14913
78
78
  cli/tools/tasks.py,sha256=2WREYtyLOxQmDXv5wr1C8Atfbky6WiXkZOaMwXxpFTs,11738
79
79
  cli/tools/validate.py,sha256=3GaYP9Kntep2SqKiAChUQxySWp1B-X3EuawUtIUQR40,12891
80
80
  cli/ui/api.js,sha256=Q70MyYyRIKS42ukHgmegEXQLyg-ffYoM9Lc87mS_F7o,1457
81
- cli/ui/app.js,sha256=qGdlyx2NHAvIZiJzEFiVnu0YHmJv1pDcKlb79THPgFc,8933
82
- cli/ui/icons.js,sha256=IuEuaOYICRORElk9SIkfmmQTPklQM10ihIbPP2hZJAQ,4816
81
+ cli/ui/app.js,sha256=gWYLvGcrNL5TBEpXg9UlaBT-vxgY90i-CT3nuNsRCE0,9404
82
+ cli/ui/icons.js,sha256=0fLmN2fvbKylkmCYb7R5rK5t1LA5oPH1PNmxH5QEqT0,4965
83
83
  cli/ui/pm_shared.js,sha256=lRUfBHU1vv1Qezudb9xesa07auc1UuHuHx7iAlx7WIQ,2825
84
84
  cli/ui/shared.js,sha256=iijHbM1lQh2F1pkHk9vKI21in3ppjLo7C0FjMwCcB6I,6077
85
85
  cli/ui/theme.js,sha256=46U7dWJNQVZ4RpTo73TLQAGS_nHUDZTpsO_iRliQLyk,929
@@ -93,7 +93,7 @@ cli/ui/components/sessions.js,sha256=FIKtil76B8tCkAmcFV7hlj6GQ_DCJK2jCzvEmdK7NBE
93
93
  cli/ui/components/settings.js,sha256=8LVTV2TQl9tcRXhXbtBEJOCBdiyk-x2QASoVYZUAuEA,71442
94
94
  cli/ui/components/sidebar.js,sha256=cAY_jwYB-o1X_wWn__VXlG4IegVObuE3NmVsuFWqxtg,7417
95
95
  cli/ui/components/tasks.js,sha256=OxLhspzzEQjxxtSEpOpugO2KptD4xNrimf_xM0wiVv8,12752
96
- code_context_control-2.49.1.dist-info/licenses/LICENSE,sha256=l8Kh5QCNWNvR6kIt8L0BUZvc2LAFiHv2c-FnsGnUZf4,11301
96
+ code_context_control-2.49.2.dist-info/licenses/LICENSE,sha256=l8Kh5QCNWNvR6kIt8L0BUZvc2LAFiHv2c-FnsGnUZf4,11301
97
97
  core/__init__.py,sha256=TSDCEcM4V7gcZVM3w2ykJaqEUch4Dkon-rivV17T73s,2501
98
98
  core/config.py,sha256=9R8bIcHhjSPdrfcCeMPnS4YgLCyRNWwlt_Z75PZcBDE,14780
99
99
  core/ide.py,sha256=9LzsDVK2LL8RVpL40l6oNGiasZ3D8OCU_9i9A0gJKBo,6876
@@ -103,7 +103,7 @@ oracle/__init__.py,sha256=-OTD7Jh4mUMA4QgPGthPLWXttgZLpkIPhGQ87ZfHBx0,63
103
103
  oracle/config.py,sha256=4geiSXhwXbKvy2EaKibKxpg8DgUVJWkNeSMcpQFOo_s,3913
104
104
  oracle/mcp_oracle.py,sha256=B5B-qSxi37outsuRHn1Ns6Gj8e7W593rmL34LMzuE8M,8980
105
105
  oracle/oracle_server.py,sha256=zDywXKQC8Yxq8HrwpBEIJvanr-OKkO62eQZCVGGKcTI,41589
106
- oracle/oracle_ui.html,sha256=qML_m7GY-iPEhQOiczDd8T6IEVtqcrjwEoudK9f9C5U,68441
106
+ oracle/oracle_ui.html,sha256=uSNYzKTRybvDs_P5p-biU3yOJGykNBcyCp-1TCxs0yg,68629
107
107
  oracle/services/__init__.py,sha256=Nb4POd1_YIwLVYsGfr-DiK-iKTelkU0fh9m7wjeLQHA,23
108
108
  oracle/services/activity_reporter.py,sha256=ZAxNFyUy7QRP28anQLRbKEwm5SGG97KIQYFQDLjYqlM,11729
109
109
  oracle/services/api_auth.py,sha256=1PW3pG--1DJb_F6qMhP3gBTYHxxPE2bsHmVmIhC81Y8,3566
@@ -203,7 +203,7 @@ services/bench/external/aider_polyglot.py,sha256=VkkPaDW5TOd_-J7ApVAtik76p0uY2Cf
203
203
  services/bench/external/swe_bench.py,sha256=wZs_9Gr0oT-AdcsOFyh7q3yVye1aj6nL7-l8vsiwRgk,18151
204
204
  tui/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
205
205
  tui/backend.py,sha256=AzuE6DXVi2e_8TZ-Qpdc0CVv-pJL-2FcfLGHh8iUs-g,1473
206
- tui/main.py,sha256=Jye2IrJ_ee5iEjoe7P-zAPb7LNIIjVLGpO5Uinbsa-o,5578
206
+ tui/main.py,sha256=qsIqY_Oxo1djRH4w-qvTpYSwvbqDJ-UyFyYrMwP9F7w,5770
207
207
  tui/theme.tcss,sha256=NZMHd0HVQxP1hoBPofkdImCNI0b2VGnYxvrnVgrGGXo,6251
208
208
  tui/screens/__init__.py,sha256=1bT6VPgszr0gnPJGrDPFwN_2ZH74btZqwbiQTzrd9js,15
209
209
  tui/screens/benchmark_view.py,sha256=-M9TBQKvviZp_DfD9fne0-VO1m7L1RBLLUrODi3tt0g,4470
@@ -219,8 +219,8 @@ tui/screens/search_view.py,sha256=MMHjVdlk3HZSuDBSvq8IGrqv_Mh5Us6YqXQ80bcWSMk,19
219
219
  tui/screens/session_view.py,sha256=eZ1eDwHTvPOck1wCCviixtOaCxIkBT_95ytNNNriGNA,5991
220
220
  tui/screens/stats.py,sha256=p81PjzdaIv7hllb8f45-rlVe4lJZwSdIMqu7e86_u5s,6223
221
221
  tui/screens/ui_view.py,sha256=1QJCgLh2YfgWIpvzRG1KOGXYEaOYX6ojN61Azjf2oX0,2125
222
- code_context_control-2.49.1.dist-info/METADATA,sha256=nYHYs-fLmzcaQ-VP7YRq7MKu6r9i4fnq3rEPCVlx5UU,23785
223
- code_context_control-2.49.1.dist-info/WHEEL,sha256=aeYiig01lYGDzBgS8HxWXOg3uV61G9ijOsup-k9o1sk,91
224
- code_context_control-2.49.1.dist-info/entry_points.txt,sha256=7kX_WUsDCF2hbXzvbNyscyaBb9AeA-DJY5v_5hN0DlU,93
225
- code_context_control-2.49.1.dist-info/top_level.txt,sha256=wRt41zBybVF3qAiNXHz9BURbkKvUvfhmWWtKMhaw6eE,29
226
- code_context_control-2.49.1.dist-info/RECORD,,
222
+ code_context_control-2.49.2.dist-info/METADATA,sha256=sjs_CXZq5EB_laB6l6Uz0kXUFxLaEJT7Bzfer1f5BPU,24369
223
+ code_context_control-2.49.2.dist-info/WHEEL,sha256=aeYiig01lYGDzBgS8HxWXOg3uV61G9ijOsup-k9o1sk,91
224
+ code_context_control-2.49.2.dist-info/entry_points.txt,sha256=7kX_WUsDCF2hbXzvbNyscyaBb9AeA-DJY5v_5hN0DlU,93
225
+ code_context_control-2.49.2.dist-info/top_level.txt,sha256=wRt41zBybVF3qAiNXHz9BURbkKvUvfhmWWtKMhaw6eE,29
226
+ code_context_control-2.49.2.dist-info/RECORD,,
oracle/oracle_ui.html CHANGED
@@ -827,6 +827,7 @@
827
827
  </div>
828
828
  </div>
829
829
  </div>
830
+ <a class="header-btn" href="https://github.com/sponsors/drknowhow" target="_blank" rel="noopener" title="Sponsor C3 development"><span style="color:#EA4AAA">&#9829;</span> Sponsor</a>
830
831
  <a class="header-btn" id="hubLink" href="#" target="_blank" style="display:none">Open Hub</a>
831
832
  <button class="header-btn" id="themeToggle" onclick="toggleTheme()">Theme: Dark</button>
832
833
  </div>
tui/main.py CHANGED
@@ -21,6 +21,7 @@ class C3App(App):
21
21
  Binding("q", "quit", "Quit", show=True),
22
22
  Binding("tab", "toggle_focus", "Focus: NAV/CONTENT", show=True),
23
23
  Binding("ctrl+t", "toggle_theme", "Theme", show=True),
24
+ Binding("s", "sponsor", "Sponsor \u2665", show=True),
24
25
  ]
25
26
 
26
27
  def compose(self) -> ComposeResult:
@@ -71,6 +72,10 @@ class C3App(App):
71
72
  else:
72
73
  nav_list.focus()
73
74
 
75
+ def action_sponsor(self) -> None:
76
+ import webbrowser
77
+ webbrowser.open("https://github.com/sponsors/drknowhow")
78
+
74
79
  def action_toggle_theme(self) -> None:
75
80
  if self.theme_mode == "dark":
76
81
  self.theme_mode = "light"