@crystalplatforms/adm 0.2.3 → 0.3.0

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.
Files changed (89) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +154 -161
  3. package/bin/adm +18 -21
  4. package/package.json +9 -22
  5. package/scripts/completion/adm.bash +12 -55
  6. package/scripts/completion/adm.zsh +21 -58
  7. package/scripts/install.js +8 -8
  8. package/src/commands/config.js +66 -0
  9. package/src/commands/dotfiles.js +49 -32
  10. package/src/commands/feedback.js +12 -0
  11. package/src/commands/help.js +33 -0
  12. package/src/commands/uninstall.js +73 -54
  13. package/src/commands/version.js +7 -0
  14. package/src/commands.js +26 -0
  15. package/src/config/index.js +32 -32
  16. package/src/data/extensions.json +358 -358
  17. package/src/engines.js +38 -0
  18. package/src/install/executor.js +263 -0
  19. package/src/install/hints.js +94 -0
  20. package/src/install/npm-prefix.js +110 -0
  21. package/src/install/plan.js +75 -0
  22. package/src/install/report.js +46 -0
  23. package/src/install/run.js +88 -0
  24. package/src/install/shell-paths.js +129 -0
  25. package/src/legacy-cleanup.js +96 -0
  26. package/src/pkg/builders.js +220 -0
  27. package/src/pkg/managers.js +59 -0
  28. package/src/pkg/package-names.js +229 -0
  29. package/src/pkg/script-urls.js +100 -0
  30. package/src/platform/index.js +129 -0
  31. package/src/platform/os-release.js +27 -0
  32. package/src/platform/shell.js +111 -0
  33. package/src/reports.js +37 -0
  34. package/src/router.js +157 -0
  35. package/src/setup/catalog.js +13 -13
  36. package/src/setup/git-step.js +128 -0
  37. package/src/setup/loader.js +108 -0
  38. package/src/setup/prompts.js +259 -0
  39. package/src/setup/registry.js +48 -0
  40. package/src/setup/spinner.js +67 -0
  41. package/src/setup/wizard.js +319 -195
  42. package/src/upgrade/index.js +499 -0
  43. package/src/utils/closest-match.js +36 -0
  44. package/src/utils/dotfiles-sync.js +89 -89
  45. package/src/utils/file-conflict-handler.js +30 -30
  46. package/bin/adm-tui +0 -13
  47. package/src/ai/knowledge.js +0 -61
  48. package/src/commands/connect.js +0 -76
  49. package/src/commands/issue.js +0 -80
  50. package/src/commands/pr.js +0 -55
  51. package/src/commands/theme.js +0 -103
  52. package/src/commands/upgrade.js +0 -114
  53. package/src/installer/git-config.js +0 -34
  54. package/src/installer/node-installer.js +0 -50
  55. package/src/installer/package-manager-installer.js +0 -31
  56. package/src/installer/ssh-setup.js +0 -31
  57. package/src/installer/system-packages.js +0 -49
  58. package/src/installers/index.js +0 -66
  59. package/src/integrations/ai-backend.js +0 -60
  60. package/src/integrations/ai-providers/registry.js +0 -261
  61. package/src/integrations/github.js +0 -107
  62. package/src/integrations/gitlab.js +0 -121
  63. package/src/plugins/context.js +0 -64
  64. package/src/plugins/loader.js +0 -50
  65. package/src/plugins/runner.js +0 -25
  66. package/src/setup/installer.js +0 -192
  67. package/src/shell/detector.js +0 -10
  68. package/src/tui/app-state.js +0 -374
  69. package/src/tui/app.js +0 -442
  70. package/src/tui/autocomplete.js +0 -57
  71. package/src/tui/commands/registry.js +0 -823
  72. package/src/tui/components/SetupScreen.js +0 -292
  73. package/src/ui/animations.js +0 -24
  74. package/src/ui/spinner.js +0 -34
  75. package/src/ui/theme/cyberpunk.js +0 -14
  76. package/src/ui/theme/dark.js +0 -14
  77. package/src/ui/theme/forest.js +0 -14
  78. package/src/ui/theme/light.js +0 -14
  79. package/src/ui/theme/monokai.js +0 -14
  80. package/src/ui/theme/nord.js +0 -14
  81. package/src/ui/theme.js +0 -49
  82. package/src/utils/command-history.js +0 -43
  83. package/src/utils/error-handler.js +0 -69
  84. package/src/utils/fuzzy-search.js +0 -20
  85. package/src/utils/github-error-handler.js +0 -26
  86. package/src/utils/keychain.js +0 -97
  87. package/src/utils/open-url.js +0 -15
  88. package/src/utils/terminal-detection.js +0 -26
  89. package/src/utils/token-encryption.js +0 -96
