axe-cli 1.7.5__tar.gz → 1.7.7__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 (159) hide show
  1. axe_cli-1.7.7/PKG-INFO +470 -0
  2. axe_cli-1.7.7/README.md +437 -0
  3. {axe_cli-1.7.5 → axe_cli-1.7.7}/pyproject.toml +1 -1
  4. axe_cli-1.7.7/src/axe_cli/README.md +304 -0
  5. axe_cli-1.7.7/src/axe_cli/agents/README.md +160 -0
  6. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/agents/default/agent.yaml +3 -3
  7. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/agents/default/system.md +49 -0
  8. axe_cli-1.7.7/src/axe_cli/auth/__init__.py +3 -0
  9. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/auth/oauth.py +9 -3
  10. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/auth/platforms.py +6 -0
  11. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/config.py +10 -0
  12. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/llm.py +1 -1
  13. axe_cli-1.7.7/src/axe_cli/skills/README.md +242 -0
  14. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/soul/agent.py +6 -0
  15. axe_cli-1.7.7/src/axe_cli/tools/README.md +135 -0
  16. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/tools/axe/auto_init.py +27 -27
  17. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/tools/axe/context.py +8 -0
  18. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/tools/axe/impact.py +9 -1
  19. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/tools/axe/prewarm.py +1 -1
  20. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/tools/axe/search.py +11 -5
  21. axe_cli-1.7.5/PKG-INFO +0 -1386
  22. axe_cli-1.7.5/README.md +0 -1353
  23. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/CHANGELOG.md +0 -0
  24. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/__init__.py +0 -0
  25. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/acp/AGENTS.md +0 -0
  26. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/acp/__init__.py +0 -0
  27. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/acp/convert.py +0 -0
  28. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/acp/kaos.py +0 -0
  29. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/acp/mcp.py +0 -0
  30. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/acp/server.py +0 -0
  31. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/acp/session.py +0 -0
  32. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/acp/tools.py +0 -0
  33. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/acp/types.py +0 -0
  34. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/agents/default/sub.yaml +0 -0
  35. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/agents/okabe/agent.yaml +0 -0
  36. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/agentspec.py +0 -0
  37. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/app.py +0 -0
  38. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/cli/__init__.py +0 -0
  39. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/cli/__main__.py +0 -0
  40. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/cli/info.py +0 -0
  41. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/cli/mcp.py +0 -0
  42. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/cli/toad.py +0 -0
  43. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/constant.py +0 -0
  44. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/exception.py +0 -0
  45. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/metadata.py +0 -0
  46. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/prompts/__init__.py +0 -0
  47. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/prompts/compact.md +0 -0
  48. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/prompts/init.md +0 -0
  49. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/py.typed +0 -0
  50. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/session.py +0 -0
  51. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/share.py +0 -0
  52. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/skill/__init__.py +0 -0
  53. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/skill/flow/__init__.py +0 -0
  54. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/skill/flow/d2.py +0 -0
  55. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/skill/flow/mermaid.py +0 -0
  56. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/skills/axe-cli-help/SKILL.md +0 -0
  57. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/skills/skill-creator/SKILL.md +0 -0
  58. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/soul/__init__.py +0 -0
  59. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/soul/approval.py +0 -0
  60. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/soul/axesoul.py +0 -0
  61. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/soul/compaction.py +0 -0
  62. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/soul/context.py +0 -0
  63. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/soul/denwarenji.py +0 -0
  64. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/soul/message.py +0 -0
  65. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/soul/slash.py +0 -0
  66. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/soul/toolset.py +0 -0
  67. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/token_counter.py +0 -0
  68. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/tools/AGENTS.md +0 -0
  69. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/tools/__init__.py +0 -0
  70. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/tools/axe/__init__.py +0 -0
  71. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/tools/axe/index.py +0 -0
  72. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/tools/axe/structure.py +0 -0
  73. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/tools/axe/warm.py +0 -0
  74. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/tools/display.py +0 -0
  75. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/tools/dmail/__init__.py +0 -0
  76. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/tools/dmail/dmail.md +0 -0
  77. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/tools/file/__init__.py +0 -0
  78. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/tools/file/glob.md +0 -0
  79. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/tools/file/glob.py +0 -0
  80. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/tools/file/grep.md +0 -0
  81. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/tools/file/grep_local.py +0 -0
  82. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/tools/file/read.md +0 -0
  83. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/tools/file/read.py +0 -0
  84. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/tools/file/read_media.md +0 -0
  85. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/tools/file/read_media.py +0 -0
  86. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/tools/file/replace.md +0 -0
  87. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/tools/file/replace.py +0 -0
  88. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/tools/file/utils.py +0 -0
  89. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/tools/file/write.md +0 -0
  90. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/tools/file/write.py +0 -0
  91. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/tools/multiagent/__init__.py +0 -0
  92. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/tools/multiagent/create.md +0 -0
  93. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/tools/multiagent/create.py +0 -0
  94. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/tools/multiagent/task.md +0 -0
  95. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/tools/multiagent/task.py +0 -0
  96. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/tools/shell/__init__.py +0 -0
  97. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/tools/shell/bash.md +0 -0
  98. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/tools/shell/powershell.md +0 -0
  99. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/tools/test.py +0 -0
  100. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/tools/think/__init__.py +0 -0
  101. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/tools/think/think.md +0 -0
  102. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/tools/todo/__init__.py +0 -0
  103. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/tools/todo/set_todo_list.md +0 -0
  104. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/tools/utils.py +0 -0
  105. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/tools/web/__init__.py +0 -0
  106. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/tools/web/fetch.md +0 -0
  107. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/tools/web/fetch.py +0 -0
  108. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/tools/web/search.md +0 -0
  109. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/tools/web/search.py +0 -0
  110. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/ui/__init__.py +0 -0
  111. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/ui/acp/__init__.py +0 -0
  112. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/ui/print/__init__.py +0 -0
  113. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/ui/print/visualize.py +0 -0
  114. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/ui/shell/__init__.py +0 -0
  115. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/ui/shell/console.py +0 -0
  116. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/ui/shell/debug.py +0 -0
  117. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/ui/shell/keyboard.py +0 -0
  118. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/ui/shell/oauth.py +0 -0
  119. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/ui/shell/prompt.py +0 -0
  120. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/ui/shell/replay.py +0 -0
  121. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/ui/shell/setup.py +0 -0
  122. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/ui/shell/slash.py +0 -0
  123. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/ui/shell/update.py +0 -0
  124. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/ui/shell/usage.py +0 -0
  125. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/ui/shell/visualize.py +0 -0
  126. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/utils/__init__.py +0 -0
  127. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/utils/aiohttp.py +0 -0
  128. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/utils/aioqueue.py +0 -0
  129. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/utils/broadcast.py +0 -0
  130. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/utils/changelog.py +0 -0
  131. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/utils/clipboard.py +0 -0
  132. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/utils/datetime.py +0 -0
  133. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/utils/diff.py +0 -0
  134. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/utils/environment.py +0 -0
  135. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/utils/envvar.py +0 -0
  136. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/utils/frontmatter.py +0 -0
  137. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/utils/logging.py +0 -0
  138. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/utils/media_tags.py +0 -0
  139. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/utils/message.py +0 -0
  140. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/utils/path.py +0 -0
  141. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/utils/pyinstaller.py +0 -0
  142. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/utils/rich/__init__.py +0 -0
  143. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/utils/rich/columns.py +0 -0
  144. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/utils/rich/markdown.py +0 -0
  145. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/utils/rich/markdown_sample.md +0 -0
  146. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/utils/rich/markdown_sample_short.md +0 -0
  147. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/utils/rich/syntax.py +0 -0
  148. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/utils/signals.py +0 -0
  149. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/utils/slashcmd.py +0 -0
  150. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/utils/string.py +0 -0
  151. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/utils/term.py +0 -0
  152. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/utils/typing.py +0 -0
  153. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/wire/__init__.py +0 -0
  154. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/wire/file.py +0 -0
  155. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/wire/jsonrpc.py +0 -0
  156. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/wire/protocol.py +0 -0
  157. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/wire/serde.py +0 -0
  158. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/wire/server.py +0 -0
  159. {axe_cli-1.7.5 → axe_cli-1.7.7}/src/axe_cli/wire/types.py +0 -0
