oracle-cli 1.24.0__tar.gz

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 (214) hide show
  1. oracle_cli-1.24.0/PKG-INFO +89 -0
  2. oracle_cli-1.24.0/README.md +53 -0
  3. oracle_cli-1.24.0/pyproject.toml +126 -0
  4. oracle_cli-1.24.0/src/kimi_cli/CHANGELOG.md +1024 -0
  5. oracle_cli-1.24.0/src/kimi_cli/__init__.py +29 -0
  6. oracle_cli-1.24.0/src/kimi_cli/__main__.py +30 -0
  7. oracle_cli-1.24.0/src/kimi_cli/acp/AGENTS.md +92 -0
  8. oracle_cli-1.24.0/src/kimi_cli/acp/__init__.py +13 -0
  9. oracle_cli-1.24.0/src/kimi_cli/acp/convert.py +128 -0
  10. oracle_cli-1.24.0/src/kimi_cli/acp/kaos.py +270 -0
  11. oracle_cli-1.24.0/src/kimi_cli/acp/mcp.py +46 -0
  12. oracle_cli-1.24.0/src/kimi_cli/acp/server.py +448 -0
  13. oracle_cli-1.24.0/src/kimi_cli/acp/session.py +477 -0
  14. oracle_cli-1.24.0/src/kimi_cli/acp/tools.py +158 -0
  15. oracle_cli-1.24.0/src/kimi_cli/acp/types.py +13 -0
  16. oracle_cli-1.24.0/src/kimi_cli/acp/version.py +45 -0
  17. oracle_cli-1.24.0/src/kimi_cli/agents/default/agent.yaml +31 -0
  18. oracle_cli-1.24.0/src/kimi_cli/agents/default/sub.yaml +14 -0
  19. oracle_cli-1.24.0/src/kimi_cli/agents/default/system.md +142 -0
  20. oracle_cli-1.24.0/src/kimi_cli/agents/okabe/agent.yaml +18 -0
  21. oracle_cli-1.24.0/src/kimi_cli/agentspec.py +143 -0
  22. oracle_cli-1.24.0/src/kimi_cli/app.py +422 -0
  23. oracle_cli-1.24.0/src/kimi_cli/auth/__init__.py +5 -0
  24. oracle_cli-1.24.0/src/kimi_cli/auth/oauth.py +793 -0
  25. oracle_cli-1.24.0/src/kimi_cli/auth/platforms.py +295 -0
  26. oracle_cli-1.24.0/src/kimi_cli/background/__init__.py +36 -0
  27. oracle_cli-1.24.0/src/kimi_cli/background/ids.py +17 -0
  28. oracle_cli-1.24.0/src/kimi_cli/background/manager.py +405 -0
  29. oracle_cli-1.24.0/src/kimi_cli/background/models.py +89 -0
  30. oracle_cli-1.24.0/src/kimi_cli/background/store.py +195 -0
  31. oracle_cli-1.24.0/src/kimi_cli/background/summary.py +61 -0
  32. oracle_cli-1.24.0/src/kimi_cli/background/worker.py +209 -0
  33. oracle_cli-1.24.0/src/kimi_cli/cli/__init__.py +859 -0
  34. oracle_cli-1.24.0/src/kimi_cli/cli/__main__.py +8 -0
  35. oracle_cli-1.24.0/src/kimi_cli/cli/_lazy_group.py +222 -0
  36. oracle_cli-1.24.0/src/kimi_cli/cli/export.py +74 -0
  37. oracle_cli-1.24.0/src/kimi_cli/cli/info.py +62 -0
  38. oracle_cli-1.24.0/src/kimi_cli/cli/mcp.py +349 -0
  39. oracle_cli-1.24.0/src/kimi_cli/cli/plugin.py +302 -0
  40. oracle_cli-1.24.0/src/kimi_cli/cli/toad.py +73 -0
  41. oracle_cli-1.24.0/src/kimi_cli/cli/vis.py +22 -0
  42. oracle_cli-1.24.0/src/kimi_cli/cli/web.py +80 -0
  43. oracle_cli-1.24.0/src/kimi_cli/config.py +369 -0
  44. oracle_cli-1.24.0/src/kimi_cli/constant.py +33 -0
  45. oracle_cli-1.24.0/src/kimi_cli/exception.py +43 -0
  46. oracle_cli-1.24.0/src/kimi_cli/llm.py +273 -0
  47. oracle_cli-1.24.0/src/kimi_cli/metadata.py +79 -0
  48. oracle_cli-1.24.0/src/kimi_cli/notifications/__init__.py +33 -0
  49. oracle_cli-1.24.0/src/kimi_cli/notifications/llm.py +77 -0
  50. oracle_cli-1.24.0/src/kimi_cli/notifications/manager.py +137 -0
  51. oracle_cli-1.24.0/src/kimi_cli/notifications/models.py +50 -0
  52. oracle_cli-1.24.0/src/kimi_cli/notifications/notifier.py +41 -0
  53. oracle_cli-1.24.0/src/kimi_cli/notifications/store.py +99 -0
  54. oracle_cli-1.24.0/src/kimi_cli/notifications/wire.py +21 -0
  55. oracle_cli-1.24.0/src/kimi_cli/plugin/__init__.py +124 -0
  56. oracle_cli-1.24.0/src/kimi_cli/plugin/manager.py +153 -0
  57. oracle_cli-1.24.0/src/kimi_cli/plugin/tool.py +173 -0
  58. oracle_cli-1.24.0/src/kimi_cli/prompts/__init__.py +6 -0
  59. oracle_cli-1.24.0/src/kimi_cli/prompts/compact.md +73 -0
  60. oracle_cli-1.24.0/src/kimi_cli/prompts/init.md +21 -0
  61. oracle_cli-1.24.0/src/kimi_cli/py.typed +0 -0
  62. oracle_cli-1.24.0/src/kimi_cli/session.py +286 -0
  63. oracle_cli-1.24.0/src/kimi_cli/session_state.py +52 -0
  64. oracle_cli-1.24.0/src/kimi_cli/share.py +16 -0
  65. oracle_cli-1.24.0/src/kimi_cli/skill/__init__.py +310 -0
  66. oracle_cli-1.24.0/src/kimi_cli/skill/flow/__init__.py +99 -0
  67. oracle_cli-1.24.0/src/kimi_cli/skill/flow/d2.py +482 -0
  68. oracle_cli-1.24.0/src/kimi_cli/skill/flow/mermaid.py +266 -0
  69. oracle_cli-1.24.0/src/kimi_cli/skills/kimi-cli-help/SKILL.md +55 -0
  70. oracle_cli-1.24.0/src/kimi_cli/skills/skill-creator/SKILL.md +367 -0
  71. oracle_cli-1.24.0/src/kimi_cli/soul/__init__.py +282 -0
  72. oracle_cli-1.24.0/src/kimi_cli/soul/agent.py +407 -0
  73. oracle_cli-1.24.0/src/kimi_cli/soul/approval.py +159 -0
  74. oracle_cli-1.24.0/src/kimi_cli/soul/compaction.py +189 -0
  75. oracle_cli-1.24.0/src/kimi_cli/soul/context.py +215 -0
  76. oracle_cli-1.24.0/src/kimi_cli/soul/denwarenji.py +39 -0
  77. oracle_cli-1.24.0/src/kimi_cli/soul/dynamic_injection.py +66 -0
  78. oracle_cli-1.24.0/src/kimi_cli/soul/dynamic_injections/__init__.py +0 -0
  79. oracle_cli-1.24.0/src/kimi_cli/soul/dynamic_injections/plan_mode.py +238 -0
  80. oracle_cli-1.24.0/src/kimi_cli/soul/kimisoul.py +1091 -0
  81. oracle_cli-1.24.0/src/kimi_cli/soul/message.py +88 -0
  82. oracle_cli-1.24.0/src/kimi_cli/soul/slash.py +285 -0
  83. oracle_cli-1.24.0/src/kimi_cli/soul/toolset.py +530 -0
  84. oracle_cli-1.24.0/src/kimi_cli/tools/AGENTS.md +5 -0
  85. oracle_cli-1.24.0/src/kimi_cli/tools/__init__.py +109 -0
  86. oracle_cli-1.24.0/src/kimi_cli/tools/ask_user/__init__.py +134 -0
  87. oracle_cli-1.24.0/src/kimi_cli/tools/ask_user/description.md +19 -0
  88. oracle_cli-1.24.0/src/kimi_cli/tools/background/__init__.py +317 -0
  89. oracle_cli-1.24.0/src/kimi_cli/tools/background/list.md +10 -0
  90. oracle_cli-1.24.0/src/kimi_cli/tools/background/output.md +11 -0
  91. oracle_cli-1.24.0/src/kimi_cli/tools/background/stop.md +8 -0
  92. oracle_cli-1.24.0/src/kimi_cli/tools/display.py +43 -0
  93. oracle_cli-1.24.0/src/kimi_cli/tools/dmail/__init__.py +38 -0
  94. oracle_cli-1.24.0/src/kimi_cli/tools/dmail/dmail.md +17 -0
  95. oracle_cli-1.24.0/src/kimi_cli/tools/file/__init__.py +30 -0
  96. oracle_cli-1.24.0/src/kimi_cli/tools/file/glob.md +17 -0
  97. oracle_cli-1.24.0/src/kimi_cli/tools/file/glob.py +148 -0
  98. oracle_cli-1.24.0/src/kimi_cli/tools/file/grep.md +5 -0
  99. oracle_cli-1.24.0/src/kimi_cli/tools/file/grep_local.py +314 -0
  100. oracle_cli-1.24.0/src/kimi_cli/tools/file/plan_mode.py +45 -0
  101. oracle_cli-1.24.0/src/kimi_cli/tools/file/read.md +14 -0
  102. oracle_cli-1.24.0/src/kimi_cli/tools/file/read.py +189 -0
  103. oracle_cli-1.24.0/src/kimi_cli/tools/file/read_media.md +24 -0
  104. oracle_cli-1.24.0/src/kimi_cli/tools/file/read_media.py +215 -0
  105. oracle_cli-1.24.0/src/kimi_cli/tools/file/replace.md +7 -0
  106. oracle_cli-1.24.0/src/kimi_cli/tools/file/replace.py +191 -0
  107. oracle_cli-1.24.0/src/kimi_cli/tools/file/utils.py +257 -0
  108. oracle_cli-1.24.0/src/kimi_cli/tools/file/write.md +5 -0
  109. oracle_cli-1.24.0/src/kimi_cli/tools/file/write.py +176 -0
  110. oracle_cli-1.24.0/src/kimi_cli/tools/multiagent/__init__.py +7 -0
  111. oracle_cli-1.24.0/src/kimi_cli/tools/multiagent/create.md +11 -0
  112. oracle_cli-1.24.0/src/kimi_cli/tools/multiagent/create.py +58 -0
  113. oracle_cli-1.24.0/src/kimi_cli/tools/multiagent/task.md +26 -0
  114. oracle_cli-1.24.0/src/kimi_cli/tools/multiagent/task.py +167 -0
  115. oracle_cli-1.24.0/src/kimi_cli/tools/plan/__init__.py +295 -0
  116. oracle_cli-1.24.0/src/kimi_cli/tools/plan/description.md +25 -0
  117. oracle_cli-1.24.0/src/kimi_cli/tools/plan/enter.py +158 -0
  118. oracle_cli-1.24.0/src/kimi_cli/tools/plan/enter_description.md +29 -0
  119. oracle_cli-1.24.0/src/kimi_cli/tools/plan/heroes.py +277 -0
  120. oracle_cli-1.24.0/src/kimi_cli/tools/shell/__init__.py +228 -0
  121. oracle_cli-1.24.0/src/kimi_cli/tools/shell/bash.md +35 -0
  122. oracle_cli-1.24.0/src/kimi_cli/tools/shell/powershell.md +30 -0
  123. oracle_cli-1.24.0/src/kimi_cli/tools/test.py +55 -0
  124. oracle_cli-1.24.0/src/kimi_cli/tools/think/__init__.py +21 -0
  125. oracle_cli-1.24.0/src/kimi_cli/tools/think/think.md +1 -0
  126. oracle_cli-1.24.0/src/kimi_cli/tools/todo/__init__.py +33 -0
  127. oracle_cli-1.24.0/src/kimi_cli/tools/todo/set_todo_list.md +15 -0
  128. oracle_cli-1.24.0/src/kimi_cli/tools/utils.py +191 -0
  129. oracle_cli-1.24.0/src/kimi_cli/tools/web/__init__.py +4 -0
  130. oracle_cli-1.24.0/src/kimi_cli/tools/web/fetch.md +1 -0
  131. oracle_cli-1.24.0/src/kimi_cli/tools/web/fetch.py +161 -0
  132. oracle_cli-1.24.0/src/kimi_cli/tools/web/search.md +1 -0
  133. oracle_cli-1.24.0/src/kimi_cli/tools/web/search.py +132 -0
  134. oracle_cli-1.24.0/src/kimi_cli/ui/__init__.py +0 -0
  135. oracle_cli-1.24.0/src/kimi_cli/ui/acp/__init__.py +99 -0
  136. oracle_cli-1.24.0/src/kimi_cli/ui/print/__init__.py +143 -0
  137. oracle_cli-1.24.0/src/kimi_cli/ui/print/visualize.py +180 -0
  138. oracle_cli-1.24.0/src/kimi_cli/ui/shell/__init__.py +611 -0
  139. oracle_cli-1.24.0/src/kimi_cli/ui/shell/console.py +32 -0
  140. oracle_cli-1.24.0/src/kimi_cli/ui/shell/debug.py +190 -0
  141. oracle_cli-1.24.0/src/kimi_cli/ui/shell/echo.py +17 -0
  142. oracle_cli-1.24.0/src/kimi_cli/ui/shell/export_import.py +111 -0
  143. oracle_cli-1.24.0/src/kimi_cli/ui/shell/keyboard.py +300 -0
  144. oracle_cli-1.24.0/src/kimi_cli/ui/shell/mcp_status.py +108 -0
  145. oracle_cli-1.24.0/src/kimi_cli/ui/shell/oauth.py +143 -0
  146. oracle_cli-1.24.0/src/kimi_cli/ui/shell/placeholders.py +530 -0
  147. oracle_cli-1.24.0/src/kimi_cli/ui/shell/prompt.py +1939 -0
  148. oracle_cli-1.24.0/src/kimi_cli/ui/shell/replay.py +207 -0
  149. oracle_cli-1.24.0/src/kimi_cli/ui/shell/setup.py +212 -0
  150. oracle_cli-1.24.0/src/kimi_cli/ui/shell/slash.py +551 -0
  151. oracle_cli-1.24.0/src/kimi_cli/ui/shell/startup.py +32 -0
  152. oracle_cli-1.24.0/src/kimi_cli/ui/shell/task_browser.py +504 -0
  153. oracle_cli-1.24.0/src/kimi_cli/ui/shell/update.py +215 -0
  154. oracle_cli-1.24.0/src/kimi_cli/ui/shell/usage.py +278 -0
  155. oracle_cli-1.24.0/src/kimi_cli/ui/shell/visualize.py +1604 -0
  156. oracle_cli-1.24.0/src/kimi_cli/utils/__init__.py +0 -0
  157. oracle_cli-1.24.0/src/kimi_cli/utils/aiohttp.py +12 -0
  158. oracle_cli-1.24.0/src/kimi_cli/utils/aioqueue.py +72 -0
  159. oracle_cli-1.24.0/src/kimi_cli/utils/broadcast.py +37 -0
  160. oracle_cli-1.24.0/src/kimi_cli/utils/changelog.py +108 -0
  161. oracle_cli-1.24.0/src/kimi_cli/utils/clipboard.py +169 -0
  162. oracle_cli-1.24.0/src/kimi_cli/utils/datetime.py +37 -0
  163. oracle_cli-1.24.0/src/kimi_cli/utils/diff.py +87 -0
  164. oracle_cli-1.24.0/src/kimi_cli/utils/editor.py +91 -0
  165. oracle_cli-1.24.0/src/kimi_cli/utils/environment.py +58 -0
  166. oracle_cli-1.24.0/src/kimi_cli/utils/envvar.py +12 -0
  167. oracle_cli-1.24.0/src/kimi_cli/utils/export.py +690 -0
  168. oracle_cli-1.24.0/src/kimi_cli/utils/frontmatter.py +50 -0
  169. oracle_cli-1.24.0/src/kimi_cli/utils/io.py +27 -0
  170. oracle_cli-1.24.0/src/kimi_cli/utils/logging.py +124 -0
  171. oracle_cli-1.24.0/src/kimi_cli/utils/media_tags.py +29 -0
  172. oracle_cli-1.24.0/src/kimi_cli/utils/message.py +24 -0
  173. oracle_cli-1.24.0/src/kimi_cli/utils/path.py +140 -0
  174. oracle_cli-1.24.0/src/kimi_cli/utils/proctitle.py +33 -0
  175. oracle_cli-1.24.0/src/kimi_cli/utils/pyinstaller.py +32 -0
  176. oracle_cli-1.24.0/src/kimi_cli/utils/rich/__init__.py +33 -0
  177. oracle_cli-1.24.0/src/kimi_cli/utils/rich/columns.py +99 -0
  178. oracle_cli-1.24.0/src/kimi_cli/utils/rich/markdown.py +900 -0
  179. oracle_cli-1.24.0/src/kimi_cli/utils/rich/markdown_sample.md +108 -0
  180. oracle_cli-1.24.0/src/kimi_cli/utils/rich/markdown_sample_short.md +2 -0
  181. oracle_cli-1.24.0/src/kimi_cli/utils/rich/syntax.py +113 -0
  182. oracle_cli-1.24.0/src/kimi_cli/utils/signals.py +43 -0
  183. oracle_cli-1.24.0/src/kimi_cli/utils/slashcmd.py +124 -0
  184. oracle_cli-1.24.0/src/kimi_cli/utils/string.py +22 -0
  185. oracle_cli-1.24.0/src/kimi_cli/utils/subprocess_env.py +52 -0
  186. oracle_cli-1.24.0/src/kimi_cli/utils/term.py +168 -0
  187. oracle_cli-1.24.0/src/kimi_cli/utils/typing.py +20 -0
  188. oracle_cli-1.24.0/src/kimi_cli/vis/__init__.py +0 -0
  189. oracle_cli-1.24.0/src/kimi_cli/vis/api/__init__.py +5 -0
  190. oracle_cli-1.24.0/src/kimi_cli/vis/api/sessions.py +504 -0
  191. oracle_cli-1.24.0/src/kimi_cli/vis/api/statistics.py +209 -0
  192. oracle_cli-1.24.0/src/kimi_cli/vis/api/system.py +16 -0
  193. oracle_cli-1.24.0/src/kimi_cli/vis/app.py +177 -0
  194. oracle_cli-1.24.0/src/kimi_cli/web/__init__.py +5 -0
  195. oracle_cli-1.24.0/src/kimi_cli/web/api/__init__.py +15 -0
  196. oracle_cli-1.24.0/src/kimi_cli/web/api/config.py +208 -0
  197. oracle_cli-1.24.0/src/kimi_cli/web/api/open_in.py +197 -0
  198. oracle_cli-1.24.0/src/kimi_cli/web/api/sessions.py +1384 -0
  199. oracle_cli-1.24.0/src/kimi_cli/web/app.py +545 -0
  200. oracle_cli-1.24.0/src/kimi_cli/web/auth.py +191 -0
  201. oracle_cli-1.24.0/src/kimi_cli/web/models.py +98 -0
  202. oracle_cli-1.24.0/src/kimi_cli/web/runner/__init__.py +5 -0
  203. oracle_cli-1.24.0/src/kimi_cli/web/runner/messages.py +57 -0
  204. oracle_cli-1.24.0/src/kimi_cli/web/runner/process.py +745 -0
  205. oracle_cli-1.24.0/src/kimi_cli/web/runner/worker.py +87 -0
  206. oracle_cli-1.24.0/src/kimi_cli/web/store/__init__.py +1 -0
  207. oracle_cli-1.24.0/src/kimi_cli/web/store/sessions.py +517 -0
  208. oracle_cli-1.24.0/src/kimi_cli/wire/__init__.py +148 -0
  209. oracle_cli-1.24.0/src/kimi_cli/wire/file.py +151 -0
  210. oracle_cli-1.24.0/src/kimi_cli/wire/jsonrpc.py +247 -0
  211. oracle_cli-1.24.0/src/kimi_cli/wire/protocol.py +2 -0
  212. oracle_cli-1.24.0/src/kimi_cli/wire/serde.py +26 -0
  213. oracle_cli-1.24.0/src/kimi_cli/wire/server.py +814 -0
  214. oracle_cli-1.24.0/src/kimi_cli/wire/types.py +550 -0