@@ -1,358 +1,358 @@
1
- {
2
- "categories": [
3
- {
4
- "id": "js-ts",
5
- "name": "JavaScript / TypeScript",
6
- "icon": "🟨",
7
- "tools": [
8
- { "id": "node", "name": "Node.js", "installMethod": "nvm" },
9
- { "id": "npm", "name": "npm", "installMethod": "node" },
10
- { "id": "yarn", "name": "Yarn", "installMethod": "npm" },
11
- { "id": "pnpm", "name": "pnpm", "installMethod": "npm" },
12
- { "id": "bun", "name": "Bun", "installMethod": "script" },
13
- { "id": "typescript", "name": "TypeScript", "installMethod": "npm" },
14
- { "id": "ts-node", "name": "ts-node", "installMethod": "npm" },
15
- { "id": "vite", "name": "Vite", "installMethod": "npm" },
16
- { "id": "esbuild", "name": "esbuild", "installMethod": "npm" },
17
- { "id": "webpack", "name": "webpack", "installMethod": "npm" },
18
- { "id": "rollup", "name": "Rollup", "installMethod": "npm" },
19
- { "id": "parcel", "name": "Parcel", "installMethod": "npm" },
20
- { "id": "next", "name": "Next.js CLI", "installMethod": "npm" },
21
- { "id": "nuxt", "name": "Nuxt CLI", "installMethod": "npm" },
22
- { "id": "react-native", "name": "React Native CLI", "installMethod": "npm" },
23
- { "id": "expo", "name": "Expo CLI", "installMethod": "npm" },
24
- { "id": "gatsby", "name": "Gatsby CLI", "installMethod": "npm" },
25
- { "id": "angular", "name": "Angular CLI", "installMethod": "npm" },
26
- { "id": "vue", "name": "Vue CLI", "installMethod": "npm" },
27
- { "id": "svelte", "name": "Svelte CLI", "installMethod": "npm" },
28
- { "id": "jest", "name": "Jest", "installMethod": "npm" },
29
- { "id": "vitest", "name": "Vitest", "installMethod": "npm" },
30
- { "id": "mocha", "name": "Mocha", "installMethod": "npm" },
31
- { "id": "cypress", "name": "Cypress", "installMethod": "npm" },
32
- { "id": "playwright", "name": "Playwright", "installMethod": "npm" }
33
- ]
34
- },
35
- {
36
- "id": "python",
37
- "name": "Python",
38
- "icon": "🐍",
39
- "tools": [
40
- { "id": "python3", "name": "Python 3", "installMethod": "brew" },
41
- { "id": "pip", "name": "pip", "installMethod": "python" },
42
- { "id": "pipx", "name": "pipx", "installMethod": "pip" },
43
- { "id": "poetry", "name": "Poetry", "installMethod": "pip" },
44
- { "id": "virtualenv", "name": "virtualenv", "installMethod": "pip" },
45
- { "id": "conda", "name": "Conda", "installMethod": "script" },
46
- { "id": "pyenv", "name": "pyenv", "installMethod": "brew" },
47
- { "id": "black", "name": "Black", "installMethod": "pip" },
48
- { "id": "flake8", "name": "Flake8", "installMethod": "pip" },
49
- { "id": "pylint", "name": "Pylint", "installMethod": "pip" },
50
- { "id": "mypy", "name": "Mypy", "installMethod": "pip" },
51
- { "id": "pytest", "name": "pytest", "installMethod": "pip" },
52
- { "id": "ipython", "name": "IPython", "installMethod": "pip" },
53
- { "id": "jupyter", "name": "Jupyter", "installMethod": "pip" },
54
- { "id": "django", "name": "Django CLI", "installMethod": "pip" },
55
- { "id": "flask", "name": "Flask CLI", "installMethod": "pip" },
56
- { "id": "fastapi", "name": "FastAPI CLI", "installMethod": "pip" },
57
- { "id": "celery", "name": "Celery", "installMethod": "pip" },
58
- { "id": "scrapy", "name": "Scrapy", "installMethod": "pip" },
59
- { "id": "httpie", "name": "HTTPie", "installMethod": "pip" },
60
- { "id": "ansible", "name": "Ansible", "installMethod": "pip" },
61
- { "id": "salt", "name": "SaltStack", "installMethod": "pip" },
62
- { "id": "awscli", "name": "AWS CLI", "installMethod": "pip" },
63
- { "id": "gcloud", "name": "gcloud CLI", "installMethod": "script" },
64
- { "id": "azure-cli", "name": "Azure CLI", "installMethod": "script" }
65
- ]
66
- },
67
- {
68
- "id": "go",
69
- "name": "Go",
70
- "icon": "🔵",
71
- "tools": [
72
- { "id": "go", "name": "Go", "installMethod": "brew" },
73
- { "id": "golangci-lint", "name": "golangci-lint", "installMethod": "go" },
74
- { "id": "goreleaser", "name": "GoReleaser", "installMethod": "go" },
75
- { "id": "air", "name": "Air (live reload)", "installMethod": "go" },
76
- { "id": "ginkgo", "name": "Ginkgo", "installMethod": "go" },
77
- { "id": "delve", "name": "Delve debugger", "installMethod": "go" },
78
- { "id": "gofumpt", "name": "gofumpt", "installMethod": "go" },
79
- { "id": "goimports", "name": "goimports", "installMethod": "go" },
80
- { "id": "gomock", "name": "gomock", "installMethod": "go" },
81
- { "id": "staticcheck", "name": "staticcheck", "installMethod": "go" },
82
- { "id": "gosec", "name": "gosec", "installMethod": "go" },
83
- { "id": "richgo", "name": "richgo", "installMethod": "go" },
84
- { "id": "gotestsum", "name": "gotestsum", "installMethod": "go" },
85
- { "id": "swag", "name": "swag (Swagger)", "installMethod": "go" },
86
- { "id": "protoc-gen-go", "name": "protoc-gen-go", "installMethod": "go" },
87
- { "id": "grpcurl", "name": "grpcurl", "installMethod": "go" },
88
- { "id": "ghq", "name": "ghq", "installMethod": "go" },
89
- { "id": "fzf", "name": "fzf", "installMethod": "go" },
90
- { "id": "lazygit", "name": "lazygit", "installMethod": "go" },
91
- { "id": "delta", "name": "delta", "installMethod": "cargo" },
92
- { "id": "hugo", "name": "Hugo", "installMethod": "go" },
93
- { "id": "temporal", "name": "Temporal CLI", "installMethod": "go" },
94
- { "id": "ko", "name": "ko", "installMethod": "go" },
95
- { "id": "buf", "name": "Buf CLI", "installMethod": "go" },
96
- { "id": "helm", "name": "Helm", "installMethod": "script" }
97
- ]
98
- },
99
- {
100
- "id": "rust",
101
- "name": "Rust",
102
- "icon": "🦀",
103
- "tools": [
104
- { "id": "rustup", "name": "rustup", "installMethod": "script" },
105
- { "id": "cargo", "name": "Cargo", "installMethod": "rustup" },
106
- { "id": "rust-analyzer", "name": "rust-analyzer", "installMethod": "cargo" },
107
- { "id": "clippy", "name": "Clippy", "installMethod": "rustup" },
108
- { "id": "rustfmt", "name": "rustfmt", "installMethod": "rustup" },
109
- { "id": "cargo-watch", "name": "cargo-watch", "installMethod": "cargo" },
110
- { "id": "cargo-edit", "name": "cargo-edit", "installMethod": "cargo" },
111
- { "id": "cargo-audit", "name": "cargo-audit", "installMethod": "cargo" },
112
- { "id": "cargo-outdated", "name": "cargo-outdated", "installMethod": "cargo" },
113
- { "id": "cargo-expand", "name": "cargo-expand", "installMethod": "cargo" },
114
- { "id": "cargo-flamegraph", "name": "cargo-flamegraph", "installMethod": "cargo" },
115
- { "id": "wasm-pack", "name": "wasm-pack", "installMethod": "cargo" },
116
- { "id": "tokio-console", "name": "tokio-console", "installMethod": "cargo" },
117
- { "id": "cargo-deny", "name": "cargo-deny", "installMethod": "cargo" },
118
- { "id": "cargo-nextest", "name": "cargo-nextest", "installMethod": "cargo" },
119
- { "id": "ripgrep", "name": "ripgrep (rg)", "installMethod": "cargo" },
120
- { "id": "fd-find", "name": "fd", "installMethod": "cargo" },
121
- { "id": "bat", "name": "bat", "installMethod": "cargo" },
122
- { "id": "eza", "name": "eza", "installMethod": "cargo" },
123
- { "id": "zoxide", "name": "zoxide", "installMethod": "cargo" },
124
- { "id": "starship", "name": "Starship prompt", "installMethod": "cargo" },
125
- { "id": "tokei", "name": "tokei", "installMethod": "cargo" },
126
- { "id": "hyperfine", "name": "hyperfine", "installMethod": "cargo" },
127
- { "id": "bottom", "name": "bottom (btm)", "installMethod": "cargo" },
128
- { "id": "du-dust", "name": "dust", "installMethod": "cargo" }
129
- ]
130
- },
131
- {
132
- "id": "java",
133
- "name": "Java / JVM",
134
- "icon": "☕",
135
- "tools": [
136
- { "id": "jdk", "name": "OpenJDK", "installMethod": "brew" },
137
- { "id": "gradle", "name": "Gradle", "installMethod": "brew" },
138
- { "id": "maven", "name": "Maven", "installMethod": "brew" },
139
- { "id": "sbt", "name": "sbt", "installMethod": "brew" },
140
- { "id": "kotlin", "name": "Kotlin", "installMethod": "brew" },
141
- { "id": "scala", "name": "Scala", "installMethod": "brew" },
142
- { "id": "clojure", "name": "Clojure", "installMethod": "brew" },
143
- { "id": "leiningen", "name": "Leiningen", "installMethod": "brew" },
144
- { "id": "jbang", "name": "jbang", "installMethod": "brew" },
145
- { "id": "spring-boot", "name": "Spring Boot CLI", "installMethod": "brew" },
146
- { "id": "quarkus", "name": "Quarkus CLI", "installMethod": "brew" },
147
- { "id": "micronaut", "name": "Micronaut CLI", "installMethod": "brew" },
148
- { "id": "ant", "name": "Apache Ant", "installMethod": "brew" },
149
- { "id": "bazel", "name": "Bazel", "installMethod": "script" },
150
- { "id": "visualvm", "name": "VisualVM", "installMethod": "brew" },
151
- { "id": "jmeter", "name": "JMeter", "installMethod": "brew" },
152
- { "id": "jolokia", "name": "Jolokia", "installMethod": "brew" },
153
- { "id": "flyway", "name": "Flyway", "installMethod": "brew" },
154
- { "id": "liquibase", "name": "Liquibase", "installMethod": "brew" },
155
- { "id": "coursier", "name": "Coursier", "installMethod": "brew" },
156
- { "id": "mill", "name": "Mill", "installMethod": "brew" },
157
- { "id": "ammonite", "name": "Ammonite", "installMethod": "brew" },
158
- { "id": "graalvm", "name": "GraalVM", "installMethod": "brew" },
159
- { "id": "ktlint", "name": "ktlint", "installMethod": "brew" },
160
- { "id": "detekt", "name": "Detekt", "installMethod": "brew" }
161
- ]
162
- },
163
- {
164
- "id": "csharp-dotnet",
165
- "name": "C# / .NET",
166
- "icon": "🟣",
167
- "tools": [
168
- { "id": "dotnet", "name": ".NET SDK", "installMethod": "brew" },
169
- { "id": "dotnet-ef", "name": "Entity Framework CLI", "installMethod": "dotnet" },
170
- { "id": "dotnet-format", "name": "dotnet-format", "installMethod": "dotnet" },
171
- { "id": "dotnet-outdated", "name": "dotnet-outdated", "installMethod": "dotnet" },
172
- { "id": "nuke", "name": "NUKE Build", "installMethod": "dotnet" },
173
- { "id": "csharpier", "name": "CSharpier", "installMethod": "dotnet" },
174
- { "id": "sonarscanner", "name": "SonarScanner", "installMethod": "dotnet" },
175
- { "id": "fake-cli", "name": "FAKE CLI", "installMethod": "dotnet" },
176
- { "id": "paket", "name": "Paket", "installMethod": "dotnet" },
177
- { "id": "fantomas", "name": "Fantomas", "installMethod": "dotnet" },
178
- { "id": "aardpack", "name": "aardpack", "installMethod": "dotnet" },
179
- { "id": "depends", "name": "depends", "installMethod": "dotnet" },
180
- { "id": "snitch", "name": "Snitch", "installMethod": "dotnet" },
181
- { "id": "roslynator", "name": "Roslynator", "installMethod": "dotnet" },
182
- { "id": "xunit-cli", "name": "xUnit CLI", "installMethod": "dotnet" },
183
- { "id": "coverlet", "name": "Coverlet", "installMethod": "dotnet" },
184
- { "id": "reportgenerator", "name": "ReportGenerator", "installMethod": "dotnet" },
185
- { "id": "bencher", "name": "BenchmarkDotNet", "installMethod": "dotnet" },
186
- { "id": "migrator", "name": "EF Core Migrations", "installMethod": "dotnet" },
187
- { "id": "powerpack", "name": "F# Power Pack", "installMethod": "dotnet" }
188
- ]
189
- },
190
- {
191
- "id": "ruby",
192
- "name": "Ruby",
193
- "icon": "💎",
194
- "tools": [
195
- { "id": "ruby", "name": "Ruby", "installMethod": "brew" },
196
- { "id": "bundler", "name": "Bundler", "installMethod": "gem" },
197
- { "id": "rails", "name": "Ruby on Rails", "installMethod": "gem" },
198
- { "id": "rake", "name": "Rake", "installMethod": "gem" },
199
- { "id": "rspec", "name": "RSpec", "installMethod": "gem" },
200
- { "id": "rubocop", "name": "RuboCop", "installMethod": "gem" },
201
- { "id": "sorbet", "name": "Sorbet", "installMethod": "gem" },
202
- { "id": "brakeman", "name": "Brakeman", "installMethod": "gem" },
203
- { "id": "solargraph", "name": "Solargraph", "installMethod": "gem" },
204
- { "id": "pry", "name": "Pry", "installMethod": "gem" },
205
- { "id": "byebug", "name": "Byebug", "installMethod": "gem" },
206
- { "id": "capybara", "name": "Capybara", "installMethod": "gem" },
207
- { "id": "factory-bot", "name": "Factory Bot", "installMethod": "gem" },
208
- { "id": "sidekiq", "name": "Sidekiq", "installMethod": "gem" },
209
- { "id": "puma", "name": "Puma", "installMethod": "gem" },
210
- { "id": "sinatra", "name": "Sinatra", "installMethod": "gem" },
211
- { "id": "hanami", "name": "Hanami", "installMethod": "gem" },
212
- { "id": "dry-rb", "name": "dry-rb", "installMethod": "gem" },
213
- { "id": "overmind", "name": "Overmind (Procfile)", "installMethod": "brew" },
214
- { "id": "foreman", "name": "Foreman (Procfile)", "installMethod": "gem" }
215
- ]
216
- },
217
- {
218
- "id": "php",
219
- "name": "PHP",
220
- "icon": "🐘",
221
- "tools": [
222
- { "id": "php", "name": "PHP", "installMethod": "brew" },
223
- { "id": "composer", "name": "Composer", "installMethod": "script" },
224
- { "id": "php-cs-fixer", "name": "PHP CS Fixer", "installMethod": "composer" },
225
- { "id": "phpstan", "name": "PHPStan", "installMethod": "composer" },
226
- { "id": "psalm", "name": "Psalm", "installMethod": "composer" },
227
- { "id": "phpunit", "name": "PHPUnit", "installMethod": "composer" },
228
- { "id": "pest", "name": "Pest", "installMethod": "composer" },
229
- { "id": "infection", "name": "Infection (mutation)", "installMethod": "composer" },
230
- { "id": "laravel", "name": "Laravel Installer", "installMethod": "composer" },
231
- { "id": "symfony", "name": "Symfony CLI", "installMethod": "brew" },
232
- { "id": "wp-cli", "name": "WP-CLI", "installMethod": "brew" },
233
- { "id": "drush", "name": "Drush", "installMethod": "composer" },
234
- { "id": "deployer", "name": "Deployer", "installMethod": "composer" },
235
- { "id": "phan", "name": "Phan", "installMethod": "composer" },
236
- { "id": "rector", "name": "Rector", "installMethod": "composer" },
237
- { "id": "mockery", "name": "Mockery", "installMethod": "composer" },
238
- { "id": "behat", "name": "Behat", "installMethod": "composer" },
239
- { "id": "codeception", "name": "Codeception", "installMethod": "composer" },
240
- { "id": "paratest", "name": "Paratest", "installMethod": "composer" },
241
- { "id": "phpmd", "name": "PHPMD", "installMethod": "composer" }
242
- ]
243
- },
244
- {
245
- "id": "c-cpp",
246
- "name": "C / C++",
247
- "icon": "⚙️",
248
- "tools": [
249
- { "id": "gcc", "name": "GCC", "installMethod": "brew" },
250
- { "id": "clang", "name": "Clang/LLVM", "installMethod": "brew" },
251
- { "id": "cmake", "name": "CMake", "installMethod": "brew" },
252
- { "id": "make", "name": "GNU Make", "installMethod": "brew" },
253
- { "id": "ninja", "name": "Ninja", "installMethod": "brew" },
254
- { "id": "meson", "name": "Meson", "installMethod": "pip" },
255
- { "id": "conan", "name": "Conan", "installMethod": "pip" },
256
- { "id": "vcpkg", "name": "vcpkg", "installMethod": "script" },
257
- { "id": "bazelisk", "name": "Bazelisk", "installMethod": "brew" },
258
- { "id": "clang-format", "name": "clang-format", "installMethod": "brew" },
259
- { "id": "clang-tidy", "name": "clang-tidy", "installMethod": "brew" },
260
- { "id": "cppcheck", "name": "Cppcheck", "installMethod": "brew" },
261
- { "id": "valgrind", "name": "Valgrind", "installMethod": "brew" },
262
- { "id": "gdb", "name": "GDB", "installMethod": "brew" },
263
- { "id": "lldb", "name": "LLDB", "installMethod": "brew" },
264
- { "id": "ccache", "name": "ccache", "installMethod": "brew" },
265
- { "id": "distcc", "name": "distcc", "installMethod": "brew" },
266
- { "id": "bear", "name": "Bear", "installMethod": "brew" },
267
- { "id": "doxygen", "name": "Doxygen", "installMethod": "brew" },
268
- { "id": "scons", "name": "SCons", "installMethod": "pip" }
269
- ]
270
- },
271
- {
272
- "id": "universal",
273
- "name": "Universal / DevOps",
274
- "icon": "🌐",
275
- "tools": [
276
- { "id": "git", "name": "Git", "installMethod": "brew" },
277
- { "id": "gh", "name": "GitHub CLI", "installMethod": "brew" },
278
- { "id": "hub", "name": "hub", "installMethod": "brew" },
279
- { "id": "git-lfs", "name": "Git LFS", "installMethod": "brew" },
280
- { "id": "gitflow", "name": "gitflow", "installMethod": "brew" },
281
- { "id": "tig", "name": "Tig", "installMethod": "brew" },
282
- { "id": "lazydocker", "name": "lazydocker", "installMethod": "brew" },
283
- { "id": "docker", "name": "Docker", "installMethod": "brew" },
284
- { "id": "docker-compose", "name": "Docker Compose", "installMethod": "brew" },
285
- { "id": "kubectl", "name": "kubectl", "installMethod": "brew" },
286
- { "id": "k9s", "name": "k9s", "installMethod": "brew" },
287
- { "id": "terraform", "name": "Terraform", "installMethod": "brew" },
288
- { "id": "packer", "name": "Packer", "installMethod": "brew" },
289
- { "id": "vagrant", "name": "Vagrant", "installMethod": "brew" },
290
- { "id": "ansible-dev", "name": "Ansible (via brew)", "installMethod": "brew" },
291
- { "id": "neovim", "name": "Neovim", "installMethod": "brew" },
292
- { "id": "tmux", "name": "tmux", "installMethod": "brew" },
293
- { "id": "zsh", "name": "Zsh", "installMethod": "brew" },
294
- { "id": "oh-my-zsh", "name": "Oh My Zsh", "installMethod": "script" },
295
- { "id": "starship-brew", "name": "Starship (via brew)", "installMethod": "brew" },
296
- { "id": "htop", "name": "htop", "installMethod": "brew" },
297
- { "id": "ncdu", "name": "ncdu", "installMethod": "brew" },
298
- { "id": "tree", "name": "tree", "installMethod": "brew" },
299
- { "id": "jq", "name": "jq", "installMethod": "brew" },
300
- { "id": "yq", "name": "yq", "installMethod": "brew" },
301
- { "id": "curl", "name": "curl", "installMethod": "brew" },
302
- { "id": "wget", "name": "wget", "installMethod": "brew" },
303
- { "id": "rsync", "name": "rsync", "installMethod": "brew" },
304
- { "id": "openssl", "name": "OpenSSL", "installMethod": "brew" },
305
- { "id": "watchman", "name": "Watchman", "installMethod": "brew" },
306
- { "id": "ffmpeg", "name": "FFmpeg", "installMethod": "brew" },
307
- { "id": "imagemagick", "name": "ImageMagick", "installMethod": "brew" },
308
- { "id": "shellcheck", "name": "ShellCheck", "installMethod": "brew" },
309
- { "id": "shfmt", "name": "shfmt", "installMethod": "brew" },
310
- { "id": "hadolint", "name": "Hadolint", "installMethod": "brew" },
311
- { "id": "tfsec", "name": "tfsec", "installMethod": "brew" },
312
- { "id": "checkov", "name": "Checkov", "installMethod": "pip" },
313
- { "id": "trivy", "name": "Trivy", "installMethod": "brew" },
314
- { "id": "snyk", "name": "Snyk", "installMethod": "npm" },
315
- { "id": "sonarqube", "name": "SonarQube Scanner", "installMethod": "brew" }
316
- ]
317
- },
318
- {
319
- "id": "artificial-intelligence",
320
- "name": "Artificial Intelligence",
321
- "icon": "💻",
322
- "tools": [
323
- { "id": "@anthropic-ai/claude-code", "name": "Claude Code", "installMethod": "npm", "command": "claude" },
324
- { "id": "@openai/codex", "name": "OpenAI Codex CLI", "installMethod": "npm", "command": "codex" },
325
- { "id": "aider-chat", "name": "Aider", "installMethod": "pip", "command": "aider" },
326
- { "id": "@githubnext/github-copilot-cli", "name": "GitHub Copilot CLI", "installMethod": "npm", "command": "github-copilot-cli" },
327
- { "id": "@anthropic-ai/gemini-cli", "name": "Google Gemini CLI", "installMethod": "npm", "command": "gemini" },
328
- { "id": "amazon-q-developer-cli", "name": "Amazon Q Developer CLI", "installMethod": "pip", "command": "q" },
329
- { "id": "@plandex/cli", "name": "Plandex", "installMethod": "npm", "command": "plandex" },
330
- { "id": "mentat", "name": "Mentat", "installMethod": "pip", "command": "mentat" },
331
- { "id": "openhands", "name": "OpenHands CLI", "installMethod": "pip", "command": "openhands" },
332
- { "id": "sweagent", "name": "SWE-agent", "installMethod": "pip", "command": "sweagent" },
333
- { "id": "gpt-engineer", "name": "GPT Engineer", "installMethod": "pip", "command": "gpt-engineer" },
334
- { "id": "smol-developer", "name": "Smol Developer", "installMethod": "npm", "command": "smol-dev" },
335
- { "id": "llm", "name": "LLM (Simon Willison)", "installMethod": "pip", "command": "llm" },
336
- { "id": "ollama", "name": "Ollama", "installMethod": "brew", "command": "ollama" },
337
- { "id": "shell-gpt", "name": "Shell-GPT (sgpt)", "installMethod": "pip", "command": "sgpt" },
338
- { "id": "aichat", "name": "AIChat", "installMethod": "cargo", "command": "aichat" },
339
- { "id": "bito", "name": "Bito CLI", "installMethod": "npm", "command": "bito" },
340
- { "id": "copilot-ext", "name": "GitHub Copilot (IDE)", "installMethod": "link", "url": "https://marketplace.visualstudio.com/items?itemName=GitHub.copilot" },
341
- { "id": "claude-ide-ext", "name": "Claude for IDE", "installMethod": "link", "url": "https://marketplace.visualstudio.com/items?itemName=anthropic.claude-code" },
342
- { "id": "continue-ext", "name": "Continue", "installMethod": "link", "url": "https://marketplace.visualstudio.com/items?itemName=Continue.continue" },
343
- { "id": "tabnine-ext", "name": "Tabnine", "installMethod": "link", "url": "https://marketplace.visualstudio.com/items?itemName=TabNine.tabnine-vscode" },
344
- { "id": "codeium-ext", "name": "Codeium", "installMethod": "link", "url": "https://marketplace.visualstudio.com/items?itemName=Codeium.codeium" },
345
- { "id": "cody-ext", "name": "Sourcegraph Cody", "installMethod": "link", "url": "https://marketplace.visualstudio.com/items?itemName=sourcegraph.cody-ai" },
346
- { "id": "supermaven-ext", "name": "Supermaven", "installMethod": "link", "url": "https://marketplace.visualstudio.com/items?itemName=supermaven.supermaven-vscode" },
347
- { "id": "blackbox-ext", "name": "Blackbox AI", "installMethod": "link", "url": "https://marketplace.visualstudio.com/items?itemName=Blackboxapp.blackbox" },
348
- { "id": "codegeex-ext", "name": "CodeGeeX", "installMethod": "link", "url": "https://marketplace.visualstudio.com/items?itemName=aminer.codegeex" },
349
- { "id": "askcodi-ext", "name": "AskCodi", "installMethod": "link", "url": "https://marketplace.visualstudio.com/items?itemName=AskCodi.askcodi" },
350
- { "id": "safurai-ext", "name": "Safurai", "installMethod": "link", "url": "https://plugins.jetbrains.com/plugin/23446-safurai" },
351
- { "id": "pieces-ext", "name": "Pieces for Developers", "installMethod": "link", "url": "https://marketplace.visualstudio.com/items?itemName=MeshIntelligentTechnologiesInc.pieces-vscode" },
352
- { "id": "mutable-ext", "name": "Mutable AI", "installMethod": "link", "url": "https://marketplace.visualstudio.com/items?itemName=MutableAI.mutableai" },
353
- { "id": "twinny-ext", "name": "Twinny", "installMethod": "link", "url": "https://marketplace.visualstudio.com/items?itemName=rjmacarthy.twinny" },
354
- { "id": "localpilot-ext", "name": "LocalPilot", "installMethod": "link", "url": "https://marketplace.visualstudio.com/items?itemName=shengchen.localpilot" }
355
- ]
356
- }
357
- ]
358
- }
1
+ {
2
+ "categories": [
3
+ {
4
+ "id": "js-ts",
5
+ "name": "JavaScript / TypeScript",
6
+ "icon": "🟨",
7
+ "tools": [
8
+ { "id": "node", "name": "Node.js", "installMethod": "nvm" },
9
+ { "id": "npm", "name": "npm", "installMethod": "node" },
10
+ { "id": "yarn", "name": "Yarn", "installMethod": "npm" },
11
+ { "id": "pnpm", "name": "pnpm", "installMethod": "npm" },
12
+ { "id": "bun", "name": "Bun", "installMethod": "script" },
13
+ { "id": "typescript", "name": "TypeScript", "installMethod": "npm" },
14
+ { "id": "ts-node", "name": "ts-node", "installMethod": "npm" },
15
+ { "id": "vite", "name": "Vite", "installMethod": "npm" },
16
+ { "id": "esbuild", "name": "esbuild", "installMethod": "npm" },
17
+ { "id": "webpack", "name": "webpack", "installMethod": "npm" },
18
+ { "id": "rollup", "name": "Rollup", "installMethod": "npm" },
19
+ { "id": "parcel", "name": "Parcel", "installMethod": "npm" },
20
+ { "id": "next", "name": "Next.js CLI", "installMethod": "npm" },
21
+ { "id": "nuxt", "name": "Nuxt CLI", "installMethod": "npm" },
22
+ { "id": "react-native", "name": "React Native CLI", "installMethod": "npm" },
23
+ { "id": "expo", "name": "Expo CLI", "installMethod": "npm" },
24
+ { "id": "gatsby", "name": "Gatsby CLI", "installMethod": "npm" },
25
+ { "id": "angular", "name": "Angular CLI", "installMethod": "npm" },
26
+ { "id": "vue", "name": "Vue CLI", "installMethod": "npm" },
27
+ { "id": "svelte", "name": "Svelte CLI", "installMethod": "npm" },
28
+ { "id": "jest", "name": "Jest", "installMethod": "npm" },
29
+ { "id": "vitest", "name": "Vitest", "installMethod": "npm" },
30
+ { "id": "mocha", "name": "Mocha", "installMethod": "npm" },
31
+ { "id": "cypress", "name": "Cypress", "installMethod": "npm" },
32
+ { "id": "playwright", "name": "Playwright", "installMethod": "npm" }
33
+ ]
34
+ },
35
+ {
36
+ "id": "python",
37
+ "name": "Python",
38
+ "icon": "🐍",
39
+ "tools": [
40
+ { "id": "python3", "name": "Python 3", "installMethod": "brew" },
41
+ { "id": "pip", "name": "pip", "installMethod": "python" },
42
+ { "id": "pipx", "name": "pipx", "installMethod": "pip" },
43
+ { "id": "poetry", "name": "Poetry", "installMethod": "pip" },
44
+ { "id": "virtualenv", "name": "virtualenv", "installMethod": "pip" },
45
+ { "id": "conda", "name": "Conda", "installMethod": "script" },
46
+ { "id": "pyenv", "name": "pyenv", "installMethod": "brew" },
47
+ { "id": "black", "name": "Black", "installMethod": "pip" },
48
+ { "id": "flake8", "name": "Flake8", "installMethod": "pip" },
49
+ { "id": "pylint", "name": "Pylint", "installMethod": "pip" },
50
+ { "id": "mypy", "name": "Mypy", "installMethod": "pip" },
51
+ { "id": "pytest", "name": "pytest", "installMethod": "pip" },
52
+ { "id": "ipython", "name": "IPython", "installMethod": "pip" },
53
+ { "id": "jupyter", "name": "Jupyter", "installMethod": "pip" },
54
+ { "id": "django", "name": "Django CLI", "installMethod": "pip" },
55
+ { "id": "flask", "name": "Flask CLI", "installMethod": "pip" },
56
+ { "id": "fastapi", "name": "FastAPI CLI", "installMethod": "pip" },
57
+ { "id": "celery", "name": "Celery", "installMethod": "pip" },
58
+ { "id": "scrapy", "name": "Scrapy", "installMethod": "pip" },
59
+ { "id": "httpie", "name": "HTTPie", "installMethod": "pip" },
60
+ { "id": "ansible", "name": "Ansible", "installMethod": "pip" },
61
+ { "id": "salt", "name": "SaltStack", "installMethod": "pip" },
62
+ { "id": "awscli", "name": "AWS CLI", "installMethod": "pip" },
63
+ { "id": "gcloud", "name": "gcloud CLI", "installMethod": "script" },
64
+ { "id": "azure-cli", "name": "Azure CLI", "installMethod": "script" }
65
+ ]
66
+ },
67
+ {
68
+ "id": "go",
69
+ "name": "Go",
70
+ "icon": "🔵",
71
+ "tools": [
72
+ { "id": "go", "name": "Go", "installMethod": "brew" },
73
+ { "id": "golangci-lint", "name": "golangci-lint", "installMethod": "go" },
74
+ { "id": "goreleaser", "name": "GoReleaser", "installMethod": "go" },
75
+ { "id": "air", "name": "Air (live reload)", "installMethod": "go" },
76
+ { "id": "ginkgo", "name": "Ginkgo", "installMethod": "go" },
77
+ { "id": "delve", "name": "Delve debugger", "installMethod": "go" },
78
+ { "id": "gofumpt", "name": "gofumpt", "installMethod": "go" },
79
+ { "id": "goimports", "name": "goimports", "installMethod": "go" },
80
+ { "id": "gomock", "name": "gomock", "installMethod": "go" },
81
+ { "id": "staticcheck", "name": "staticcheck", "installMethod": "go" },
82
+ { "id": "gosec", "name": "gosec", "installMethod": "go" },
83
+ { "id": "richgo", "name": "richgo", "installMethod": "go" },
84
+ { "id": "gotestsum", "name": "gotestsum", "installMethod": "go" },
85
+ { "id": "swag", "name": "swag (Swagger)", "installMethod": "go" },
86
+ { "id": "protoc-gen-go", "name": "protoc-gen-go", "installMethod": "go" },
87
+ { "id": "grpcurl", "name": "grpcurl", "installMethod": "go" },
88
+ { "id": "ghq", "name": "ghq", "installMethod": "go" },
89
+ { "id": "fzf", "name": "fzf", "installMethod": "go" },
90
+ { "id": "lazygit", "name": "lazygit", "installMethod": "go" },
91
+ { "id": "delta", "name": "delta", "installMethod": "cargo" },
92
+ { "id": "hugo", "name": "Hugo", "installMethod": "go" },
93
+ { "id": "temporal", "name": "Temporal CLI", "installMethod": "go" },
94
+ { "id": "ko", "name": "ko", "installMethod": "go" },
95
+ { "id": "buf", "name": "Buf CLI", "installMethod": "go" },
96
+ { "id": "helm", "name": "Helm", "installMethod": "script" }
97
+ ]
98
+ },
99
+ {
100
+ "id": "rust",
101
+ "name": "Rust",
102
+ "icon": "🦀",
103
+ "tools": [
104
+ { "id": "rustup", "name": "rustup", "installMethod": "script" },
105
+ { "id": "cargo", "name": "Cargo", "installMethod": "rustup" },
106
+ { "id": "rust-analyzer", "name": "rust-analyzer", "installMethod": "cargo" },
107
+ { "id": "clippy", "name": "Clippy", "installMethod": "rustup" },
108
+ { "id": "rustfmt", "name": "rustfmt", "installMethod": "rustup" },
109
+ { "id": "cargo-watch", "name": "cargo-watch", "installMethod": "cargo" },
110
+ { "id": "cargo-edit", "name": "cargo-edit", "installMethod": "cargo" },
111
+ { "id": "cargo-audit", "name": "cargo-audit", "installMethod": "cargo" },
112
+ { "id": "cargo-outdated", "name": "cargo-outdated", "installMethod": "cargo" },
113
+ { "id": "cargo-expand", "name": "cargo-expand", "installMethod": "cargo" },
114
+ { "id": "cargo-flamegraph", "name": "cargo-flamegraph", "installMethod": "cargo" },
115
+ { "id": "wasm-pack", "name": "wasm-pack", "installMethod": "cargo" },
116
+ { "id": "tokio-console", "name": "tokio-console", "installMethod": "cargo" },
117
+ { "id": "cargo-deny", "name": "cargo-deny", "installMethod": "cargo" },
118
+ { "id": "cargo-nextest", "name": "cargo-nextest", "installMethod": "cargo" },
119
+ { "id": "ripgrep", "name": "ripgrep (rg)", "installMethod": "cargo" },
120
+ { "id": "fd-find", "name": "fd", "installMethod": "cargo" },
121
+ { "id": "bat", "name": "bat", "installMethod": "cargo" },
122
+ { "id": "eza", "name": "eza", "installMethod": "cargo" },
123
+ { "id": "zoxide", "name": "zoxide", "installMethod": "cargo" },
124
+ { "id": "starship", "name": "Starship prompt", "installMethod": "cargo" },
125
+ { "id": "tokei", "name": "tokei", "installMethod": "cargo" },
126
+ { "id": "hyperfine", "name": "hyperfine", "installMethod": "cargo" },
127
+ { "id": "bottom", "name": "bottom (btm)", "installMethod": "cargo" },
128
+ { "id": "du-dust", "name": "dust", "installMethod": "cargo" }
129
+ ]
130
+ },
131
+ {
132
+ "id": "java",
133
+ "name": "Java / JVM",
134
+ "icon": "☕",
135
+ "tools": [
136
+ { "id": "jdk", "name": "OpenJDK", "installMethod": "brew" },
137
+ { "id": "gradle", "name": "Gradle", "installMethod": "brew" },
138
+ { "id": "maven", "name": "Maven", "installMethod": "brew" },
139
+ { "id": "sbt", "name": "sbt", "installMethod": "brew" },
140
+ { "id": "kotlin", "name": "Kotlin", "installMethod": "brew" },
141
+ { "id": "scala", "name": "Scala", "installMethod": "brew" },
142
+ { "id": "clojure", "name": "Clojure", "installMethod": "brew" },
143
+ { "id": "leiningen", "name": "Leiningen", "installMethod": "brew" },
144
+ { "id": "jbang", "name": "jbang", "installMethod": "brew" },
145
+ { "id": "spring-boot", "name": "Spring Boot CLI", "installMethod": "brew" },
146
+ { "id": "quarkus", "name": "Quarkus CLI", "installMethod": "brew" },
147
+ { "id": "micronaut", "name": "Micronaut CLI", "installMethod": "brew" },
148
+ { "id": "ant", "name": "Apache Ant", "installMethod": "brew" },
149
+ { "id": "bazel", "name": "Bazel", "installMethod": "script" },
150
+ { "id": "visualvm", "name": "VisualVM", "installMethod": "brew" },
151
+ { "id": "jmeter", "name": "JMeter", "installMethod": "brew" },
152
+ { "id": "jolokia", "name": "Jolokia", "installMethod": "brew" },
153
+ { "id": "flyway", "name": "Flyway", "installMethod": "brew" },
154
+ { "id": "liquibase", "name": "Liquibase", "installMethod": "brew" },
155
+ { "id": "coursier", "name": "Coursier", "installMethod": "brew" },
156
+ { "id": "mill", "name": "Mill", "installMethod": "brew" },
157
+ { "id": "ammonite", "name": "Ammonite", "installMethod": "brew" },
158
+ { "id": "graalvm", "name": "GraalVM", "installMethod": "brew" },
159
+ { "id": "ktlint", "name": "ktlint", "installMethod": "brew" },
160
+ { "id": "detekt", "name": "Detekt", "installMethod": "brew" }
161
+ ]
162
+ },
163
+ {
164
+ "id": "csharp-dotnet",
165
+ "name": "C# / .NET",
166
+ "icon": "🟣",
167
+ "tools": [
168
+ { "id": "dotnet", "name": ".NET SDK", "installMethod": "brew" },
169
+ { "id": "dotnet-ef", "name": "Entity Framework CLI", "installMethod": "dotnet" },
170
+ { "id": "dotnet-format", "name": "dotnet-format", "installMethod": "dotnet" },
171
+ { "id": "dotnet-outdated", "name": "dotnet-outdated", "installMethod": "dotnet" },
172
+ { "id": "nuke", "name": "NUKE Build", "installMethod": "dotnet" },
173
+ { "id": "csharpier", "name": "CSharpier", "installMethod": "dotnet" },
174
+ { "id": "sonarscanner", "name": "SonarScanner", "installMethod": "dotnet" },
175
+ { "id": "fake-cli", "name": "FAKE CLI", "installMethod": "dotnet" },
176
+ { "id": "paket", "name": "Paket", "installMethod": "dotnet" },
177
+ { "id": "fantomas", "name": "Fantomas", "installMethod": "dotnet" },
178
+ { "id": "aardpack", "name": "aardpack", "installMethod": "dotnet" },
179
+ { "id": "depends", "name": "depends", "installMethod": "dotnet" },
180
+ { "id": "snitch", "name": "Snitch", "installMethod": "dotnet" },
181
+ { "id": "roslynator", "name": "Roslynator", "installMethod": "dotnet" },
182
+ { "id": "xunit-cli", "name": "xUnit CLI", "installMethod": "dotnet" },
183
+ { "id": "coverlet", "name": "Coverlet", "installMethod": "dotnet" },
184
+ { "id": "reportgenerator", "name": "ReportGenerator", "installMethod": "dotnet" },
185
+ { "id": "bencher", "name": "BenchmarkDotNet", "installMethod": "dotnet" },
186
+ { "id": "migrator", "name": "EF Core Migrations", "installMethod": "dotnet" },
187
+ { "id": "powerpack", "name": "F# Power Pack", "installMethod": "dotnet" }
188
+ ]
189
+ },
190
+ {
191
+ "id": "ruby",
192
+ "name": "Ruby",
193
+ "icon": "💎",
194
+ "tools": [
195
+ { "id": "ruby", "name": "Ruby", "installMethod": "brew" },
196
+ { "id": "bundler", "name": "Bundler", "installMethod": "gem" },
197
+ { "id": "rails", "name": "Ruby on Rails", "installMethod": "gem" },
198
+ { "id": "rake", "name": "Rake", "installMethod": "gem" },
199
+ { "id": "rspec", "name": "RSpec", "installMethod": "gem" },
200
+ { "id": "rubocop", "name": "RuboCop", "installMethod": "gem" },
201
+ { "id": "sorbet", "name": "Sorbet", "installMethod": "gem" },
202
+ { "id": "brakeman", "name": "Brakeman", "installMethod": "gem" },
203
+ { "id": "solargraph", "name": "Solargraph", "installMethod": "gem" },
204
+ { "id": "pry", "name": "Pry", "installMethod": "gem" },
205
+ { "id": "byebug", "name": "Byebug", "installMethod": "gem" },
206
+ { "id": "capybara", "name": "Capybara", "installMethod": "gem" },
207
+ { "id": "factory-bot", "name": "Factory Bot", "installMethod": "gem" },
208
+ { "id": "sidekiq", "name": "Sidekiq", "installMethod": "gem" },
209
+ { "id": "puma", "name": "Puma", "installMethod": "gem" },
210
+ { "id": "sinatra", "name": "Sinatra", "installMethod": "gem" },
211
+ { "id": "hanami", "name": "Hanami", "installMethod": "gem" },
212
+ { "id": "dry-rb", "name": "dry-rb", "installMethod": "gem" },
213
+ { "id": "overmind", "name": "Overmind (Procfile)", "installMethod": "brew" },
214
+ { "id": "foreman", "name": "Foreman (Procfile)", "installMethod": "gem" }
215
+ ]
216
+ },
217
+ {
218
+ "id": "php",
219
+ "name": "PHP",
220
+ "icon": "🐘",
221
+ "tools": [
222
+ { "id": "php", "name": "PHP", "installMethod": "brew" },
223
+ { "id": "composer", "name": "Composer", "installMethod": "script" },
224
+ { "id": "php-cs-fixer", "name": "PHP CS Fixer", "installMethod": "composer" },
225
+ { "id": "phpstan", "name": "PHPStan", "installMethod": "composer" },
226
+ { "id": "psalm", "name": "Psalm", "installMethod": "composer" },
227
+ { "id": "phpunit", "name": "PHPUnit", "installMethod": "composer" },
228
+ { "id": "pest", "name": "Pest", "installMethod": "composer" },
229
+ { "id": "infection", "name": "Infection (mutation)", "installMethod": "composer" },
230
+ { "id": "laravel", "name": "Laravel Installer", "installMethod": "composer" },
231
+ { "id": "symfony", "name": "Symfony CLI", "installMethod": "brew" },
232
+ { "id": "wp-cli", "name": "WP-CLI", "installMethod": "brew" },
233
+ { "id": "drush", "name": "Drush", "installMethod": "composer" },
234
+ { "id": "deployer", "name": "Deployer", "installMethod": "composer" },
235
+ { "id": "phan", "name": "Phan", "installMethod": "composer" },
236
+ { "id": "rector", "name": "Rector", "installMethod": "composer" },
237
+ { "id": "mockery", "name": "Mockery", "installMethod": "composer" },
238
+ { "id": "behat", "name": "Behat", "installMethod": "composer" },
239
+ { "id": "codeception", "name": "Codeception", "installMethod": "composer" },
240
+ { "id": "paratest", "name": "Paratest", "installMethod": "composer" },
241
+ { "id": "phpmd", "name": "PHPMD", "installMethod": "composer" }
242
+ ]
243
+ },
244
+ {
245
+ "id": "c-cpp",
246
+ "name": "C / C++",
247
+ "icon": "⚙️",
248
+ "tools": [
249
+ { "id": "gcc", "name": "GCC", "installMethod": "brew" },
250
+ { "id": "clang", "name": "Clang/LLVM", "installMethod": "brew" },
251
+ { "id": "cmake", "name": "CMake", "installMethod": "brew" },
252
+ { "id": "make", "name": "GNU Make", "installMethod": "brew" },
253
+ { "id": "ninja", "name": "Ninja", "installMethod": "brew" },
254
+ { "id": "meson", "name": "Meson", "installMethod": "pip" },
255
+ { "id": "conan", "name": "Conan", "installMethod": "pip" },
256
+ { "id": "vcpkg", "name": "vcpkg", "installMethod": "script" },
257
+ { "id": "bazelisk", "name": "Bazelisk", "installMethod": "brew" },
258
+ { "id": "clang-format", "name": "clang-format", "installMethod": "brew" },
259
+ { "id": "clang-tidy", "name": "clang-tidy", "installMethod": "brew" },
260
+ { "id": "cppcheck", "name": "Cppcheck", "installMethod": "brew" },
261
+ { "id": "valgrind", "name": "Valgrind", "installMethod": "brew" },
262
+ { "id": "gdb", "name": "GDB", "installMethod": "brew" },
263
+ { "id": "lldb", "name": "LLDB", "installMethod": "brew" },
264
+ { "id": "ccache", "name": "ccache", "installMethod": "brew" },
265
+ { "id": "distcc", "name": "distcc", "installMethod": "brew" },
266
+ { "id": "bear", "name": "Bear", "installMethod": "brew" },
267
+ { "id": "doxygen", "name": "Doxygen", "installMethod": "brew" },
268
+ { "id": "scons", "name": "SCons", "installMethod": "pip" }
269
+ ]
270
+ },
271
+ {
272
+ "id": "universal",
273
+ "name": "Universal / DevOps",
274
+ "icon": "🌐",
275
+ "tools": [
276
+ { "id": "git", "name": "Git", "installMethod": "brew" },
277
+ { "id": "gh", "name": "GitHub CLI", "installMethod": "brew" },
278
+ { "id": "hub", "name": "hub", "installMethod": "brew" },
279
+ { "id": "git-lfs", "name": "Git LFS", "installMethod": "brew" },
280
+ { "id": "gitflow", "name": "gitflow", "installMethod": "brew" },
281
+ { "id": "tig", "name": "Tig", "installMethod": "brew" },
282
+ { "id": "lazydocker", "name": "lazydocker", "installMethod": "brew" },
283
+ { "id": "docker", "name": "Docker", "installMethod": "brew" },
284
+ { "id": "docker-compose", "name": "Docker Compose", "installMethod": "brew" },
285
+ { "id": "kubectl", "name": "kubectl", "installMethod": "brew" },
286
+ { "id": "k9s", "name": "k9s", "installMethod": "brew" },
287
+ { "id": "terraform", "name": "Terraform", "installMethod": "brew" },
288
+ { "id": "packer", "name": "Packer", "installMethod": "brew" },
289
+ { "id": "vagrant", "name": "Vagrant", "installMethod": "brew" },
290
+ { "id": "ansible-dev", "name": "Ansible (via brew)", "installMethod": "brew" },
291
+ { "id": "neovim", "name": "Neovim", "installMethod": "brew" },
292
+ { "id": "tmux", "name": "tmux", "installMethod": "brew" },
293
+ { "id": "zsh", "name": "Zsh", "installMethod": "brew" },
294
+ { "id": "oh-my-zsh", "name": "Oh My Zsh", "installMethod": "script" },
295
+ { "id": "starship-brew", "name": "Starship (via brew)", "installMethod": "brew" },
296
+ { "id": "htop", "name": "htop", "installMethod": "brew" },
297
+ { "id": "ncdu", "name": "ncdu", "installMethod": "brew" },
298
+ { "id": "tree", "name": "tree", "installMethod": "brew" },
299
+ { "id": "jq", "name": "jq", "installMethod": "brew" },
300
+ { "id": "yq", "name": "yq", "installMethod": "brew" },
301
+ { "id": "curl", "name": "curl", "installMethod": "brew" },
302
+ { "id": "wget", "name": "wget", "installMethod": "brew" },
303
+ { "id": "rsync", "name": "rsync", "installMethod": "brew" },
304
+ { "id": "openssl", "name": "OpenSSL", "installMethod": "brew" },
305
+ { "id": "watchman", "name": "Watchman", "installMethod": "brew" },
306
+ { "id": "ffmpeg", "name": "FFmpeg", "installMethod": "brew" },
307
+ { "id": "imagemagick", "name": "ImageMagick", "installMethod": "brew" },
308
+ { "id": "shellcheck", "name": "ShellCheck", "installMethod": "brew" },
309
+ { "id": "shfmt", "name": "shfmt", "installMethod": "brew" },
310
+ { "id": "hadolint", "name": "Hadolint", "installMethod": "brew" },
311
+ { "id": "tfsec", "name": "tfsec", "installMethod": "brew" },
312
+ { "id": "checkov", "name": "Checkov", "installMethod": "pip" },
313
+ { "id": "trivy", "name": "Trivy", "installMethod": "brew" },
314
+ { "id": "snyk", "name": "Snyk", "installMethod": "npm" },
315
+ { "id": "sonarqube", "name": "SonarQube Scanner", "installMethod": "brew" }
316
+ ]
317
+ },
318
+ {
319
+ "id": "artificial-intelligence",
320
+ "name": "Artificial Intelligence",
321
+ "icon": "💻",
322
+ "tools": [
323
+ { "id": "@anthropic-ai/claude-code", "name": "Claude Code", "installMethod": "npm", "command": "claude" },
324
+ { "id": "@openai/codex", "name": "OpenAI Codex CLI", "installMethod": "npm", "command": "codex" },
325
+ { "id": "aider-chat", "name": "Aider", "installMethod": "pip", "command": "aider" },
326
+ { "id": "@githubnext/github-copilot-cli", "name": "GitHub Copilot CLI", "installMethod": "npm", "command": "github-copilot-cli" },
327
+ { "id": "@anthropic-ai/gemini-cli", "name": "Google Gemini CLI", "installMethod": "npm", "command": "gemini" },
328
+ { "id": "amazon-q-developer-cli", "name": "Amazon Q Developer CLI", "installMethod": "pip", "command": "q" },
329
+ { "id": "@plandex/cli", "name": "Plandex", "installMethod": "npm", "command": "plandex" },
330
+ { "id": "mentat", "name": "Mentat", "installMethod": "pip", "command": "mentat" },
331
+ { "id": "openhands", "name": "OpenHands CLI", "installMethod": "pip", "command": "openhands" },
332
+ { "id": "sweagent", "name": "SWE-agent", "installMethod": "pip", "command": "sweagent" },
333
+ { "id": "gpt-engineer", "name": "GPT Engineer", "installMethod": "pip", "command": "gpt-engineer" },
334
+ { "id": "smol-developer", "name": "Smol Developer", "installMethod": "npm", "command": "smol-dev" },
335
+ { "id": "llm", "name": "LLM (Simon Willison)", "installMethod": "pip", "command": "llm" },
336
+ { "id": "ollama", "name": "Ollama", "installMethod": "brew", "command": "ollama" },
337
+ { "id": "shell-gpt", "name": "Shell-GPT (sgpt)", "installMethod": "pip", "command": "sgpt" },
338
+ { "id": "aichat", "name": "AIChat", "installMethod": "cargo", "command": "aichat" },
339
+ { "id": "bito", "name": "Bito CLI", "installMethod": "npm", "command": "bito" },
340
+ { "id": "copilot-ext", "name": "GitHub Copilot (IDE)", "installMethod": "link", "url": "https://marketplace.visualstudio.com/items?itemName=GitHub.copilot" },
341
+ { "id": "claude-ide-ext", "name": "Claude for IDE", "installMethod": "link", "url": "https://marketplace.visualstudio.com/items?itemName=anthropic.claude-code" },
342
+ { "id": "continue-ext", "name": "Continue", "installMethod": "link", "url": "https://marketplace.visualstudio.com/items?itemName=Continue.continue" },
343
+ { "id": "tabnine-ext", "name": "Tabnine", "installMethod": "link", "url": "https://marketplace.visualstudio.com/items?itemName=TabNine.tabnine-vscode" },
344
+ { "id": "codeium-ext", "name": "Codeium", "installMethod": "link", "url": "https://marketplace.visualstudio.com/items?itemName=Codeium.codeium" },
345
+ { "id": "cody-ext", "name": "Sourcegraph Cody", "installMethod": "link", "url": "https://marketplace.visualstudio.com/items?itemName=sourcegraph.cody-ai" },
346
+ { "id": "supermaven-ext", "name": "Supermaven", "installMethod": "link", "url": "https://marketplace.visualstudio.com/items?itemName=supermaven.supermaven-vscode" },
347
+ { "id": "blackbox-ext", "name": "Blackbox AI", "installMethod": "link", "url": "https://marketplace.visualstudio.com/items?itemName=Blackboxapp.blackbox" },
348
+ { "id": "codegeex-ext", "name": "CodeGeeX", "installMethod": "link", "url": "https://marketplace.visualstudio.com/items?itemName=aminer.codegeex" },
349
+ { "id": "askcodi-ext", "name": "AskCodi", "installMethod": "link", "url": "https://marketplace.visualstudio.com/items?itemName=AskCodi.askcodi" },
350
+ { "id": "safurai-ext", "name": "Safurai", "installMethod": "link", "url": "https://plugins.jetbrains.com/plugin/23446-safurai" },
351
+ { "id": "pieces-ext", "name": "Pieces for Developers", "installMethod": "link", "url": "https://marketplace.visualstudio.com/items?itemName=MeshIntelligentTechnologiesInc.pieces-vscode" },
352
+ { "id": "mutable-ext", "name": "Mutable AI", "installMethod": "link", "url": "https://marketplace.visualstudio.com/items?itemName=MutableAI.mutableai" },
353
+ { "id": "twinny-ext", "name": "Twinny", "installMethod": "link", "url": "https://marketplace.visualstudio.com/items?itemName=rjmacarthy.twinny" },
354
+ { "id": "localpilot-ext", "name": "LocalPilot", "installMethod": "link", "url": "https://marketplace.visualstudio.com/items?itemName=shengchen.localpilot" }
355
+ ]
356
+ }
357
+ ]
358
+ }