cecli-dev 0.95.5__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.
Files changed (366) hide show
  1. cecli/__init__.py +20 -0
  2. cecli/__main__.py +4 -0
  3. cecli/_version.py +34 -0
  4. cecli/args.py +1092 -0
  5. cecli/args_formatter.py +228 -0
  6. cecli/change_tracker.py +133 -0
  7. cecli/coders/__init__.py +38 -0
  8. cecli/coders/agent_coder.py +1872 -0
  9. cecli/coders/architect_coder.py +63 -0
  10. cecli/coders/ask_coder.py +8 -0
  11. cecli/coders/base_coder.py +3993 -0
  12. cecli/coders/chat_chunks.py +116 -0
  13. cecli/coders/context_coder.py +52 -0
  14. cecli/coders/copypaste_coder.py +269 -0
  15. cecli/coders/editblock_coder.py +656 -0
  16. cecli/coders/editblock_fenced_coder.py +9 -0
  17. cecli/coders/editblock_func_coder.py +140 -0
  18. cecli/coders/editor_diff_fenced_coder.py +8 -0
  19. cecli/coders/editor_editblock_coder.py +8 -0
  20. cecli/coders/editor_whole_coder.py +8 -0
  21. cecli/coders/help_coder.py +15 -0
  22. cecli/coders/patch_coder.py +705 -0
  23. cecli/coders/search_replace.py +757 -0
  24. cecli/coders/shell.py +37 -0
  25. cecli/coders/single_wholefile_func_coder.py +101 -0
  26. cecli/coders/udiff_coder.py +428 -0
  27. cecli/coders/udiff_simple.py +12 -0
  28. cecli/coders/wholefile_coder.py +143 -0
  29. cecli/coders/wholefile_func_coder.py +133 -0
  30. cecli/commands/__init__.py +192 -0
  31. cecli/commands/add.py +226 -0
  32. cecli/commands/agent.py +51 -0
  33. cecli/commands/architect.py +46 -0
  34. cecli/commands/ask.py +44 -0
  35. cecli/commands/chat_mode.py +0 -0
  36. cecli/commands/clear.py +37 -0
  37. cecli/commands/code.py +46 -0
  38. cecli/commands/command_prefix.py +44 -0
  39. cecli/commands/commit.py +52 -0
  40. cecli/commands/context.py +47 -0
  41. cecli/commands/context_blocks.py +124 -0
  42. cecli/commands/context_management.py +51 -0
  43. cecli/commands/copy.py +62 -0
  44. cecli/commands/copy_context.py +81 -0
  45. cecli/commands/core.py +287 -0
  46. cecli/commands/diff.py +68 -0
  47. cecli/commands/drop.py +217 -0
  48. cecli/commands/editor.py +78 -0
  49. cecli/commands/exit.py +55 -0
  50. cecli/commands/git.py +57 -0
  51. cecli/commands/help.py +140 -0
  52. cecli/commands/history_search.py +40 -0
  53. cecli/commands/lint.py +109 -0
  54. cecli/commands/list_sessions.py +56 -0
  55. cecli/commands/load.py +85 -0
  56. cecli/commands/load_session.py +48 -0
  57. cecli/commands/load_skill.py +68 -0
  58. cecli/commands/ls.py +75 -0
  59. cecli/commands/map.py +37 -0
  60. cecli/commands/map_refresh.py +35 -0
  61. cecli/commands/model.py +118 -0
  62. cecli/commands/models.py +41 -0
  63. cecli/commands/multiline_mode.py +38 -0
  64. cecli/commands/paste.py +91 -0
  65. cecli/commands/quit.py +32 -0
  66. cecli/commands/read_only.py +267 -0
  67. cecli/commands/read_only_stub.py +270 -0
  68. cecli/commands/reasoning_effort.py +70 -0
  69. cecli/commands/remove_skill.py +68 -0
  70. cecli/commands/report.py +40 -0
  71. cecli/commands/reset.py +88 -0
  72. cecli/commands/run.py +99 -0
  73. cecli/commands/save.py +49 -0
  74. cecli/commands/save_session.py +43 -0
  75. cecli/commands/settings.py +69 -0
  76. cecli/commands/test.py +58 -0
  77. cecli/commands/think_tokens.py +74 -0
  78. cecli/commands/tokens.py +207 -0
  79. cecli/commands/undo.py +145 -0
  80. cecli/commands/utils/__init__.py +0 -0
  81. cecli/commands/utils/base_command.py +131 -0
  82. cecli/commands/utils/helpers.py +142 -0
  83. cecli/commands/utils/registry.py +53 -0
  84. cecli/commands/utils/save_load_manager.py +98 -0
  85. cecli/commands/voice.py +78 -0
  86. cecli/commands/weak_model.py +123 -0
  87. cecli/commands/web.py +87 -0
  88. cecli/deprecated_args.py +185 -0
  89. cecli/diffs.py +129 -0
  90. cecli/dump.py +29 -0
  91. cecli/editor.py +147 -0
  92. cecli/exceptions.py +115 -0
  93. cecli/format_settings.py +26 -0
  94. cecli/help.py +119 -0
  95. cecli/help_pats.py +19 -0
  96. cecli/helpers/__init__.py +9 -0
  97. cecli/helpers/copypaste.py +123 -0
  98. cecli/helpers/coroutines.py +8 -0
  99. cecli/helpers/file_searcher.py +142 -0
  100. cecli/helpers/model_providers.py +552 -0
  101. cecli/helpers/plugin_manager.py +81 -0
  102. cecli/helpers/profiler.py +162 -0
  103. cecli/helpers/requests.py +77 -0
  104. cecli/helpers/similarity.py +98 -0
  105. cecli/helpers/skills.py +577 -0
  106. cecli/history.py +186 -0
  107. cecli/io.py +1782 -0
  108. cecli/linter.py +304 -0
  109. cecli/llm.py +101 -0
  110. cecli/main.py +1280 -0
  111. cecli/mcp/__init__.py +154 -0
  112. cecli/mcp/oauth.py +250 -0
  113. cecli/mcp/server.py +278 -0
  114. cecli/mdstream.py +243 -0
  115. cecli/models.py +1255 -0
  116. cecli/onboarding.py +301 -0
  117. cecli/prompts/__init__.py +0 -0
  118. cecli/prompts/agent.yml +71 -0
  119. cecli/prompts/architect.yml +35 -0
  120. cecli/prompts/ask.yml +31 -0
  121. cecli/prompts/base.yml +99 -0
  122. cecli/prompts/context.yml +60 -0
  123. cecli/prompts/copypaste.yml +5 -0
  124. cecli/prompts/editblock.yml +143 -0
  125. cecli/prompts/editblock_fenced.yml +106 -0
  126. cecli/prompts/editblock_func.yml +25 -0
  127. cecli/prompts/editor_diff_fenced.yml +115 -0
  128. cecli/prompts/editor_editblock.yml +121 -0
  129. cecli/prompts/editor_whole.yml +46 -0
  130. cecli/prompts/help.yml +37 -0
  131. cecli/prompts/patch.yml +110 -0
  132. cecli/prompts/single_wholefile_func.yml +24 -0
  133. cecli/prompts/udiff.yml +106 -0
  134. cecli/prompts/udiff_simple.yml +13 -0
  135. cecli/prompts/utils/__init__.py +0 -0
  136. cecli/prompts/utils/prompt_registry.py +167 -0
  137. cecli/prompts/utils/system.py +56 -0
  138. cecli/prompts/wholefile.yml +50 -0
  139. cecli/prompts/wholefile_func.yml +24 -0
  140. cecli/queries/tree-sitter-language-pack/README.md +7 -0
  141. cecli/queries/tree-sitter-language-pack/arduino-tags.scm +5 -0
  142. cecli/queries/tree-sitter-language-pack/c-tags.scm +12 -0
  143. cecli/queries/tree-sitter-language-pack/chatito-tags.scm +16 -0
  144. cecli/queries/tree-sitter-language-pack/clojure-tags.scm +12 -0
  145. cecli/queries/tree-sitter-language-pack/commonlisp-tags.scm +127 -0
  146. cecli/queries/tree-sitter-language-pack/cpp-tags.scm +18 -0
  147. cecli/queries/tree-sitter-language-pack/csharp-tags.scm +32 -0
  148. cecli/queries/tree-sitter-language-pack/d-tags.scm +26 -0
  149. cecli/queries/tree-sitter-language-pack/dart-tags.scm +97 -0
  150. cecli/queries/tree-sitter-language-pack/elisp-tags.scm +5 -0
  151. cecli/queries/tree-sitter-language-pack/elixir-tags.scm +59 -0
  152. cecli/queries/tree-sitter-language-pack/elm-tags.scm +22 -0
  153. cecli/queries/tree-sitter-language-pack/gleam-tags.scm +41 -0
  154. cecli/queries/tree-sitter-language-pack/go-tags.scm +49 -0
  155. cecli/queries/tree-sitter-language-pack/java-tags.scm +26 -0
  156. cecli/queries/tree-sitter-language-pack/javascript-tags.scm +96 -0
  157. cecli/queries/tree-sitter-language-pack/lua-tags.scm +39 -0
  158. cecli/queries/tree-sitter-language-pack/matlab-tags.scm +10 -0
  159. cecli/queries/tree-sitter-language-pack/ocaml-tags.scm +115 -0
  160. cecli/queries/tree-sitter-language-pack/ocaml_interface-tags.scm +101 -0
  161. cecli/queries/tree-sitter-language-pack/pony-tags.scm +39 -0
  162. cecli/queries/tree-sitter-language-pack/properties-tags.scm +5 -0
  163. cecli/queries/tree-sitter-language-pack/python-tags.scm +24 -0
  164. cecli/queries/tree-sitter-language-pack/r-tags.scm +27 -0
  165. cecli/queries/tree-sitter-language-pack/racket-tags.scm +12 -0
  166. cecli/queries/tree-sitter-language-pack/ruby-tags.scm +69 -0
  167. cecli/queries/tree-sitter-language-pack/rust-tags.scm +63 -0
  168. cecli/queries/tree-sitter-language-pack/solidity-tags.scm +43 -0
  169. cecli/queries/tree-sitter-language-pack/swift-tags.scm +54 -0
  170. cecli/queries/tree-sitter-language-pack/udev-tags.scm +20 -0
  171. cecli/queries/tree-sitter-languages/README.md +24 -0
  172. cecli/queries/tree-sitter-languages/c-tags.scm +12 -0
  173. cecli/queries/tree-sitter-languages/c_sharp-tags.scm +52 -0
  174. cecli/queries/tree-sitter-languages/cpp-tags.scm +18 -0
  175. cecli/queries/tree-sitter-languages/dart-tags.scm +92 -0
  176. cecli/queries/tree-sitter-languages/elisp-tags.scm +8 -0
  177. cecli/queries/tree-sitter-languages/elixir-tags.scm +59 -0
  178. cecli/queries/tree-sitter-languages/elm-tags.scm +22 -0
  179. cecli/queries/tree-sitter-languages/fortran-tags.scm +18 -0
  180. cecli/queries/tree-sitter-languages/go-tags.scm +36 -0
  181. cecli/queries/tree-sitter-languages/haskell-tags.scm +5 -0
  182. cecli/queries/tree-sitter-languages/hcl-tags.scm +77 -0
  183. cecli/queries/tree-sitter-languages/java-tags.scm +26 -0
  184. cecli/queries/tree-sitter-languages/javascript-tags.scm +96 -0
  185. cecli/queries/tree-sitter-languages/julia-tags.scm +60 -0
  186. cecli/queries/tree-sitter-languages/kotlin-tags.scm +30 -0
  187. cecli/queries/tree-sitter-languages/matlab-tags.scm +10 -0
  188. cecli/queries/tree-sitter-languages/ocaml-tags.scm +115 -0
  189. cecli/queries/tree-sitter-languages/ocaml_interface-tags.scm +104 -0
  190. cecli/queries/tree-sitter-languages/php-tags.scm +32 -0
  191. cecli/queries/tree-sitter-languages/python-tags.scm +22 -0
  192. cecli/queries/tree-sitter-languages/ql-tags.scm +26 -0
  193. cecli/queries/tree-sitter-languages/ruby-tags.scm +69 -0
  194. cecli/queries/tree-sitter-languages/rust-tags.scm +63 -0
  195. cecli/queries/tree-sitter-languages/scala-tags.scm +64 -0
  196. cecli/queries/tree-sitter-languages/typescript-tags.scm +44 -0
  197. cecli/queries/tree-sitter-languages/zig-tags.scm +20 -0
  198. cecli/reasoning_tags.py +82 -0
  199. cecli/repo.py +626 -0
  200. cecli/repomap.py +1368 -0
  201. cecli/report.py +260 -0
  202. cecli/resources/__init__.py +3 -0
  203. cecli/resources/model-metadata.json +25751 -0
  204. cecli/resources/model-settings.yml +2394 -0
  205. cecli/resources/providers.json +67 -0
  206. cecli/run_cmd.py +143 -0
  207. cecli/scrape.py +295 -0
  208. cecli/sendchat.py +250 -0
  209. cecli/sessions.py +281 -0
  210. cecli/special.py +203 -0
  211. cecli/tools/__init__.py +72 -0
  212. cecli/tools/command.py +103 -0
  213. cecli/tools/command_interactive.py +113 -0
  214. cecli/tools/context_manager.py +175 -0
  215. cecli/tools/delete_block.py +154 -0
  216. cecli/tools/delete_line.py +120 -0
  217. cecli/tools/delete_lines.py +144 -0
  218. cecli/tools/extract_lines.py +281 -0
  219. cecli/tools/finished.py +35 -0
  220. cecli/tools/git_branch.py +132 -0
  221. cecli/tools/git_diff.py +49 -0
  222. cecli/tools/git_log.py +43 -0
  223. cecli/tools/git_remote.py +39 -0
  224. cecli/tools/git_show.py +37 -0
  225. cecli/tools/git_status.py +32 -0
  226. cecli/tools/grep.py +242 -0
  227. cecli/tools/indent_lines.py +195 -0
  228. cecli/tools/insert_block.py +263 -0
  229. cecli/tools/list_changes.py +71 -0
  230. cecli/tools/load_skill.py +51 -0
  231. cecli/tools/ls.py +77 -0
  232. cecli/tools/remove_skill.py +51 -0
  233. cecli/tools/replace_all.py +113 -0
  234. cecli/tools/replace_line.py +135 -0
  235. cecli/tools/replace_lines.py +180 -0
  236. cecli/tools/replace_text.py +186 -0
  237. cecli/tools/show_numbered_context.py +137 -0
  238. cecli/tools/thinking.py +52 -0
  239. cecli/tools/undo_change.py +82 -0
  240. cecli/tools/update_todo_list.py +148 -0
  241. cecli/tools/utils/base_tool.py +64 -0
  242. cecli/tools/utils/helpers.py +359 -0
  243. cecli/tools/utils/output.py +119 -0
  244. cecli/tools/utils/registry.py +145 -0
  245. cecli/tools/view_files_matching.py +138 -0
  246. cecli/tools/view_files_with_symbol.py +117 -0
  247. cecli/tui/__init__.py +83 -0
  248. cecli/tui/app.py +971 -0
  249. cecli/tui/io.py +566 -0
  250. cecli/tui/styles.tcss +117 -0
  251. cecli/tui/widgets/__init__.py +19 -0
  252. cecli/tui/widgets/completion_bar.py +331 -0
  253. cecli/tui/widgets/file_list.py +76 -0
  254. cecli/tui/widgets/footer.py +165 -0
  255. cecli/tui/widgets/input_area.py +320 -0
  256. cecli/tui/widgets/key_hints.py +16 -0
  257. cecli/tui/widgets/output.py +354 -0
  258. cecli/tui/widgets/status_bar.py +279 -0
  259. cecli/tui/worker.py +160 -0
  260. cecli/urls.py +16 -0
  261. cecli/utils.py +499 -0
  262. cecli/versioncheck.py +90 -0
  263. cecli/voice.py +90 -0
  264. cecli/waiting.py +38 -0
  265. cecli/watch.py +316 -0
  266. cecli/watch_prompts.py +12 -0
  267. cecli/website/Gemfile +8 -0
  268. cecli/website/_includes/blame.md +162 -0
  269. cecli/website/_includes/get-started.md +22 -0
  270. cecli/website/_includes/help-tip.md +5 -0
  271. cecli/website/_includes/help.md +24 -0
  272. cecli/website/_includes/install.md +5 -0
  273. cecli/website/_includes/keys.md +4 -0
  274. cecli/website/_includes/model-warnings.md +67 -0
  275. cecli/website/_includes/multi-line.md +22 -0
  276. cecli/website/_includes/python-m-aider.md +5 -0
  277. cecli/website/_includes/recording.css +228 -0
  278. cecli/website/_includes/recording.md +34 -0
  279. cecli/website/_includes/replit-pipx.md +9 -0
  280. cecli/website/_includes/works-best.md +1 -0
  281. cecli/website/_sass/custom/custom.scss +103 -0
  282. cecli/website/docs/config/adv-model-settings.md +2498 -0
  283. cecli/website/docs/config/agent-mode.md +320 -0
  284. cecli/website/docs/config/aider_conf.md +548 -0
  285. cecli/website/docs/config/api-keys.md +90 -0
  286. cecli/website/docs/config/custom-commands.md +187 -0
  287. cecli/website/docs/config/dotenv.md +493 -0
  288. cecli/website/docs/config/editor.md +127 -0
  289. cecli/website/docs/config/mcp.md +210 -0
  290. cecli/website/docs/config/model-aliases.md +173 -0
  291. cecli/website/docs/config/options.md +890 -0
  292. cecli/website/docs/config/reasoning.md +210 -0
  293. cecli/website/docs/config/skills.md +172 -0
  294. cecli/website/docs/config/tui.md +126 -0
  295. cecli/website/docs/config.md +44 -0
  296. cecli/website/docs/faq.md +379 -0
  297. cecli/website/docs/git.md +76 -0
  298. cecli/website/docs/index.md +47 -0
  299. cecli/website/docs/install/codespaces.md +39 -0
  300. cecli/website/docs/install/docker.md +48 -0
  301. cecli/website/docs/install/optional.md +100 -0
  302. cecli/website/docs/install/replit.md +8 -0
  303. cecli/website/docs/install.md +115 -0
  304. cecli/website/docs/languages.md +264 -0
  305. cecli/website/docs/legal/contributor-agreement.md +111 -0
  306. cecli/website/docs/legal/privacy.md +104 -0
  307. cecli/website/docs/llms/anthropic.md +77 -0
  308. cecli/website/docs/llms/azure.md +48 -0
  309. cecli/website/docs/llms/bedrock.md +132 -0
  310. cecli/website/docs/llms/cohere.md +34 -0
  311. cecli/website/docs/llms/deepseek.md +32 -0
  312. cecli/website/docs/llms/gemini.md +49 -0
  313. cecli/website/docs/llms/github.md +111 -0
  314. cecli/website/docs/llms/groq.md +36 -0
  315. cecli/website/docs/llms/lm-studio.md +39 -0
  316. cecli/website/docs/llms/ollama.md +75 -0
  317. cecli/website/docs/llms/openai-compat.md +39 -0
  318. cecli/website/docs/llms/openai.md +58 -0
  319. cecli/website/docs/llms/openrouter.md +78 -0
  320. cecli/website/docs/llms/other.md +117 -0
  321. cecli/website/docs/llms/vertex.md +50 -0
  322. cecli/website/docs/llms/warnings.md +10 -0
  323. cecli/website/docs/llms/xai.md +53 -0
  324. cecli/website/docs/llms.md +54 -0
  325. cecli/website/docs/more/analytics.md +127 -0
  326. cecli/website/docs/more/edit-formats.md +116 -0
  327. cecli/website/docs/more/infinite-output.md +192 -0
  328. cecli/website/docs/more-info.md +8 -0
  329. cecli/website/docs/recordings/auto-accept-architect.md +31 -0
  330. cecli/website/docs/recordings/dont-drop-original-read-files.md +35 -0
  331. cecli/website/docs/recordings/index.md +21 -0
  332. cecli/website/docs/recordings/model-accepts-settings.md +69 -0
  333. cecli/website/docs/recordings/tree-sitter-language-pack.md +80 -0
  334. cecli/website/docs/repomap.md +112 -0
  335. cecli/website/docs/scripting.md +100 -0
  336. cecli/website/docs/sessions.md +213 -0
  337. cecli/website/docs/troubleshooting/aider-not-found.md +24 -0
  338. cecli/website/docs/troubleshooting/edit-errors.md +76 -0
  339. cecli/website/docs/troubleshooting/imports.md +62 -0
  340. cecli/website/docs/troubleshooting/models-and-keys.md +54 -0
  341. cecli/website/docs/troubleshooting/support.md +79 -0
  342. cecli/website/docs/troubleshooting/token-limits.md +96 -0
  343. cecli/website/docs/troubleshooting/warnings.md +12 -0
  344. cecli/website/docs/troubleshooting.md +11 -0
  345. cecli/website/docs/usage/browser.md +57 -0
  346. cecli/website/docs/usage/caching.md +49 -0
  347. cecli/website/docs/usage/commands.md +133 -0
  348. cecli/website/docs/usage/conventions.md +119 -0
  349. cecli/website/docs/usage/copypaste.md +136 -0
  350. cecli/website/docs/usage/images-urls.md +48 -0
  351. cecli/website/docs/usage/lint-test.md +118 -0
  352. cecli/website/docs/usage/modes.md +211 -0
  353. cecli/website/docs/usage/not-code.md +179 -0
  354. cecli/website/docs/usage/notifications.md +87 -0
  355. cecli/website/docs/usage/tips.md +79 -0
  356. cecli/website/docs/usage/tutorials.md +30 -0
  357. cecli/website/docs/usage/voice.md +121 -0
  358. cecli/website/docs/usage/watch.md +294 -0
  359. cecli/website/docs/usage.md +102 -0
  360. cecli/website/share/index.md +101 -0
  361. cecli_dev-0.95.5.dist-info/METADATA +549 -0
  362. cecli_dev-0.95.5.dist-info/RECORD +366 -0
  363. cecli_dev-0.95.5.dist-info/WHEEL +5 -0
  364. cecli_dev-0.95.5.dist-info/entry_points.txt +4 -0
  365. cecli_dev-0.95.5.dist-info/licenses/LICENSE.txt +202 -0
  366. cecli_dev-0.95.5.dist-info/top_level.txt +1 -0