@@ -0,0 +1,89 @@
1
+ Metadata-Version: 2.3
2
+ Name: oracle-cli
3
+ Version: 1.24.0
4
+ Summary: Oracle CLI — AI agent for the terminal, powered by Mythic Oracle
5
+ Requires-Dist: agent-client-protocol==0.8.0
6
+ Requires-Dist: aiofiles>=24.0,<26.0
7
+ Requires-Dist: aiohttp==3.13.3
8
+ Requires-Dist: typer==0.21.1
9
+ Requires-Dist: kosong[contrib]==0.45.0
10
+ Requires-Dist: loguru>=0.6.0,<0.8
11
+ Requires-Dist: prompt-toolkit==3.0.52
12
+ Requires-Dist: pillow==12.1.0
13
+ Requires-Dist: pyyaml==6.0.3
14
+ Requires-Dist: rich==14.2.0
15
+ Requires-Dist: ripgrepy==2.2.0
16
+ Requires-Dist: streamingjson==0.0.5
17
+ Requires-Dist: trafilatura==2.0.0
18
+ Requires-Dist: lxml==6.0.2
19
+ Requires-Dist: tenacity==9.1.2
20
+ Requires-Dist: fastmcp==2.12.5
21
+ Requires-Dist: pydantic==2.12.5
22
+ Requires-Dist: httpx[socks]==0.28.1
23
+ Requires-Dist: pykaos==0.7.0
24
+ Requires-Dist: batrachian-toad==0.5.23 ; python_full_version >= '3.14'
25
+ Requires-Dist: tomlkit==0.14.0
26
+ Requires-Dist: jinja2==3.1.6
27
+ Requires-Dist: pyobjc-framework-cocoa>=12.1 ; sys_platform == 'darwin'
28
+ Requires-Dist: fastapi>=0.115.0
29
+ Requires-Dist: uvicorn[standard]>=0.32.0
30
+ Requires-Dist: scalar-fastapi>=1.5.0
31
+ Requires-Dist: websockets>=14.0
32
+ Requires-Dist: keyring>=25.7.0
33
+ Requires-Dist: setproctitle>=1.3.0
34
+ Requires-Python: >=3.12
35
+ Description-Content-Type: text/markdown
36
+
37
+ # Oracle CLI
38
+
39
+ AI agent for the terminal, powered by [Mythic Oracle](https://mythicoracle.ai).
40
+
41
+ Built on [kimi-cli](https://github.com/MoonshotAI/kimi-cli) by MoonshotAI. Customized by [Mythic Labs](https://mythiclabs.io).
42
+
43
+ ## Install
44
+
45
+ ```bash
46
+ pip install oracle-cli
47
+ ```
48
+
49
+ ## Quick Start
50
+
51
+ ```bash
52
+ # Set your API key
53
+ export ORACLE_API_KEY=sk-your-key
54
+
55
+ # Or login with OAuth
56
+ oracle login
57
+
58
+ # Start chatting
59
+ oracle
60
+ ```
61
+
62
+ ## Features
63
+
64
+ - Terminal AI agent with code editing, shell commands, web search
65
+ - Powered by Kimi K2.5 (1T parameters, 32B active)
66
+ - OAuth login via mythicoracle.ai
67
+ - Web UI (Technical Preview): `oracle web`
68
+ - MCP server support: `oracle mcp`
69
+ - VS Code / Zed / JetBrains integration
70
+
71
+ ## Configuration
72
+
73
+ Config lives at `~/.oracle/config.toml`. Set your API key:
74
+
75
+ ```toml
76
+ [providers.oracle]
77
+ type = "kimi"
78
+ base_url = "https://api.moonshot.ai/v1"
79
+ api_key = "sk-your-key"
80
+
81
+ [models.oracle]
82
+ provider = "oracle"
83
+ model = "kimi-k2.5"
84
+ max_context_size = 131072
85
+ ```
86
+
87
+ ## License
88
+
89
+ Apache 2.0 — see [LICENSE](LICENSE)
@@ -0,0 +1,53 @@
1
+ # Oracle CLI
2
+
3
+ AI agent for the terminal, powered by [Mythic Oracle](https://mythicoracle.ai).
4
+
5
+ Built on [kimi-cli](https://github.com/MoonshotAI/kimi-cli) by MoonshotAI. Customized by [Mythic Labs](https://mythiclabs.io).
6
+
7
+ ## Install
8
+
9
+ ```bash
10
+ pip install oracle-cli
11
+ ```
12
+
13
+ ## Quick Start
14
+
15
+ ```bash
16
+ # Set your API key
17
+ export ORACLE_API_KEY=sk-your-key
18
+
19
+ # Or login with OAuth
20
+ oracle login
21
+
22
+ # Start chatting
23
+ oracle
24
+ ```
25
+
26
+ ## Features
27
+
28
+ - Terminal AI agent with code editing, shell commands, web search
29
+ - Powered by Kimi K2.5 (1T parameters, 32B active)
30
+ - OAuth login via mythicoracle.ai
31
+ - Web UI (Technical Preview): `oracle web`
32
+ - MCP server support: `oracle mcp`
33
+ - VS Code / Zed / JetBrains integration
34
+
35
+ ## Configuration
36
+
37
+ Config lives at `~/.oracle/config.toml`. Set your API key:
38
+
39
+ ```toml
40
+ [providers.oracle]
41
+ type = "kimi"
42
+ base_url = "https://api.moonshot.ai/v1"
43
+ api_key = "sk-your-key"
44
+
45
+ [models.oracle]
46
+ provider = "oracle"
47
+ model = "kimi-k2.5"
48
+ max_context_size = 131072
49
+ ```
50
+
51
+ ## License
52
+
53
+ Apache 2.0 — see [LICENSE](LICENSE)
@@ -0,0 +1,126 @@
1
+ [project]
2
+ name = "oracle-cli"
3
+ version = "1.24.0"
4
+ description = "Oracle CLI — AI agent for the terminal, powered by Mythic Oracle"
5
+ readme = "README.md"
6
+ requires-python = ">=3.12"
7
+ dependencies = [
8
+ "agent-client-protocol==0.8.0",
9
+ "aiofiles>=24.0,<26.0",
10
+ "aiohttp==3.13.3",
11
+ "typer==0.21.1",
12
+ "kosong[contrib]==0.45.0",
13
+ # loguru stays >=0.6.0 because notify-py (via batrachian-toad) caps it at <=0.6.0 on 3.14+.
14
+ "loguru>=0.6.0,<0.8",
15
+ "prompt-toolkit==3.0.52",
16
+ "pillow==12.1.0",
17
+ "pyyaml==6.0.3",
18
+ "rich==14.2.0",
19
+ "ripgrepy==2.2.0",
20
+ "streamingjson==0.0.5",
21
+ "trafilatura==2.0.0",
22
+ # lxml is used by trafilatura/htmldate/justext; keep pinned for binary wheels.
23
+ "lxml==6.0.2",
24
+ "tenacity==9.1.2",
25
+ "fastmcp==2.12.5",
26
+ "pydantic==2.12.5",
27
+ "httpx[socks]==0.28.1",
28
+ "pykaos==0.7.0",
29
+ "batrachian-toad==0.5.23; python_version >= \"3.14\"",
30
+ "tomlkit==0.14.0",
31
+ "jinja2==3.1.6",
32
+ "pyobjc-framework-cocoa>=12.1 ; sys_platform == 'darwin'",
33
+ "fastapi>=0.115.0",
34
+ "uvicorn[standard]>=0.32.0",
35
+ "scalar-fastapi>=1.5.0",
36
+ "websockets>=14.0",
37
+ "keyring>=25.7.0",
38
+ "setproctitle>=1.3.0",
39
+ ]
40
+
41
+ [dependency-groups]
42
+ dev = [
43
+ "pyinstaller==6.18.0",
44
+ "inline-snapshot[black]>=0.31.1",
45
+ "pyright>=1.1.407",
46
+ "ty>=0.0.9",
47
+ "pytest>=9.0.2",
48
+ "pytest-asyncio>=1.3.0",
49
+ "ruff>=0.14.10",
50
+ ]
51
+
52
+ [build-system]
53
+ requires = ["uv_build>=0.8.5,<0.10.0"]
54
+ build-backend = "uv_build"
55
+
56
+ [tool.uv.build-backend]
57
+ module-name = ["kimi_cli"]
58
+ source-exclude = ["examples/**/*", "tests/**/*", "src/kimi_cli/deps/**/*"]
59
+
60
+ [tool.uv.workspace]
61
+ members = [
62
+ "packages/kosong",
63
+ "packages/kaos",
64
+ "packages/kimi-code",
65
+ "sdks/kimi-sdk",
66
+ ]
67
+
68
+ [tool.uv.sources]
69
+ kosong = { workspace = true }
70
+ pykaos = { workspace = true }
71
+ kimi-cli = { workspace = true }
72
+
73
+ [project.scripts]
74
+ oracle = "kimi_cli.__main__:main"
75
+ oracle-cli = "kimi_cli.__main__:main"
76
+ kimi = "kimi_cli.__main__:main"
77
+ kimi-cli = "kimi_cli.__main__:main"
78
+
79
+ [tool.ruff]
80
+ line-length = 100
81
+
82
+ [tool.ruff.lint]
83
+ select = [
84
+ "E", # pycodestyle
85
+ "F", # Pyflakes
86
+ "UP", # pyupgrade
87
+ "B", # flake8-bugbear
88
+ "SIM", # flake8-simplify
89
+ "I", # isort
90
+ ]
91
+
92
+ [tool.ruff.lint.per-file-ignores]
93
+ "tests/**/*.py" = ["E501"]
94
+ "tests_e2e/**/*.py" = ["E501"]
95
+ "src/kimi_cli/web/api/**/*.py" = ["B008"] # FastAPI Depends() is standard usage
96
+
97
+ [tool.pyright]
98
+ typeCheckingMode = "standard"
99
+ pythonVersion = "3.14"
100
+ include = [
101
+ "src/**/*.py",
102
+ "tests/**/*.py",
103
+ "tests_ai/scripts/**/*.py",
104
+ "tests_e2e/**/*.py",
105
+ ]
106
+ strict = ["src/kimi_cli/**/*.py"]
107
+
108
+ [tool.ty.environment]
109
+ python-version = "3.14"
110
+
111
+ [tool.ty.src]
112
+ include = [
113
+ "src/**/*.py",
114
+ "tests/**/*.py",
115
+ "tests_ai/scripts/**/*.py",
116
+ "tests_e2e/**/*.py",
117
+ ]
118
+
119
+ [tool.typos.files]
120
+ extend-exclude = ["kimi.spec", "pyinstaller.py"]
121
+
122
+ [tool.typos.default.extend-words]
123
+ datas = "datas"
124
+ Seeked = "Seeked"
125
+ seeked = "seeked"
126
+ iterm = "iterm"