axe_cli-1.7.7/PKG-INFO ADDED
@@ -0,0 +1,470 @@
1
+ Metadata-Version: 2.3
2
+ Name: axe-cli
3
+ Version: 1.7.7
4
+ Summary: axe, yerrrr
5
+ Requires-Dist: agent-client-protocol==0.7.0
6
+ Requires-Dist: axe-dig
7
+ Requires-Dist: aiofiles>=24.0,<26.0
8
+ Requires-Dist: aiohttp==3.13.3
9
+ Requires-Dist: typer==0.21.1
10
+ Requires-Dist: kosong[contrib]==0.41.0
11
+ Requires-Dist: loguru>=0.6.0,<0.8
12
+ Requires-Dist: prompt-toolkit==3.0.52
13
+ Requires-Dist: pillow==12.1.0
14
+ Requires-Dist: pyyaml==6.0.3
15
+ Requires-Dist: rich==14.2.0
16
+ Requires-Dist: ripgrepy==2.2.0
17
+ Requires-Dist: streamingjson==0.0.5
18
+ Requires-Dist: trafilatura==2.0.0
19
+ Requires-Dist: lxml==6.0.2
20
+ Requires-Dist: tenacity==9.1.2
21
+ Requires-Dist: fastmcp==2.12.5
22
+ Requires-Dist: pydantic==2.12.5
23
+ Requires-Dist: httpx[socks]==0.28.1
24
+ Requires-Dist: pykaos==0.6.0
25
+ Requires-Dist: batrachian-toad==0.5.23 ; python_full_version >= '3.14'
26
+ Requires-Dist: tomlkit==0.14.0
27
+ Requires-Dist: jinja2==3.1.6
28
+ Requires-Dist: pyobjc-framework-cocoa>=12.1 ; sys_platform == 'darwin'
29
+ Requires-Dist: keyring>=25.7.0
30
+ Requires-Dist: tiktoken>=0.8.0
31
+ Requires-Python: >=3.12
32
+ Description-Content-Type: text/markdown
33
+
34
+ # axe
35
+
36
+ **The agent built for real codebases.**
37
+
38
+ While other coding tools like claude code burn tokens on bloat to charge you more, axe gives you surgical precision. Built for large-scale projects, battle-tested internally for 6 months, and powered by the world's most advanced code retrieval engine.
39
+
40
+ ---
41
+
42
+ ## What is axe?
43
+
44
+ axe is an agent that runs in your terminal, helping you ship production code faster. It reads and edits code, executes shell commands, searches the web, and autonomously plans multi-step workflows—all while using **95% fewer tokens** than tools that dump your entire codebase into context.
45
+
46
+ **Built for:**
47
+ - **Real engineers** working on production systems with 100K+ line codebases
48
+ - **Precision refactoring** where you need to understand call graphs before changing a function
49
+ - **Debugging** that requires tracing data flow, not just reading error messages
50
+ - **Architecture exploration** in unfamiliar codebases where grep won't cut it
51
+
52
+ Hit **Ctrl+X** to toggle between axe and your normal shell. No context switching. No juggling terminals.
53
+
54
+ ---
55
+
56
+ ## Why axe exists
57
+
58
+ **The problem:** Other tools dump your entire codebase into context, charging you for irrelevant noise. They're built for vibe coding—one-shot weekend projects where "good enough" is the goal.
59
+
60
+ **The reality:** Real engineering happens in 100K+ line codebases where precision matters. You need to understand execution flow, trace bugs through call graphs, and refactor without breaking half your tests. You can't afford to burn 200K tokens reading files that don't matter.
61
+
62
+ **The solution:** axe combines intelligent agents with **axe-dig**, our 5-layer code intelligence engine that extracts meaning instead of dumping text.
63
+
64
+ ### The axe-dig Advantage
65
+
66
+ **Stop burning context windows. Start shipping features.**
67
+
68
+ Your codebase is 100,000 lines. Claude can read ~200,000 tokens. Math says you're already in trouble.
69
+
70
+ | Approach | Tokens Used | What You Get |
71
+ |----------|-------------|--------------|
72
+ | Read raw files | 23,314 | Full code, zero context window left |
73
+ | Grep results | ~5,000 | File paths. No understanding. |
74
+ | **axe-dig** | **1,189** | Structure + call graph + complexity—everything needed to edit correctly |
75
+
76
+ **95% token savings** while preserving the information LLMs actually need to write correct code.
77
+
78
+ #### How axe-dig Works: we dig 5 levels deep.
79
+
80
+ Not every question needs full program analysis. Pick the layer that matches your task:
81
+
82
+ ```
83
+ ┌─────────────────────────────────────────────────────────────┐
84
+ │ Layer 5: Program Dependence → "What affects line 42?" │
85
+ │ Layer 4: Data Flow → "Where does this value go?" │
86
+ │ Layer 3: Control Flow → "How complex is this?" │
87
+ │ Layer 2: Call Graph → "Who calls this function?" │
88
+ │ Layer 1: AST → "What functions exist?" │
89
+ └─────────────────────────────────────────────────────────────┘
90
+ ```
91
+
92
+ **Try it yourself on this codebase:**
93
+
94
+ ```bash
95
+ # first run this if you didn't run the "axe" command prior to it. axe automicatlly makes the .dig folder with all the indexes, edges-- but since its your first time, you can run this first
96
+ chop semantic index .
97
+
98
+ # 1. Find code that resets counters (semantic search)
99
+ chop semantic search "reset cumulative statistics and start fresh counter"
100
+
101
+ # Result: Finds reset_step_count() at position #2 (score: 0.632)
102
+ # Why this query? We're looking for state reset logic
103
+ # What it found: TokenCounter.reset_step_count() - even though the code
104
+ # doesn't mention "cumulative" or "fresh", the embedding understands
105
+ # it resets a TokenCount object in a statistics tracking class
106
+
107
+ # 2. Get token-efficient context
108
+ chop context reset_step_count --project src/axe_cli/
109
+
110
+ # Result: ~89 tokens (vs ~4,200 for reading the raw file)
111
+ # Shows: Function signature, what it calls, complexity metrics
112
+ # 98% token savings while preserving understanding
113
+
114
+ # 3. Check who uses it before refactoring
115
+ chop impact TokenCounter src/axe_cli/
116
+
117
+ # Result: Only called by get_global_counter() in same file
118
+ # Meaning: Safe to refactor - no external dependencies to break
119
+ ```
120
+
121
+ **What this demonstrates:**
122
+ - Semantic search finds code by behavior, not keywords
123
+ - Context extraction gives you understanding at 2% of the token cost
124
+ - Impact analysis shows dependencies instantly (no grep, no manual tracing)
125
+
126
+ #### Semantic Search: Find Code by Behavior
127
+
128
+ Traditional search finds syntax. axe-dig semantic search finds **what code does** based on call graphs and structure.
129
+
130
+ ```bash
131
+ # Try this on the axe-cli codebase itself:
132
+ chop semantic search "retry failed operations with exponential backoff"
133
+
134
+ # Result: Finds _is_retryable_error() at position #1 (score: 0.713)
135
+ # Why? The query doesn't mention "error" or specific function names
136
+ # But the embedding understands retry logic patterns:
137
+ # - Function checks exception types (retryable vs non-retryable)
138
+ # - Called by retry loops with backoff logic
139
+ # - Part of error handling flow in axesoul.py
140
+ ```
141
+
142
+ **What it found:**
143
+ ```json
144
+ [
145
+ {
146
+ "name": "_is_retryable_error",
147
+ "file": "src/axe_cli/soul/axesoul.py",
148
+ "score": 0.713
149
+ },
150
+ {
151
+ "name": "_retry_log",
152
+ "file": "src/axe_cli/soul/axesoul.py",
153
+ "score": 0.710
154
+ }
155
+ ]
156
+ ```
157
+
158
+ **Another example: Find config loading**
159
+ ```bash
160
+ chop semantic search "load configuration from toml file"
161
+
162
+ # Result: load_config_from_string() at #1 (score: 0.759)
163
+ # Finds TOML parsing, config migration, and related tests
164
+ ```
165
+
166
+ Every function gets embedded with:
167
+ - Signature + docstring
168
+ - What it calls + who calls it (forward & backward call graph)
169
+ - Complexity metrics (branches, loops, cyclomatic complexity)
170
+ - Data flow (which variables are used, how they transform)
171
+ - Dependencies (imports, external modules)
172
+ - First ~10 lines of code
173
+
174
+ This gets encoded into 1024-dimensional embeddings, so semantic search finds relevant code even when you use different terminology.
175
+
176
+ #### Daemon Architecture: 300x Faster
177
+
178
+ **The old way:** Every query spawns a new process, parses the entire codebase, throws away the results. ~30 seconds per query.
179
+
180
+ **axe-dig's daemon:** Long-running background process with indexes in RAM. ~100ms per query.
181
+
182
+ ```bash
183
+ # First query auto-starts daemon (transparent)
184
+ axe # In your project directory
185
+
186
+ # Daemon stays running, queries use in-memory indexes
187
+ # 100ms, not 30s per query
188
+ ```
189
+
190
+ **Incremental updates:** When you edit one function, axe-dig doesn't re-analyze the entire codebase. Content-hash-based caching with automatic dependency tracking means 10x faster incremental updates.
191
+
192
+ **What's stored:** The daemon keeps call graphs, complexity metrics, and semantic embeddings in `.dig/cache/`. A typical project generates ~10MB of indexes that load into RAM in \u003c1 second. See [full cache structure](docs/AXE-DIG.md#cache-structure) for details.
193
+
194
+ **[Read the full axe-dig documentation →](docs/AXE-DIG.md)**
195
+
196
+ ---
197
+
198
+ ## Documentation Index
199
+
200
+ We've organized the docs to make them digestible. Here's what's where:
201
+
202
+ ### [Common Use Cases & Workflows](examples/README.md)
203
+ Learn how to use axe for implementing features, fixing bugs, understanding unfamiliar code, and automating tasks. Includes real workflow examples for debugging, refactoring, and exploration. See how axe handles everything from adding pagination to investigating race conditions.
204
+
205
+ ### [Built-in Tools](src/axe_cli/tools/README.md)
206
+ Complete reference for all available tools: file operations, shell commands, multi-agent tasks, and the axe-dig code intelligence tools. CodeSearch finds code by behavior, CodeContext extracts LLM-ready summaries with 95% token savings, CodeStructure navigates files/directories, and CodeImpact shows reverse call graphs before you refactor. Every tool is designed for precision, not guesswork.
207
+
208
+ ### [Agent Skills](src/axe_cli/skills/README.md)
209
+ How to create and use specialized skills to extend axe's capabilities. Skills are reusable workflows and domain expertise that you can invoke with `/skill:name` commands. Includes flow skills for multi-step automated workflows and examples for code style, git commits, and project standards. Turn your team's best practices into executable knowledge.
210
+
211
+ ### [Agents & Subagents](src/axe_cli/agents/README.md)
212
+ Guide to creating custom agents and spawning specialized subagents for parallel work. Need a dedicated security researcher? A ruthlessly precise code reviewer? A creative copywriter? axe can create and deploy specialized subagents based on your exact requirements. These subagents operate with lethal precision to divide and conquer complex workflows.
213
+
214
+ ### [Technical Reference](src/axe_cli/README.md)
215
+ Deep dive into configuration (providers, models, loop control), session management, architecture, and MCP integration. Everything you need to customize axe for your workflow. Configure Bodega models, set up OpenRouter/Anthropic/OpenAI providers, manage sessions, and integrate with other tools via Model Context Protocol.
216
+
217
+ ### [axe-dig: Code Intelligence Engine](docs/AXE-DIG.md)
218
+ **The secret weapon.** Complete documentation on axe-dig's 5-layer architecture, semantic search, daemon mode, and program slicing. Learn how to extract 95% fewer tokens while preserving everything needed for correct edits. Includes performance benchmarks (155x faster queries, 89% token reduction), real-world debugging workflows, and the design rationale behind every choice. This is what makes axe different from every other coding tool.
219
+
220
+ ---
221
+
222
+ ## Quick start
223
+
224
+ ### Install
225
+ ```bash
226
+ # Install axe-cli (includes axe-dig)
227
+ uv pip install axe-cli
228
+
229
+ # Or from source
230
+ git clone https://github.com/SRSWTI/axe-cli
231
+ cd axe-cli
232
+ make prepare
233
+ make build
234
+
235
+ or uv run axe
236
+ ```
237
+
238
+ ### Run
239
+ ```bash
240
+ cd /path/to/your/project
241
+ axe
242
+ ```
243
+
244
+ On first run, axe-dig automatically indexes your codebase (30-60 seconds for typical projects). After that, queries are instant.
245
+
246
+ ### Start using
247
+ ```bash
248
+ # Find code by behavior
249
+ /skill:code-search "database connection pooling"
250
+
251
+ # Understand a function without reading the whole file
252
+ /skill:code-context get_user_by_id
253
+
254
+ # See who calls a function before refactoring
255
+ /skill:code-impact authenticate_request
256
+
257
+ # Make surgical edits
258
+ StrReplaceFile src/auth.py "old code" "new code"
259
+
260
+ # Toggle to shell mode
261
+ [Ctrl+X]
262
+ pytest tests/
263
+ [Ctrl+X]
264
+ ```
265
+
266
+ ---
267
+
268
+ ## Core capabilities
269
+
270
+ ### Code intelligence (powered by axe-dig)
271
+
272
+ | Tool | What it does | Use case |
273
+ |------|-------------|----------|
274
+ | **CodeSearch** | Semantic search by behavior | "Find payment processing logic" |
275
+ | **CodeContext** | LLM-ready function summaries (95% token savings) | Understand unfamiliar code |
276
+ | **CodeStructure** | Navigate functions/classes in files/dirs | Explore new codebases |
277
+ | **CodeImpact** | Reverse call graph (who calls this?) | Safe refactoring |
278
+
279
+ ### File operations
280
+ - `ReadFile` / `WriteFile` / `StrReplaceFile` - Standard file I/O
281
+ - `Grep` - Exact file locations + line numbers (use after CodeSearch)
282
+ - `Glob` - Pattern matching
283
+ - `ReadMediaFile` - Images, PDFs, videos
284
+
285
+ ### Multi-agent workflows
286
+ - `Task` - Spawn subagents for parallel work
287
+ - `CreateSubagent` - Custom agent specs
288
+ - `SetTodoList` - Track multi-step tasks
289
+
290
+ ### Shell integration
291
+ - `Shell` - Execute commands
292
+ - **Ctrl+X** - Toggle between axe and normal shell mode
293
+
294
+ ---
295
+
296
+ ## Powered by SRSWTI Inc.
297
+
298
+ **Building the world's fastest retrieval and inference engines.**
299
+
300
+ ### Bodega Inference Engine
301
+
302
+ Exclusive models trained/optimized for Bodega Inference Engine. axe includes **zero-day support** for all Bodega models (ofcourse), ensuring immediate access to our latest breakthroughs.
303
+
304
+ **Note:** Our models are also available on [🤗 Hugging Face](https://huggingface.co/srswti).
305
+
306
+ #### Raptor Series
307
+ Ultra-compact reasoning models designed for efficiency and edge deployment. **Super light**, amazing agentic coding capabilities, robust tool support, minimal memory footprint.
308
+
309
+ - [🤗 **bodega-raptor-0.9b**](https://huggingface.co/srswti/bodega-raptor-0.9b) - 900M params. Runs on mobile/Pi with 100+ tok/s.
310
+ - [🤗 **bodega-raptor-90m**](https://huggingface.co/srswti/bodega-raptor-90m) - Extreme edge variant. Sub-100M params for amazing tool calling.
311
+ - [🤗 **bodega-raptor-1b-reasoning-opus4.5-distill**](https://huggingface.co/srswti/bodega-raptor-1b-reasoning-opus4.5-distill) - Distilled from Claude Opus 4.5 reasoning patterns.
312
+ - [🤗 **bodega-raptor-8b-mxfp4**](https://huggingface.co/srswti/bodega-raptor-8b-mxfp4) - Balanced power/performance for laptops.
313
+ - [🤗 **bodega-raptor-15b-6bit**](https://huggingface.co/srswti/bodega-raptor-15b-6bit) - Enhanced raptor variant.
314
+
315
+ #### Flagship Models
316
+ Frontier intelligence, distilled and optimized.
317
+
318
+ - [🤗 **deepseek-v3.2-speciale-distilled-raptor-32b-4bit**](https://huggingface.co/srswti/deepseek-v3.2-speciale-distilled-raptor-32b-4bit) - DeepSeek V3.2 distilled to 32B with Raptor reasoning. Exceptional math/code generation in 5-7GB footprint. 120 tok/s on M1 Max.
319
+ - [🤗 **bodega-centenario-21b-mxfp4**](https://huggingface.co/srswti/bodega-centenario-21b-mxfp4) - Production workhorse. 21B params optimized for sustained inference workloads.
320
+ - [🤗 **bodega-solomon-9b**](https://huggingface.co/srswti/bodega-solomon-9b) - Multimodal and best for agentic coding.
321
+
322
+ #### Axe-Turbo Series
323
+ **Launched specifically for the Axe coding use case.** High-performance agentic coding models optimized for the Axe ecosystem.
324
+
325
+ - [🤗 **axe-turbo-1b**](https://huggingface.co/srswti/axe-turbo-1b) - 1B params, 150 tok/s, sub-50ms first token. Edge-first architecture.
326
+ - [🤗 **axe-turbo-31b**](https://huggingface.co/srswti/axe-turbo-31b) - High-capacity workloads. Exceptional agentic capabilities.
327
+
328
+ #### Specialized Models
329
+ Task-specific optimization.
330
+
331
+ - [🤗 **bodega-vertex-4b**](https://huggingface.co/srswti/bodega-vertex-4b) - 4B params. Optimized for structured data.
332
+ - [🤗 **blackbird-she-doesnt-refuse-21b**](https://huggingface.co/srswti/blackbird-she-doesnt-refuse-21b) - Uncensored 21B variant for unrestricted generation.
333
+
334
+ ### Using Bodega Models
335
+
336
+ Configure Bodega in `~/.axe/config.toml`:
337
+
338
+ ```toml
339
+ default_model = "bodega-raptor"
340
+
341
+ [providers.bodega]
342
+ type = "bodega"
343
+ base_url = "http://localhost:44468" # Local Bodega server
344
+ api_key = ""
345
+
346
+ [models.bodega-raptor]
347
+ provider = "bodega"
348
+ model = "srswti/bodega-raptor-8b-mxfp4"
349
+ max_context_size = 32768
350
+ capabilities = ["thinking"]
351
+
352
+ [models.bodega-turbo]
353
+ provider = "bodega"
354
+ model = "srswti/axe-turbo-31b"
355
+ max_context_size = 32768
356
+ capabilities = ["thinking"]
357
+ ```
358
+
359
+ See [sample_config.toml](sample_config.toml) for more examples including OpenRouter, Anthropic, and OpenAI configurations.
360
+
361
+ ---
362
+
363
+ ## What's coming
364
+
365
+ Our internal team has been using features that will change the game:
366
+
367
+ ### 1. Execution Tracing
368
+ See what actually happened at runtime. No more guessing why a test failed.
369
+
370
+ ```bash
371
+ # Trace a failing test
372
+ /trace pytest tests/test_payment.py::test_refund
373
+
374
+ # Shows exact values that flowed through each function:
375
+ # process_refund(amount=Decimal("50.00"), transaction_id="tx_123")
376
+ # → validate_refund(transaction=Transaction(status="completed"))
377
+ # → check_refund_window(created_at=datetime(2024, 1, 15))
378
+ # → datetime.now() - created_at = timedelta(days=45)
379
+ # → raised RefundWindowExpired # ← 30-day window exceeded
380
+ ```
381
+
382
+ ### 2. Performance Debugging
383
+ Flame graphs and memory profiling integrated directly in the chat interface.
384
+
385
+ ```bash
386
+ # Generate flame graph
387
+ /flamegraph api_server.py
388
+
389
+ # Find memory leaks
390
+ /memory-profile background_worker.py
391
+ ```
392
+
393
+ ### 3. Visual Debugging
394
+ Interactive visualizations for understanding complex codebases:
395
+
396
+ - **Call graphs**: See the entire call chain from entry point to implementation
397
+ - **Dependency graphs**: Understand module relationships and coupling
398
+ - **AST visualizations**: Navigate code structure visually
399
+ - **Data flow diagrams**: Trace how values transform through your system
400
+
401
+ All generated on demand and viewable in your browser. No more drawing diagrams on whiteboards—axe-dig generates them from your actual code.
402
+
403
+ ### 4. Smart Test Selection
404
+ ```bash
405
+ # Only run tests affected by your changes
406
+ /test-impact src/payment/processor.py
407
+
408
+ # Shows: 12 tests need to run (not all 1,847)
409
+ ```
410
+
411
+ ---
412
+
413
+ ## Why we built this
414
+
415
+ We're building the world's best retrieval and inference engine. We started with coding because it's the hardest problem: understanding large codebases, tracing execution, debugging logic errors, optimizing performance.
416
+
417
+ If we can nail code understanding, we can nail anything.
418
+
419
+ **This is not for vibe coders.** This is not for weekend hackathons where "it works on my machine" is good enough. This is for engineers shipping production code to real users, where bugs cost money and downtime costs more.
420
+
421
+ Other tools optimize for demo videos and charging per token. We optimize for engineers who need to:
422
+ - Refactor 10,000 lines without breaking tests
423
+ - Debug race conditions in distributed systems
424
+ - Understand legacy codebases with zero documentation
425
+ - Ship features on deadline without cutting corners
426
+
427
+ **The bottom line:** If you're building real software in large codebases, you need precision tools. Not vibe coding toys.
428
+
429
+ Welcome to axe.
430
+
431
+ ---
432
+
433
+ ## Supported languages
434
+
435
+ Python, TypeScript, JavaScript, Go, Rust, Java, C, C++, Ruby, PHP, C#, Kotlin, Scala, Swift, Lua, Elixir
436
+
437
+ Language auto-detected. Specify with `--lang` if needed.
438
+
439
+ ---
440
+
441
+ ## Comparison
442
+
443
+ | Feature | Claude Code | OpenAI Codex | axe |
444
+ |---------|-------------|--------------|-----|
445
+ | **Built for** | Weekend projects | Demos | Production codebases |
446
+ | **Context strategy** | Dump everything | Dump everything | Extract signal (95% savings) |
447
+ | **Code search** | Text/regex | Text/regex | Semantic (behavior-based) |
448
+ | **Call graph analysis** | ❌ | ❌ | ✅ 5-layer analysis |
449
+ | **Token optimization** | ❌ (incentivized to waste) | ❌ (incentivized to waste) | ✅ Show savings per query |
450
+ | **Execution tracing** | ❌ | ❌ | ✅ Coming soon |
451
+ | **Flame graphs** | ❌ | ❌ | ✅ Coming soon |
452
+ | **Memory profiling** | ❌ | ❌ | ✅ Coming soon |
453
+ | **Visual debugging** | ❌ | ❌ | ✅ Coming soon |
454
+ | **Shell integration** | ❌ | ❌ | ✅ Ctrl+X toggle |
455
+ | **Session management** | Limited | Limited | ✅ Full history + replay |
456
+ | **Skills system** | ❌ | ❌ | ✅ Modular, extensible |
457
+ | **Subagents** | ❌ | ❌ | ✅ Parallel task execution |
458
+ | **Battle-tested** | Public beta | Public API | 6 months internal use |
459
+
460
+ ---
461
+
462
+ ## Community
463
+
464
+ - **Issues**: [GitHub Issues](https://github.com/SRSWTI/axe-cli/issues)
465
+ - **Discussions**: [GitHub Discussions](https://github.com/SRSWTI/axe-cli/discussions)
466
+ - **Docs**: [Full documentation](https://axe-cli.dev/docs)
467
+
468
+ ## Acknowledgements
469
+
470
+ Special thanks to [MoonshotAI/kimi-cli](https://github.com/MoonshotAI/kimi-cli) for their amazing work, which inspired our tools and the Kosong provider.