@@ -0,0 +1,549 @@
1
+ Metadata-Version: 2.4
2
+ Name: cecli-dev
3
+ Version: 0.95.5
4
+ Summary: we also can't pronounce cecli
5
+ Project-URL: Homepage, https://github.com/dwash96/cecli
6
+ Project-URL: Documentation, https://github.com/dwash96/cecli
7
+ Project-URL: Repository, https://github.com/dwash96/cecli
8
+ Classifier: Development Status :: 4 - Beta
9
+ Classifier: Environment :: Console
10
+ Classifier: Intended Audience :: Developers
11
+ Classifier: License :: OSI Approved :: Apache Software License
12
+ Classifier: Programming Language :: Python :: 3
13
+ Classifier: Programming Language :: Python :: 3.10
14
+ Classifier: Programming Language :: Python :: 3.11
15
+ Classifier: Programming Language :: Python :: 3.12
16
+ Classifier: Programming Language :: Python
17
+ Classifier: Topic :: Software Development
18
+ Requires-Python: >=3.10
19
+ Description-Content-Type: text/markdown
20
+ License-File: LICENSE.txt
21
+ Requires-Dist: pydub>=0.25.1
22
+ Requires-Dist: configargparse>=1.7.1
23
+ Requires-Dist: GitPython>=3.1.45
24
+ Requires-Dist: jsonschema>=4.25.0
25
+ Requires-Dist: rich>=14.1.0
26
+ Requires-Dist: prompt_toolkit
27
+ Requires-Dist: backoff>=2.2.1
28
+ Requires-Dist: pathspec>=0.12.1
29
+ Requires-Dist: diskcache>=5.6.3
30
+ Requires-Dist: grep_ast
31
+ Requires-Dist: packaging>=25.0
32
+ Requires-Dist: sounddevice>=0.5.2
33
+ Requires-Dist: soundfile>=0.13.1
34
+ Requires-Dist: beautifulsoup4>=4.13.4
35
+ Requires-Dist: PyYAML>=6.0.2
36
+ Requires-Dist: diff-match-patch>=20241021
37
+ Requires-Dist: pypandoc>=1.15
38
+ Requires-Dist: litellm>=1.80.11
39
+ Requires-Dist: flake8>=7.3.0
40
+ Requires-Dist: importlib_resources
41
+ Requires-Dist: pyperclip>=1.9.0
42
+ Requires-Dist: pexpect>=4.9.0
43
+ Requires-Dist: json5>=0.12.0
44
+ Requires-Dist: psutil>=7.0.0
45
+ Requires-Dist: watchfiles>=1.1.0
46
+ Requires-Dist: socksio>=1.0.0
47
+ Requires-Dist: pillow>=11.3.0
48
+ Requires-Dist: shtab>=1.7.2
49
+ Requires-Dist: oslex>=0.1.3
50
+ Requires-Dist: google-generativeai>=0.8.5
51
+ Requires-Dist: mcp>=1.24.0
52
+ Requires-Dist: textual>=6.0.0
53
+ Requires-Dist: truststore
54
+ Requires-Dist: rustworkx>=0.15.0
55
+ Requires-Dist: scipy>=1.15.3
56
+ Requires-Dist: importlib-metadata>=7.2.1
57
+ Requires-Dist: tree-sitter==0.23.2; python_version < "3.10"
58
+ Requires-Dist: tree-sitter>=0.25.1; python_version >= "3.10"
59
+ Provides-Extra: dev
60
+ Requires-Dist: pytest; extra == "dev"
61
+ Requires-Dist: pytest-asyncio; extra == "dev"
62
+ Requires-Dist: pytest-env; extra == "dev"
63
+ Requires-Dist: pytest-mock; extra == "dev"
64
+ Requires-Dist: pip-tools; extra == "dev"
65
+ Requires-Dist: lox; extra == "dev"
66
+ Requires-Dist: matplotlib; extra == "dev"
67
+ Requires-Dist: pandas; extra == "dev"
68
+ Requires-Dist: typer; extra == "dev"
69
+ Requires-Dist: imgcat; extra == "dev"
70
+ Requires-Dist: pre-commit; extra == "dev"
71
+ Requires-Dist: cogapp; extra == "dev"
72
+ Requires-Dist: semver; extra == "dev"
73
+ Requires-Dist: codespell; extra == "dev"
74
+ Requires-Dist: uv; extra == "dev"
75
+ Requires-Dist: google-cloud-bigquery; extra == "dev"
76
+ Provides-Extra: help
77
+ Requires-Dist: llama-index-embeddings-huggingface; extra == "help"
78
+ Requires-Dist: numpy>=1.26.4; extra == "help"
79
+ Provides-Extra: playwright
80
+ Requires-Dist: playwright; extra == "playwright"
81
+ Provides-Extra: tui
82
+ Dynamic: license-file
83
+
84
+ ## Why `cecli`?
85
+
86
+ `cecli` (probably pronounced like "Cecily", aka `aider-ce`) is a community-driven fork of the [Aider](https://aider.chat/) AI pair programming tool.
87
+ Aider is a fantastic piece of software with a wonderful community but it has been painfully slow in receiving updates in the quickly evolving AI tooling space.
88
+
89
+ We aim to foster an open, collaborative ecosystem where new features, experiments, and improvements can be developed and shared rapidly. We believe in genuine FOSS principles and actively welcome contributors of all skill levels.
90
+
91
+ If you are looking for bleeding-edge features or want to get your hands dirty with the internals of an AI coding agent, here's your sign.
92
+ LLMs are a part of our lives from here on out so join us in learning about and crafting the future.
93
+
94
+ ### Links
95
+
96
+ [Discord Chat](https://discord.gg/AX9ZEA7nJn) 🞄
97
+ [Changelog](https://github.com/dwash96/cecli/blob/main/CHANGELOG.md) 🞄
98
+ [Issue Queue](https://github.com/dwash96/cecli/issues)
99
+
100
+ ## Documentation/Other Notes:
101
+
102
+ * [Agent Mode](https://github.com/dwash96/cecli/blob/main/aider/website/docs/config/agent-mode.md)
103
+ * [MCP Configuration](https://github.com/dwash96/cecli/blob/main/aider/website/docs/config/mcp.md)
104
+ * [TUI Configuration](https://github.com/dwash96/cecli/blob/main/aider/website/docs/config/tui.md)
105
+ * [Skills](https://github.com/dwash96/cecli/blob/main/aider/website/docs/config/skills.md)
106
+ * [Session Management](https://github.com/dwash96/cecli/blob/main/aider/website/docs/sessions.md)
107
+ * [Custom Commands](https://github.com/dwash96/cecli/blob/main/cecli/website/docs/config/custom-commands.md)
108
+ * [Custom Tools](https://github.com/dwash96/cecli/blob/main/cecli/website/docs/config/agent-mode.md#creating-custom-tools)
109
+ * [Advanced Model Configuration](https://github.com/dwash96/cecli/blob/main/aider/website/docs/config/model-aliases.md#advanced-model-settings)
110
+ * [Aider Original Documentation (still mostly applies)](https://aider.chat/)
111
+
112
+ You can see a selection of the enhancements and updates by comparing the help output:
113
+
114
+ ```bash
115
+ diff -uw --color <(aider --help) <(cecli --help)
116
+ ```
117
+
118
+ ## Installation Instructions
119
+ This project can be installed using several methods:
120
+
121
+ ### Package Installation
122
+ ```bash
123
+ pip install cecli.dev
124
+ ```
125
+
126
+ or
127
+
128
+ ```bash
129
+ uv pip install --native-tls cecli.dev
130
+ ```
131
+
132
+ The package exports a `cecli` command that accepts all of Aider's configuration options
133
+
134
+ ### Tool Installation
135
+ ```bash
136
+ uv tool install --native-tls --python python3.12 cecli.dev
137
+ ```
138
+
139
+ Use the tool installation so aider doesn't interfere with your development environment
140
+
141
+ ## Configuration
142
+
143
+ The documentation above contains the full set of allowed configuration options
144
+ but I highly recommend using an `.cecli.conf.yml` file. A good place to get started is:
145
+
146
+ ```yaml
147
+ model: <model of your choice>
148
+ agent: true
149
+ auto-commits: true
150
+ auto-save: true
151
+ auto-load: false
152
+ cache-prompts: true
153
+ check-update: true
154
+ debug: false
155
+ enable-context-compaction: true
156
+ context-compaction-max-tokens: 64000
157
+ env-file: .aider.env
158
+ show-model-warnings: true
159
+ use-enhanced-map: true
160
+ watch-files: false
161
+ tui: true
162
+
163
+ agent-config:
164
+ large_file_token_threshold: 12500
165
+ skip_cli_confirmations: false
166
+
167
+ mcp-servers:
168
+ mcpServers:
169
+ context7:
170
+ transport: http
171
+ url: https://mcp.context7.com/mcp
172
+ ```
173
+
174
+ Use the adjacent .aider.env file to store model api keys as environment variables, e.g:
175
+
176
+ ```
177
+ ANTHROPIC_API_KEY="..."
178
+ GEMINI_API_KEY="..."
179
+ OPENAI_API_KEY="..."
180
+ OPENROUTER_API_KEY="..."
181
+ DEEPSEEK_API_KEY="..."
182
+ ```
183
+
184
+ ### Run Program
185
+
186
+ If you are in the directory with your .aider.conf.yml file, then simply running `cecli` or `aider-ce` will start the agent with your configuration. If you want additional sandboxing, we publish a docker container that can be ran as follows:
187
+
188
+ ```bash
189
+ docker pull dustinwashington/aider-ce
190
+ docker run \
191
+ -it \
192
+ --user $(id -u):$(id -g) \
193
+ --volume $(pwd):/app dustinwashington/aider-ce \
194
+ --volume $(pwd)/.aider.conf.yml:/.aider.conf.yml \
195
+ --volume $(pwd)/.aider.env:/.aider/.env \
196
+ --config /app/.aider.conf.yml
197
+ ```
198
+
199
+ This command will make sure all commands ran by the coding agent happen in context of the docker container to protect the host file system from any infamous agentic mishap
200
+
201
+ ## Project Roadmap/Goals
202
+
203
+ The current priorities are to improve core capabilities and user experience of the Aider project
204
+
205
+ 1. **Base Asynchronicity (cecli coroutine-experiment branch)**
206
+ * [x] Refactor codebase to have the main loop run asynchronously
207
+ * [x] Update test harness to work with new asynchronous methods
208
+
209
+ 2. **Repo Map Accuracy** - [Discussion](https://github.com/dwash96/cecli/issues/45)
210
+ * [x] [Bias page ranking toward active/editable files in repo map parsing](https://github.com/Aider-AI/aider/issues/2405)
211
+ * [x] [Include import information in repo map for richer context](https://github.com/Aider-AI/aider/issues/2688)
212
+ * [x] [Handle non-unique symbols that break down in large codebases](https://github.com/Aider-AI/aider/issues/2341)
213
+
214
+ 3. **Context Discovery** - [Discussion](https://github.com/dwash96/cecli/issues/46)
215
+ * [ ] Develop AST-based search capabilities
216
+ * [ ] Enhance file search with ripgrep integration
217
+ * [ ] Implement RAG (Retrieval-Augmented Generation) for better code retrieval
218
+ * [ ] Build an explicit workflow and local tooling for internal discovery mechanisms
219
+
220
+ 4. **Context Delivery** - [Discussion](https://github.com/dwash96/cecli/issues/47)
221
+ * [ ] Use workflow for internal discovery to better target file snippets needed for specific tasks
222
+ * [ ] Add support for partial files and code snippets in model completion messages
223
+
224
+ 5. **TUI Experience** - [Discussion](https://github.com/dwash96/cecli/issues/48)
225
+ * [x] Add a full TUI (probably using textual) to have a visual interface competitive with the other coding agent terminal programs
226
+ * [x] Re-integrate pretty output formatting
227
+ * [x] Implement a response area, a prompt area with current auto completion capabilities, and a helper area for managing utility commands
228
+
229
+ 6. **Agent Mode** - [Discussion](https://github.com/dwash96/cecli/issues/111)
230
+ * [x] Renaming "navigator mode" to "agent mode" for simplicity
231
+ * [x] Add an explicit "finished" internal tool
232
+ * [x] Add a configuration json setting for agent mode to specify allowed local tools to use, tool call limits, etc.
233
+ * [ ] Add a RAG tool for the model to ask questions about the codebase
234
+ * [ ] Make the system prompts more aggressive about removing unneeded files/content from the context
235
+ * [ ] Add a plugin-like system for allowing agent mode to use user-defined tools in simple python files
236
+ * [x] Add a dynamic tool discovery tool to allow the system to have only the tools it needs in context
237
+
238
+ ### All Contributors (Both Cecli and Aider main)
239
+
240
+ <table>
241
+ <tbody>
242
+ <tr>
243
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=paul-gauthier">@paul-gauthier</a></td>
244
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=dwash96">@dwash96</a></td>
245
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=tekacs">@tekacs</a></td>
246
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=ErichBSchulz">@ErichBSchulz</a></td>
247
+ </tr>
248
+ <tr>
249
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=ei-grad">@ei-grad</a></td>
250
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=joshuavial">@joshuavial</a></td>
251
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=chrisnestrud">@chrisnestrud</a></td>
252
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=chr15m">@chr15m</a></td>
253
+ </tr>
254
+ <tr>
255
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=johbo">@johbo</a></td>
256
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=fry69">@fry69</a></td>
257
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=quinlanjager">@quinlanjager</a></td>
258
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=caseymcc">@caseymcc</a></td>
259
+ </tr>
260
+ <tr>
261
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=shladnik">@shladnik</a></td>
262
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=jamwil">@jamwil</a></td>
263
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=itlackey">@itlackey</a></td>
264
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=tomjuggler">@tomjuggler</a></td>
265
+ </tr>
266
+ <tr>
267
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=szmania">@szmania</a></td>
268
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=vk4s">@vk4s</a></td>
269
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=titusz">@titusz</a></td>
270
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=bphd">@bphd</a></td>
271
+ </tr>
272
+ <tr>
273
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=daniel-vainsencher">@daniel-vainsencher</a></td>
274
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=1broseidon">@1broseidon</a></td>
275
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=akaihola">@akaihola</a></td>
276
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=jalammar">@jalammar</a></td>
277
+ </tr>
278
+ <tr>
279
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=schpet">@schpet</a></td>
280
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=iamFIREcracker">@iamFIREcracker</a></td>
281
+ <td>JV</td>
282
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=KennyDizi">@KennyDizi</a></td>
283
+ </tr>
284
+ <tr>
285
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=ivanfioravanti">@ivanfioravanti</a></td>
286
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=mdeweerd">@mdeweerd</a></td>
287
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=itsmeknt">@itsmeknt</a></td>
288
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=fahmad91">@fahmad91</a></td>
289
+ </tr>
290
+ <tr>
291
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=cheahjs">@cheahjs</a></td>
292
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=youknow04">@youknow04</a></td>
293
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=pjcreath">@pjcreath</a></td>
294
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=pcamp">@pcamp</a></td>
295
+ </tr>
296
+ <tr>
297
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=miradnanali">@miradnanali</a></td>
298
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=o-nix">@o-nix</a></td>
299
+ <td>Jonathan Ellis</td>
300
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=codeofdusk">@codeofdusk</a></td>
301
+ </tr>
302
+ <tr>
303
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=claui">@claui</a></td>
304
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=jpshackelford">@jpshackelford</a></td>
305
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=Taik">@Taik</a></td>
306
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=Hambaobao">@Hambaobao</a></td>
307
+ </tr>
308
+ <tr>
309
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=therealmarv">@therealmarv</a></td>
310
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=muravvv">@muravvv</a></td>
311
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=hypn4">@hypn4</a></td>
312
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=gmoz22">@gmoz22</a></td>
313
+ </tr>
314
+ <tr>
315
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=contributor">@contributor</a></td>
316
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=ctoth">@ctoth</a></td>
317
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=thehunmonkgroup">@thehunmonkgroup</a></td>
318
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=gcp">@gcp</a></td>
319
+ </tr>
320
+ <tr>
321
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=sentienthouseplant">@sentienthouseplant</a></td>
322
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=ktakayama">@ktakayama</a></td>
323
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=lreeves">@lreeves</a></td>
324
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=nims11">@nims11</a></td>
325
+ </tr>
326
+ <tr>
327
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=preynal">@preynal</a></td>
328
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=tgbender">@tgbender</a></td>
329
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=apaz-cli">@apaz-cli</a></td>
330
+ <td>Alexander Kjeldaas</td>
331
+ </tr>
332
+ <tr>
333
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=zhyu">@zhyu</a></td>
334
+ <td>Yutaka Matsubara</td>
335
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=burnettk">@burnettk</a></td>
336
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=cryptekbits">@cryptekbits</a></td>
337
+ </tr>
338
+ <tr>
339
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=deansher">@deansher</a></td>
340
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=kennyfrc">@kennyfrc</a></td>
341
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=lentil32">@lentil32</a></td>
342
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=malkoG">@malkoG</a></td>
343
+ </tr>
344
+ <tr>
345
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=mubashir1osmani">@mubashir1osmani</a></td>
346
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=TimPut">@TimPut</a></td>
347
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=zjy1412">@zjy1412</a></td>
348
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=savioursho">@savioursho</a></td>
349
+ </tr>
350
+ <tr>
351
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=jayeshthk">@jayeshthk</a></td>
352
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=susliko">@susliko</a></td>
353
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=FeepingCreature">@FeepingCreature</a></td>
354
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=misteral">@misteral</a></td>
355
+ </tr>
356
+ <tr>
357
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=aelaguiz">@aelaguiz</a></td>
358
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=DhirajBhakta">@DhirajBhakta</a></td>
359
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=gopar">@gopar</a></td>
360
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=eltociear">@eltociear</a></td>
361
+ </tr>
362
+ <tr>
363
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=tao12345666333">@tao12345666333</a></td>
364
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=jpshack-at-palomar">@jpshack-at-palomar</a></td>
365
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=smh">@smh</a></td>
366
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=nhs000">@nhs000</a></td>
367
+ </tr>
368
+ <tr>
369
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=sannysanoff">@sannysanoff</a></td>
370
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=ryanfreckleton">@ryanfreckleton</a></td>
371
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=mbokinala">@mbokinala</a></td>
372
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=yamitzky">@yamitzky</a></td>
373
+ </tr>
374
+ <tr>
375
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=mobyvb">@mobyvb</a></td>
376
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=ozapinq">@ozapinq</a></td>
377
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=nicolasperez19">@nicolasperez19</a></td>
378
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=varchasgopalaswamy">@varchasgopalaswamy</a></td>
379
+ </tr>
380
+ <tr>
381
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=ffluk3">@ffluk3</a></td>
382
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=tanavamsikrishna">@tanavamsikrishna</a></td>
383
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=tylersatre">@tylersatre</a></td>
384
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=pcgeek86">@pcgeek86</a></td>
385
+ </tr>
386
+ <tr>
387
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=tamirzb">@tamirzb</a></td>
388
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=taha-yassine">@taha-yassine</a></td>
389
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=strayer">@strayer</a></td>
390
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=StevenTCramer">@StevenTCramer</a></td>
391
+ </tr>
392
+ <tr>
393
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=Skountz">@Skountz</a></td>
394
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=sestrella">@sestrella</a></td>
395
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=rnevius">@rnevius</a></td>
396
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=holoskii">@holoskii</a></td>
397
+ </tr>
398
+ <tr>
399
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=Netzvamp">@Netzvamp</a></td>
400
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=peterhadlaw">@peterhadlaw</a></td>
401
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=pauldw">@pauldw</a></td>
402
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=paulmaunders">@paulmaunders</a></td>
403
+ </tr>
404
+ <tr>
405
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=omri123">@omri123</a></td>
406
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=MatthewZMD">@MatthewZMD</a></td>
407
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=mbailey">@mbailey</a></td>
408
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=golergka">@golergka</a></td>
409
+ </tr>
410
+ <tr>
411
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=matfat55">@matfat55</a></td>
412
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=mtofano">@mtofano</a></td>
413
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=maledorak">@maledorak</a></td>
414
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=mlang">@mlang</a></td>
415
+ </tr>
416
+ <tr>
417
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=marcomayer">@marcomayer</a></td>
418
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=you-n-g">@you-n-g</a></td>
419
+ <td>wangboxue</td>
420
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=rti">@rti</a></td>
421
+ </tr>
422
+ <tr>
423
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=prmbiy">@prmbiy</a></td>
424
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=omarcinkonis">@omarcinkonis</a></td>
425
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=Oct4Pie">@Oct4Pie</a></td>
426
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=mark-asymbl">@mark-asymbl</a></td>
427
+ </tr>
428
+ <tr>
429
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=yazgoo">@yazgoo</a></td>
430
+ <td>michal.sliwa</td>
431
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=mdklab">@mdklab</a></td>
432
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=mario7421">@mario7421</a></td>
433
+ </tr>
434
+ <tr>
435
+ <td>liam.liu</td>
436
+ <td>kwmiebach</td>
437
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=kAIto47802">@kAIto47802</a></td>
438
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=jvmncs">@jvmncs</a></td>
439
+ </tr>
440
+ <tr>
441
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=hydai">@hydai</a></td>
442
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=hstoklosa">@hstoklosa</a></td>
443
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=gordonlukch">@gordonlukch</a></td>
444
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=develmusa">@develmusa</a></td>
445
+ </tr>
446
+ <tr>
447
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=coredevorg">@coredevorg</a></td>
448
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=cantalupo555">@cantalupo555</a></td>
449
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=caetanominuzzo">@caetanominuzzo</a></td>
450
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=yzx9">@yzx9</a></td>
451
+ </tr>
452
+ <tr>
453
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=zackees">@zackees</a></td>
454
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=wietsevenema">@wietsevenema</a></td>
455
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=krewenki">@krewenki</a></td>
456
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=vinnymac">@vinnymac</a></td>
457
+ </tr>
458
+ <tr>
459
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=szepeviktor">@szepeviktor</a></td>
460
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=lattwood">@lattwood</a></td>
461
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=spdustin">@spdustin</a></td>
462
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=henderkes">@henderkes</a></td>
463
+ </tr>
464
+ <tr>
465
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=daysm">@daysm</a></td>
466
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=devriesd">@devriesd</a></td>
467
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=daniel-sc">@daniel-sc</a></td>
468
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=damms005">@damms005</a></td>
469
+ </tr>
470
+ <tr>
471
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=curran">@curran</a></td>
472
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=cclauss">@cclauss</a></td>
473
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=cjoach">@cjoach</a></td>
474
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=csala">@csala</a></td>
475
+ </tr>
476
+ <tr>
477
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=bexelbie">@bexelbie</a></td>
478
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=branchv">@branchv</a></td>
479
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=bkowalik">@bkowalik</a></td>
480
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=h0x91b">@h0x91b</a></td>
481
+ </tr>
482
+ <tr>
483
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=aroffe99">@aroffe99</a></td>
484
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=banjo">@banjo</a></td>
485
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=anjor">@anjor</a></td>
486
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=andreypopp">@andreypopp</a></td>
487
+ </tr>
488
+ <tr>
489
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=ivnvxd">@ivnvxd</a></td>
490
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=andreakeesys">@andreakeesys</a></td>
491
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=ameramayreh">@ameramayreh</a></td>
492
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=a1ooha">@a1ooha</a></td>
493
+ </tr>
494
+ <tr>
495
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=maliayas">@maliayas</a></td>
496
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=akirak">@akirak</a></td>
497
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=adrianlzt">@adrianlzt</a></td>
498
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=codefromthecrypt">@codefromthecrypt</a></td>
499
+ </tr>
500
+ <tr>
501
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=aweis89">@aweis89</a></td>
502
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=aj47">@aj47</a></td>
503
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=noitcudni">@noitcudni</a></td>
504
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=solatis">@solatis</a></td>
505
+ </tr>
506
+ <tr>
507
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=webkonstantin">@webkonstantin</a></td>
508
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=khulnasoft-bot">@khulnasoft-bot</a></td>
509
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=KebobZ">@KebobZ</a></td>
510
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=acro5piano">@acro5piano</a></td>
511
+ </tr>
512
+ <tr>
513
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=josx">@josx</a></td>
514
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=joshvera">@joshvera</a></td>
515
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=jklina">@jklina</a></td>
516
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=jkeys089">@jkeys089</a></td>
517
+ </tr>
518
+ <tr>
519
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=johanvts">@johanvts</a></td>
520
+ <td>Jim White</td>
521
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=gengjiawen">@gengjiawen</a></td>
522
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=jevon">@jevon</a></td>
523
+ </tr>
524
+ <tr>
525
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=jesstelford">@jesstelford</a></td>
526
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=JeongJuhyeon">@JeongJuhyeon</a></td>
527
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=jackhallam">@jackhallam</a></td>
528
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=Mushoz">@Mushoz</a></td>
529
+ </tr>
530
+ <tr>
531
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=zestysoft">@zestysoft</a></td>
532
+ <td>Henry Fraser</td>
533
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=gwpl">@gwpl</a></td>
534
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=garrett-hopper">@garrett-hopper</a></td>
535
+ </tr>
536
+ <tr>
537
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=filiptrplan">@filiptrplan</a></td>
538
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=FelixLisczyk">@FelixLisczyk</a></td>
539
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=evnoj">@evnoj</a></td>
540
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=erykwieliczko">@erykwieliczko</a></td>
541
+ </tr>
542
+ <tr>
543
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=elohmeier">@elohmeier</a></td>
544
+ <td><a href="https://github.com/dwash96/cecli/commits/main?author=emmanuel-ferdman">@emmanuel-ferdman</a></td>
545
+ <td></td>
546
+ <td></td>
547
+ </tr>
548
+ </tbody>
549
+ </table>