agent-cli 0.72.3__tar.gz → 0.72.5__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 (364) hide show
  1. {agent_cli-0.72.3 → agent_cli-0.72.5}/.claude-plugin/README.md +1 -1
  2. {agent_cli-0.72.3 → agent_cli-0.72.5}/.github/workflows/docker.yml +4 -0
  3. {agent_cli-0.72.3 → agent_cli-0.72.5}/PKG-INFO +3 -3
  4. {agent_cli-0.72.3 → agent_cli-0.72.5}/README.md +2 -2
  5. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/dev/cli.py +5 -1
  6. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/install/extras.py +3 -1
  7. {agent_cli-0.72.3 → agent_cli-0.72.5}/docker/docker-compose.yml +84 -0
  8. agent_cli-0.72.5/docker/memory-proxy.Dockerfile +121 -0
  9. agent_cli-0.72.5/docker/rag-proxy.Dockerfile +106 -0
  10. {agent_cli-0.72.3 → agent_cli-0.72.5}/docs/architecture/memory.md +11 -1
  11. {agent_cli-0.72.3 → agent_cli-0.72.5}/docs/architecture/rag.md +13 -1
  12. {agent_cli-0.72.3 → agent_cli-0.72.5}/docs/installation/docker.md +23 -1
  13. {agent_cli-0.72.3 → agent_cli-0.72.5}/.claude/skills/agent-cli-dev/SKILL.md +0 -0
  14. {agent_cli-0.72.3 → agent_cli-0.72.5}/.claude/skills/agent-cli-dev/examples.md +0 -0
  15. {agent_cli-0.72.3 → agent_cli-0.72.5}/.claude-plugin/marketplace.json +0 -0
  16. {agent_cli-0.72.3 → agent_cli-0.72.5}/.claude-plugin/plugin.json +0 -0
  17. {agent_cli-0.72.3 → agent_cli-0.72.5}/.claude-plugin/skills/agent-cli-dev/SKILL.md +0 -0
  18. {agent_cli-0.72.3 → agent_cli-0.72.5}/.claude-plugin/skills/agent-cli-dev/examples.md +0 -0
  19. {agent_cli-0.72.3 → agent_cli-0.72.5}/.cursorrules +0 -0
  20. {agent_cli-0.72.3 → agent_cli-0.72.5}/.dockerignore +0 -0
  21. {agent_cli-0.72.3 → agent_cli-0.72.5}/.env.example +0 -0
  22. {agent_cli-0.72.3 → agent_cli-0.72.5}/.github/logo.svg +0 -0
  23. {agent_cli-0.72.3 → agent_cli-0.72.5}/.github/release-drafter.yml +0 -0
  24. {agent_cli-0.72.3 → agent_cli-0.72.5}/.github/renovate.json +0 -0
  25. {agent_cli-0.72.3 → agent_cli-0.72.5}/.github/scripts/check_extras_sync.py +0 -0
  26. {agent_cli-0.72.3 → agent_cli-0.72.5}/.github/scripts/sync_requirements.py +0 -0
  27. {agent_cli-0.72.3 → agent_cli-0.72.5}/.github/workflows/automerge.yml +0 -0
  28. {agent_cli-0.72.3 → agent_cli-0.72.5}/.github/workflows/docs.yml +0 -0
  29. {agent_cli-0.72.3 → agent_cli-0.72.5}/.github/workflows/markdown-code-runner.yml +0 -0
  30. {agent_cli-0.72.3 → agent_cli-0.72.5}/.github/workflows/pytest.yml +0 -0
  31. {agent_cli-0.72.3 → agent_cli-0.72.5}/.github/workflows/release-drafter.yml +0 -0
  32. {agent_cli-0.72.3 → agent_cli-0.72.5}/.github/workflows/release.yml +0 -0
  33. {agent_cli-0.72.3 → agent_cli-0.72.5}/.github/workflows/toc.yaml +0 -0
  34. {agent_cli-0.72.3 → agent_cli-0.72.5}/.gitignore +0 -0
  35. {agent_cli-0.72.3 → agent_cli-0.72.5}/.jscpd.json +0 -0
  36. {agent_cli-0.72.3 → agent_cli-0.72.5}/.pre-commit-config.yaml +0 -0
  37. {agent_cli-0.72.3 → agent_cli-0.72.5}/.prompts/docs-review.md +0 -0
  38. {agent_cli-0.72.3 → agent_cli-0.72.5}/.prompts/pr-review.md +0 -0
  39. {agent_cli-0.72.3 → agent_cli-0.72.5}/CLAUDE.md +0 -0
  40. {agent_cli-0.72.3 → agent_cli-0.72.5}/LICENSE +0 -0
  41. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/__init__.py +0 -0
  42. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/__main__.py +0 -0
  43. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/_extras.json +0 -0
  44. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/_requirements/.gitkeep +0 -0
  45. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/_requirements/audio.txt +0 -0
  46. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/_requirements/faster-whisper.txt +0 -0
  47. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/_requirements/kokoro.txt +0 -0
  48. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/_requirements/llm.txt +0 -0
  49. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/_requirements/memory.txt +0 -0
  50. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/_requirements/mlx-whisper.txt +0 -0
  51. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/_requirements/piper.txt +0 -0
  52. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/_requirements/rag.txt +0 -0
  53. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/_requirements/server.txt +0 -0
  54. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/_requirements/speed.txt +0 -0
  55. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/_requirements/vad.txt +0 -0
  56. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/_requirements/wyoming.txt +0 -0
  57. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/_tools.py +0 -0
  58. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/agents/__init__.py +0 -0
  59. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/agents/_voice_agent_common.py +0 -0
  60. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/agents/assistant.py +0 -0
  61. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/agents/autocorrect.py +0 -0
  62. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/agents/chat.py +0 -0
  63. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/agents/memory/__init__.py +0 -0
  64. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/agents/memory/add.py +0 -0
  65. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/agents/memory/proxy.py +0 -0
  66. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/agents/rag_proxy.py +0 -0
  67. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/agents/speak.py +0 -0
  68. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/agents/transcribe.py +0 -0
  69. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/agents/transcribe_daemon.py +0 -0
  70. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/agents/voice_edit.py +0 -0
  71. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/api.py +0 -0
  72. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/cli.py +0 -0
  73. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/config.py +0 -0
  74. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/config_cmd.py +0 -0
  75. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/constants.py +0 -0
  76. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/core/__init__.py +0 -0
  77. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/core/audio.py +0 -0
  78. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/core/audio_format.py +0 -0
  79. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/core/chroma.py +0 -0
  80. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/core/deps.py +0 -0
  81. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/core/openai_proxy.py +0 -0
  82. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/core/process.py +0 -0
  83. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/core/reranker.py +0 -0
  84. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/core/sse.py +0 -0
  85. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/core/transcription_logger.py +0 -0
  86. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/core/utils.py +0 -0
  87. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/core/vad.py +0 -0
  88. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/core/watch.py +0 -0
  89. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/dev/__init__.py +0 -0
  90. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/dev/coding_agents/__init__.py +0 -0
  91. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/dev/coding_agents/aider.py +0 -0
  92. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/dev/coding_agents/base.py +0 -0
  93. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/dev/coding_agents/claude.py +0 -0
  94. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/dev/coding_agents/codex.py +0 -0
  95. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/dev/coding_agents/continue_dev.py +0 -0
  96. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/dev/coding_agents/copilot.py +0 -0
  97. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/dev/coding_agents/cursor_agent.py +0 -0
  98. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/dev/coding_agents/gemini.py +0 -0
  99. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/dev/coding_agents/opencode.py +0 -0
  100. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/dev/coding_agents/registry.py +0 -0
  101. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/dev/editors/__init__.py +0 -0
  102. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/dev/editors/base.py +0 -0
  103. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/dev/editors/cursor.py +0 -0
  104. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/dev/editors/emacs.py +0 -0
  105. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/dev/editors/jetbrains.py +0 -0
  106. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/dev/editors/nano.py +0 -0
  107. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/dev/editors/neovim.py +0 -0
  108. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/dev/editors/registry.py +0 -0
  109. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/dev/editors/sublime.py +0 -0
  110. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/dev/editors/vim.py +0 -0
  111. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/dev/editors/vscode.py +0 -0
  112. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/dev/editors/zed.py +0 -0
  113. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/dev/project.py +0 -0
  114. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/dev/registry.py +0 -0
  115. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/dev/skill/SKILL.md +0 -0
  116. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/dev/skill/examples.md +0 -0
  117. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/dev/terminals/__init__.py +0 -0
  118. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/dev/terminals/apple_terminal.py +0 -0
  119. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/dev/terminals/base.py +0 -0
  120. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/dev/terminals/gnome.py +0 -0
  121. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/dev/terminals/iterm2.py +0 -0
  122. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/dev/terminals/kitty.py +0 -0
  123. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/dev/terminals/registry.py +0 -0
  124. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/dev/terminals/tmux.py +0 -0
  125. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/dev/terminals/warp.py +0 -0
  126. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/dev/terminals/zellij.py +0 -0
  127. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/dev/worktree.py +0 -0
  128. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/docs_gen.py +0 -0
  129. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/example-config.toml +0 -0
  130. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/install/__init__.py +0 -0
  131. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/install/common.py +0 -0
  132. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/install/hotkeys.py +0 -0
  133. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/install/services.py +0 -0
  134. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/memory/__init__.py +0 -0
  135. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/memory/_files.py +0 -0
  136. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/memory/_filters.py +0 -0
  137. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/memory/_git.py +0 -0
  138. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/memory/_indexer.py +0 -0
  139. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/memory/_ingest.py +0 -0
  140. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/memory/_persistence.py +0 -0
  141. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/memory/_prompt.py +0 -0
  142. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/memory/_retrieval.py +0 -0
  143. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/memory/_store.py +0 -0
  144. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/memory/_streaming.py +0 -0
  145. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/memory/_tasks.py +0 -0
  146. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/memory/api.py +0 -0
  147. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/memory/client.py +0 -0
  148. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/memory/engine.py +0 -0
  149. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/memory/entities.py +0 -0
  150. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/memory/models.py +0 -0
  151. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/opts.py +0 -0
  152. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/py.typed +0 -0
  153. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/rag/__init__.py +0 -0
  154. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/rag/_indexer.py +0 -0
  155. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/rag/_indexing.py +0 -0
  156. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/rag/_prompt.py +0 -0
  157. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/rag/_retriever.py +0 -0
  158. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/rag/_store.py +0 -0
  159. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/rag/_utils.py +0 -0
  160. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/rag/api.py +0 -0
  161. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/rag/client.py +0 -0
  162. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/rag/engine.py +0 -0
  163. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/rag/models.py +0 -0
  164. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/scripts/.runtime/.gitkeep +0 -0
  165. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/scripts/__init__.py +0 -0
  166. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/scripts/check_plugin_skill_sync.py +0 -0
  167. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/scripts/linux-hotkeys/README.md +0 -0
  168. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/scripts/linux-hotkeys/toggle-autocorrect.sh +0 -0
  169. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/scripts/linux-hotkeys/toggle-transcription.sh +0 -0
  170. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/scripts/linux-hotkeys/toggle-voice-edit.sh +0 -0
  171. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/scripts/macos-hotkeys/README.md +0 -0
  172. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/scripts/macos-hotkeys/skhd-config-example +0 -0
  173. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/scripts/macos-hotkeys/toggle-autocorrect.sh +0 -0
  174. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/scripts/macos-hotkeys/toggle-transcription.sh +0 -0
  175. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/scripts/macos-hotkeys/toggle-voice-edit.sh +0 -0
  176. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/scripts/nvidia-asr-server/README.md +0 -0
  177. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/scripts/nvidia-asr-server/pyproject.toml +0 -0
  178. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/scripts/nvidia-asr-server/server.py +0 -0
  179. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/scripts/nvidia-asr-server/shell.nix +0 -0
  180. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/scripts/nvidia-asr-server/uv.lock +0 -0
  181. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/scripts/run-openwakeword.sh +0 -0
  182. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/scripts/run-piper-windows.ps1 +0 -0
  183. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/scripts/run-piper.sh +0 -0
  184. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/scripts/run-whisper-linux.sh +0 -0
  185. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/scripts/run-whisper-macos.sh +0 -0
  186. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/scripts/run-whisper-windows.ps1 +0 -0
  187. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/scripts/run-whisper.sh +0 -0
  188. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/scripts/run_faster_whisper_server.py +0 -0
  189. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/scripts/setup-linux-hotkeys.sh +0 -0
  190. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/scripts/setup-linux.sh +0 -0
  191. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/scripts/setup-macos-hotkeys.sh +0 -0
  192. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/scripts/setup-macos.sh +0 -0
  193. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/scripts/setup-windows.ps1 +0 -0
  194. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/scripts/start-all-services-windows.ps1 +0 -0
  195. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/scripts/start-all-services.sh +0 -0
  196. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/scripts/sync_extras.py +0 -0
  197. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/server/__init__.py +0 -0
  198. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/server/cli.py +0 -0
  199. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/server/common.py +0 -0
  200. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/server/model_manager.py +0 -0
  201. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/server/model_registry.py +0 -0
  202. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/server/proxy/__init__.py +0 -0
  203. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/server/proxy/api.py +0 -0
  204. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/server/streaming.py +0 -0
  205. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/server/tts/__init__.py +0 -0
  206. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/server/tts/api.py +0 -0
  207. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/server/tts/backends/__init__.py +0 -0
  208. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/server/tts/backends/base.py +0 -0
  209. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/server/tts/backends/kokoro.py +0 -0
  210. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/server/tts/backends/piper.py +0 -0
  211. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/server/tts/model_manager.py +0 -0
  212. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/server/tts/model_registry.py +0 -0
  213. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/server/tts/wyoming_handler.py +0 -0
  214. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/server/whisper/__init__.py +0 -0
  215. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/server/whisper/api.py +0 -0
  216. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/server/whisper/backends/__init__.py +0 -0
  217. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/server/whisper/backends/base.py +0 -0
  218. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/server/whisper/backends/faster_whisper.py +0 -0
  219. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/server/whisper/backends/mlx.py +0 -0
  220. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/server/whisper/languages.py +0 -0
  221. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/server/whisper/model_manager.py +0 -0
  222. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/server/whisper/model_registry.py +0 -0
  223. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/server/whisper/wyoming_handler.py +0 -0
  224. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/services/__init__.py +0 -0
  225. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/services/_wyoming_utils.py +0 -0
  226. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/services/asr.py +0 -0
  227. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/services/llm.py +0 -0
  228. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/services/tts.py +0 -0
  229. {agent_cli-0.72.3 → agent_cli-0.72.5}/agent_cli/services/wake_word.py +0 -0
  230. {agent_cli-0.72.3 → agent_cli-0.72.5}/docker/transcribe-proxy.Dockerfile +0 -0
  231. {agent_cli-0.72.3 → agent_cli-0.72.5}/docker/tts.Dockerfile +0 -0
  232. {agent_cli-0.72.3 → agent_cli-0.72.5}/docker/whisper.Dockerfile +0 -0
  233. {agent_cli-0.72.3 → agent_cli-0.72.5}/docs/CNAME +0 -0
  234. {agent_cli-0.72.3 → agent_cli-0.72.5}/docs/architecture/index.md +0 -0
  235. {agent_cli-0.72.3 → agent_cli-0.72.5}/docs/commands/assistant.md +0 -0
  236. {agent_cli-0.72.3 → agent_cli-0.72.5}/docs/commands/autocorrect.md +0 -0
  237. {agent_cli-0.72.3 → agent_cli-0.72.5}/docs/commands/chat.md +0 -0
  238. {agent_cli-0.72.3 → agent_cli-0.72.5}/docs/commands/config.md +0 -0
  239. {agent_cli-0.72.3 → agent_cli-0.72.5}/docs/commands/dev.md +0 -0
  240. {agent_cli-0.72.3 → agent_cli-0.72.5}/docs/commands/index.md +0 -0
  241. {agent_cli-0.72.3 → agent_cli-0.72.5}/docs/commands/install-extras.md +0 -0
  242. {agent_cli-0.72.3 → agent_cli-0.72.5}/docs/commands/install-hotkeys.md +0 -0
  243. {agent_cli-0.72.3 → agent_cli-0.72.5}/docs/commands/install-services.md +0 -0
  244. {agent_cli-0.72.3 → agent_cli-0.72.5}/docs/commands/memory.md +0 -0
  245. {agent_cli-0.72.3 → agent_cli-0.72.5}/docs/commands/rag-proxy.md +0 -0
  246. {agent_cli-0.72.3 → agent_cli-0.72.5}/docs/commands/server/index.md +0 -0
  247. {agent_cli-0.72.3 → agent_cli-0.72.5}/docs/commands/server/transcribe-proxy.md +0 -0
  248. {agent_cli-0.72.3 → agent_cli-0.72.5}/docs/commands/server/tts.md +0 -0
  249. {agent_cli-0.72.3 → agent_cli-0.72.5}/docs/commands/server/whisper.md +0 -0
  250. {agent_cli-0.72.3 → agent_cli-0.72.5}/docs/commands/speak.md +0 -0
  251. {agent_cli-0.72.3 → agent_cli-0.72.5}/docs/commands/start-services.md +0 -0
  252. {agent_cli-0.72.3 → agent_cli-0.72.5}/docs/commands/transcribe-daemon.md +0 -0
  253. {agent_cli-0.72.3 → agent_cli-0.72.5}/docs/commands/transcribe.md +0 -0
  254. {agent_cli-0.72.3 → agent_cli-0.72.5}/docs/commands/voice-edit.md +0 -0
  255. {agent_cli-0.72.3 → agent_cli-0.72.5}/docs/configuration.md +0 -0
  256. {agent_cli-0.72.3 → agent_cli-0.72.5}/docs/getting-started.md +0 -0
  257. {agent_cli-0.72.3 → agent_cli-0.72.5}/docs/iOS_Shortcut_Guide.md +0 -0
  258. {agent_cli-0.72.3 → agent_cli-0.72.5}/docs/index.md +0 -0
  259. {agent_cli-0.72.3 → agent_cli-0.72.5}/docs/installation/index.md +0 -0
  260. {agent_cli-0.72.3 → agent_cli-0.72.5}/docs/installation/linux.md +0 -0
  261. {agent_cli-0.72.3 → agent_cli-0.72.5}/docs/installation/macos.md +0 -0
  262. {agent_cli-0.72.3 → agent_cli-0.72.5}/docs/installation/nixos.md +0 -0
  263. {agent_cli-0.72.3 → agent_cli-0.72.5}/docs/installation/windows.md +0 -0
  264. {agent_cli-0.72.3 → agent_cli-0.72.5}/docs/logo-clean.svg +0 -0
  265. {agent_cli-0.72.3 → agent_cli-0.72.5}/docs/overrides/partials/integrations/analytics/custom.html +0 -0
  266. {agent_cli-0.72.3 → agent_cli-0.72.5}/docs/run_markdown_code_runner.py +0 -0
  267. {agent_cli-0.72.3 → agent_cli-0.72.5}/docs/system-integration.md +0 -0
  268. {agent_cli-0.72.3 → agent_cli-0.72.5}/example.agent-cli-config.toml +0 -0
  269. {agent_cli-0.72.3 → agent_cli-0.72.5}/justfile +0 -0
  270. {agent_cli-0.72.3 → agent_cli-0.72.5}/pyproject.toml +0 -0
  271. {agent_cli-0.72.3 → agent_cli-0.72.5}/shell.nix +0 -0
  272. {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/__init__.py +0 -0
  273. {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/agents/__init__.py +0 -0
  274. {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/agents/test_fix_my_text.py +0 -0
  275. {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/agents/test_interactive.py +0 -0
  276. {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/agents/test_interactive_extra.py +0 -0
  277. {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/agents/test_memory_add.py +0 -0
  278. {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/agents/test_speak.py +0 -0
  279. {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/agents/test_speak_e2e.py +0 -0
  280. {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/agents/test_transcribe.py +0 -0
  281. {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/agents/test_transcribe_agent.py +0 -0
  282. {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/agents/test_transcribe_daemon.py +0 -0
  283. {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/agents/test_transcribe_e2e.py +0 -0
  284. {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/agents/test_transcribe_recovery.py +0 -0
  285. {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/agents/test_tts_common.py +0 -0
  286. {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/agents/test_tts_common_extra.py +0 -0
  287. {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/agents/test_voice_agent_common.py +0 -0
  288. {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/agents/test_voice_edit.py +0 -0
  289. {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/agents/test_voice_edit_e2e.py +0 -0
  290. {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/agents/test_wake_word_assistant.py +0 -0
  291. {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/conftest.py +0 -0
  292. {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/core/__init__.py +0 -0
  293. {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/core/test_audio_format.py +0 -0
  294. {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/core/test_chroma.py +0 -0
  295. {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/core/test_sse.py +0 -0
  296. {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/core/test_vad.py +0 -0
  297. {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/core/test_watch.py +0 -0
  298. {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/dev/__init__.py +0 -0
  299. {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/dev/test_cli.py +0 -0
  300. {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/dev/test_coding_agents.py +0 -0
  301. {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/dev/test_editors.py +0 -0
  302. {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/dev/test_project.py +0 -0
  303. {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/dev/test_terminals.py +0 -0
  304. {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/dev/test_verification.py +0 -0
  305. {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/dev/test_worktree.py +0 -0
  306. {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/install/__init__.py +0 -0
  307. {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/install/test_extras.py +0 -0
  308. {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/memory/__init__.py +0 -0
  309. {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/memory/test_api_health.py +0 -0
  310. {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/memory/test_api_integration_liveish.py +0 -0
  311. {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/memory/test_client.py +0 -0
  312. {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/memory/test_engine.py +0 -0
  313. {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/memory/test_files.py +0 -0
  314. {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/memory/test_filters.py +0 -0
  315. {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/memory/test_git_integration.py +0 -0
  316. {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/memory/test_indexer.py +0 -0
  317. {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/memory/test_memory_integration.py +0 -0
  318. {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/memory/test_proxy_passthrough.py +0 -0
  319. {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/memory/test_store.py +0 -0
  320. {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/memory/test_utils.py +0 -0
  321. {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/mocks/__init__.py +0 -0
  322. {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/mocks/audio.py +0 -0
  323. {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/mocks/llm.py +0 -0
  324. {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/mocks/wyoming.py +0 -0
  325. {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/rag/__init__.py +0 -0
  326. {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/rag/test_api.py +0 -0
  327. {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/rag/test_engine.py +0 -0
  328. {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/rag/test_history.py +0 -0
  329. {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/rag/test_indexer.py +0 -0
  330. {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/rag/test_indexing.py +0 -0
  331. {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/rag/test_rag_client.py +0 -0
  332. {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/rag/test_rag_integration_liveish.py +0 -0
  333. {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/rag/test_rag_proxy_passthrough.py +0 -0
  334. {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/rag/test_retriever.py +0 -0
  335. {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/rag/test_store.py +0 -0
  336. {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/rag/test_utils.py +0 -0
  337. {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/test_api.py +0 -0
  338. {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/test_api_integration.py +0 -0
  339. {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/test_asr.py +0 -0
  340. {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/test_asr_recovery.py +0 -0
  341. {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/test_audio_e2e.py +0 -0
  342. {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/test_cli.py +0 -0
  343. {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/test_config.py +0 -0
  344. {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/test_config_cmd.py +0 -0
  345. {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/test_docs_gen.py +0 -0
  346. {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/test_env_vars.py +0 -0
  347. {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/test_json_output.py +0 -0
  348. {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/test_llm.py +0 -0
  349. {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/test_llm_gemini.py +0 -0
  350. {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/test_memory_tools.py +0 -0
  351. {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/test_mlx_backend.py +0 -0
  352. {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/test_process_manager.py +0 -0
  353. {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/test_requires_extras.py +0 -0
  354. {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/test_server_streaming.py +0 -0
  355. {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/test_server_tts.py +0 -0
  356. {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/test_server_whisper.py +0 -0
  357. {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/test_services.py +0 -0
  358. {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/test_tools.py +0 -0
  359. {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/test_tts.py +0 -0
  360. {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/test_utils.py +0 -0
  361. {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/test_wake_word.py +0 -0
  362. {agent_cli-0.72.3 → agent_cli-0.72.5}/tests/test_wyoming_utils.py +0 -0
  363. {agent_cli-0.72.3 → agent_cli-0.72.5}/uv.lock +0 -0
  364. {agent_cli-0.72.3 → agent_cli-0.72.5}/zensical.toml +0 -0
@@ -30,7 +30,7 @@ uvx --python 3.13 agent-cli dev new my-feature --agent --prompt "..."
30
30
  claude plugin marketplace add basnijholt/agent-cli
31
31
 
32
32
  # Then install
33
- claude plugin install agent-cli@agent-cli-dev
33
+ claude plugin install agent-cli-dev@agent-cli
34
34
  ```
35
35
 
36
36
  ## Usage
@@ -104,6 +104,10 @@ jobs:
104
104
  include:
105
105
  - image: transcribe-proxy
106
106
  dockerfile: docker/transcribe-proxy.Dockerfile
107
+ - image: rag-proxy
108
+ dockerfile: docker/rag-proxy.Dockerfile
109
+ - image: memory-proxy
110
+ dockerfile: docker/memory-proxy.Dockerfile
107
111
 
108
112
  steps:
109
113
  - name: Checkout repository
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agent-cli
3
- Version: 0.72.3
3
+ Version: 0.72.5
4
4
  Summary: A suite of AI-powered command-line tools for text correction, audio transcription, and voice assistance.
5
5
  Project-URL: Homepage, https://github.com/basnijholt/agent-cli
6
6
  Author-email: Bas Nijholt <bas@nijho.lt>
@@ -88,7 +88,7 @@ Description-Content-Type: text/markdown
88
88
 
89
89
  # Agent CLI
90
90
 
91
- <img src="https://raw.githubusercontent.com/basnijholt/agent-cli/refs/heads/main/.github/logo.svg" alt="agent-cli logo" align="right" style="width: 250px;" />
91
+ <img src="https://raw.githubusercontent.com/basnijholt/agent-cli/refs/heads/main/.github/logo.svg" alt="agent-cli logo" align="right" style="width: 200px;" />
92
92
 
93
93
  `agent-cli` is a collection of **_local-first_**, AI-powered command-line agents that run entirely on your machine.
94
94
  It provides a suite of powerful tools for voice and text interaction, designed for privacy, offline capability, and seamless integration with system-wide hotkeys and workflows.
@@ -391,7 +391,7 @@ agent-cli dev install-skill
391
391
 
392
392
  # Option 2: Install via Claude Code plugin marketplace
393
393
  claude plugin marketplace add basnijholt/agent-cli
394
- claude plugin install agent-cli@agent-cli-dev
394
+ claude plugin install agent-cli-dev@agent-cli
395
395
  ```
396
396
 
397
397
  Once installed, Claude Code can automatically use this skill when you ask to:
@@ -1,6 +1,6 @@
1
1
  # Agent CLI
2
2
 
3
- <img src="https://raw.githubusercontent.com/basnijholt/agent-cli/refs/heads/main/.github/logo.svg" alt="agent-cli logo" align="right" style="width: 250px;" />
3
+ <img src="https://raw.githubusercontent.com/basnijholt/agent-cli/refs/heads/main/.github/logo.svg" alt="agent-cli logo" align="right" style="width: 200px;" />
4
4
 
5
5
  `agent-cli` is a collection of **_local-first_**, AI-powered command-line agents that run entirely on your machine.
6
6
  It provides a suite of powerful tools for voice and text interaction, designed for privacy, offline capability, and seamless integration with system-wide hotkeys and workflows.
@@ -303,7 +303,7 @@ agent-cli dev install-skill
303
303
 
304
304
  # Option 2: Install via Claude Code plugin marketplace
305
305
  claude plugin marketplace add basnijholt/agent-cli
306
- claude plugin install agent-cli@agent-cli-dev
306
+ claude plugin install agent-cli-dev@agent-cli
307
307
  ```
308
308
 
309
309
  Once installed, Claude Code can automatically use this skill when you ask to:
@@ -176,6 +176,8 @@ def _info(msg: str) -> None:
176
176
  # Style commands (messages starting with "Running: ")
177
177
  if msg.startswith("Running: "):
178
178
  cmd = msg[9:] # Remove "Running: " prefix
179
+ # Escape brackets to prevent Rich from interpreting them as markup
180
+ cmd = cmd.replace("[", r"\[")
179
181
  console.print(f"[dim]→[/dim] Running: [bold cyan]{cmd}[/bold cyan]")
180
182
  else:
181
183
  console.print(f"[dim]→[/dim] {msg}")
@@ -1777,7 +1779,9 @@ def install_skill(
1777
1779
  - Works when you ask to "work on multiple features" or "parallelize tasks"
1778
1780
 
1779
1781
  **Alternative:** Install globally via Claude Code plugin marketplace:
1780
- `claude plugin marketplace add basnijholt/agent-cli`
1782
+
1783
+ 1. `claude plugin marketplace add basnijholt/agent-cli`
1784
+ 2. `claude plugin install agent-cli-dev@agent-cli`
1781
1785
  """
1782
1786
  # Use current repo root (works in worktrees too)
1783
1787
  repo_root = _get_current_repo_root()
@@ -68,7 +68,9 @@ def _install_via_uv_tool(extras: list[str], *, quiet: bool = False) -> bool:
68
68
  if quiet:
69
69
  cmd.append("-q")
70
70
  # Use stderr for status messages so they don't pollute stdout (e.g., for hotkey notifications)
71
- err_console.print(f"Running: [cyan]{' '.join(cmd)}[/]")
71
+ # Escape brackets to prevent Rich from interpreting them as markup
72
+ cmd_str = " ".join(cmd).replace("[", r"\[")
73
+ err_console.print(f"Running: [cyan]{cmd_str}[/]")
72
74
  result = subprocess.run(cmd, check=False)
73
75
  return result.returncode == 0
74
76
 
@@ -41,6 +41,17 @@
41
41
  # LLM_OPENAI_MODEL - Model name for OpenAI LLM provider
42
42
  # OPENAI_BASE_URL - OpenAI-compatible LLM endpoint
43
43
  # OPENAI_API_KEY - API key for OpenAI LLM
44
+ #
45
+ # RAG_PORT - RAG proxy port (default: 8000)
46
+ # RAG_LIMIT - Number of document chunks per query (default: 3)
47
+ # RAG_ENABLE_TOOLS - Enable read_full_document tool (default: true)
48
+ # EMBEDDING_MODEL - Embedding model for RAG/memory (default: text-embedding-3-small)
49
+ #
50
+ # MEMORY_PORT - Memory proxy port (default: 8100)
51
+ # MEMORY_TOP_K - Number of memories per query (default: 5)
52
+ # MEMORY_MAX_ENTRIES - Max entries per conversation (default: 500)
53
+ # MEMORY_SUMMARIZATION - Enable fact extraction (default: true)
54
+ # MEMORY_GIT_VERSIONING - Enable git versioning (default: true)
44
55
 
45
56
  services:
46
57
  # ===========================================================================
@@ -227,6 +238,69 @@ services:
227
238
  # - OPENAI_API_KEY=your-api-key
228
239
  restart: unless-stopped
229
240
 
241
+ # ===========================================================================
242
+ # RAG Proxy
243
+ # ===========================================================================
244
+
245
+ rag-proxy:
246
+ image: ghcr.io/basnijholt/agent-cli-rag-proxy:latest
247
+ build:
248
+ context: ..
249
+ dockerfile: docker/rag-proxy.Dockerfile
250
+ profiles: [cuda, cpu]
251
+ ports:
252
+ - "8000:8000"
253
+ volumes:
254
+ - rag-docs:/data/docs
255
+ - rag-db:/data/db
256
+ - rag-cache:/home/rag/.cache
257
+ environment:
258
+ - RAG_HOST=0.0.0.0
259
+ - RAG_PORT=${RAG_PORT:-8000}
260
+ - RAG_DOCS_FOLDER=/data/docs
261
+ - RAG_CHROMA_PATH=/data/db
262
+ - RAG_LIMIT=${RAG_LIMIT:-3}
263
+ - RAG_ENABLE_TOOLS=${RAG_ENABLE_TOOLS:-true}
264
+ - EMBEDDING_MODEL=${EMBEDDING_MODEL:-text-embedding-3-small}
265
+ - LOG_LEVEL=${LOG_LEVEL:-info}
266
+ # OpenAI-compatible backend configuration
267
+ - OPENAI_BASE_URL=${OPENAI_BASE_URL:-http://ollama:11434/v1}
268
+ - OPENAI_API_KEY=${OPENAI_API_KEY:-}
269
+ restart: unless-stopped
270
+
271
+ # ===========================================================================
272
+ # Memory Proxy
273
+ # ===========================================================================
274
+
275
+ memory-proxy:
276
+ image: ghcr.io/basnijholt/agent-cli-memory-proxy:latest
277
+ build:
278
+ context: ..
279
+ dockerfile: docker/memory-proxy.Dockerfile
280
+ profiles: [cuda, cpu]
281
+ ports:
282
+ - "8100:8100"
283
+ volumes:
284
+ - memory-data:/data/memory
285
+ - memory-cache:/home/memory/.cache
286
+ environment:
287
+ - MEMORY_HOST=0.0.0.0
288
+ - MEMORY_PORT=${MEMORY_PORT:-8100}
289
+ - MEMORY_PATH=/data/memory
290
+ - MEMORY_TOP_K=${MEMORY_TOP_K:-5}
291
+ - MEMORY_MAX_ENTRIES=${MEMORY_MAX_ENTRIES:-500}
292
+ - MEMORY_MMR_LAMBDA=${MEMORY_MMR_LAMBDA:-0.7}
293
+ - MEMORY_RECENCY_WEIGHT=${MEMORY_RECENCY_WEIGHT:-0.2}
294
+ - MEMORY_SCORE_THRESHOLD=${MEMORY_SCORE_THRESHOLD:-0.35}
295
+ - MEMORY_SUMMARIZATION=${MEMORY_SUMMARIZATION:-true}
296
+ - MEMORY_GIT_VERSIONING=${MEMORY_GIT_VERSIONING:-true}
297
+ - EMBEDDING_MODEL=${EMBEDDING_MODEL:-text-embedding-3-small}
298
+ - LOG_LEVEL=${LOG_LEVEL:-info}
299
+ # OpenAI-compatible backend configuration
300
+ - OPENAI_BASE_URL=${OPENAI_BASE_URL:-http://ollama:11434/v1}
301
+ - OPENAI_API_KEY=${OPENAI_API_KEY:-}
302
+ restart: unless-stopped
303
+
230
304
  volumes:
231
305
  ollama-data:
232
306
  name: agent-cli-ollama-data
@@ -236,3 +310,13 @@ volumes:
236
310
  name: agent-cli-whisper-cache
237
311
  tts-cache:
238
312
  name: agent-cli-tts-cache
313
+ rag-docs:
314
+ name: agent-cli-rag-docs
315
+ rag-db:
316
+ name: agent-cli-rag-db
317
+ rag-cache:
318
+ name: agent-cli-rag-cache
319
+ memory-data:
320
+ name: agent-cli-memory-data
321
+ memory-cache:
322
+ name: agent-cli-memory-cache
@@ -0,0 +1,121 @@
1
+ # Dockerfile for agent-cli Memory Proxy server
2
+ # A long-term memory proxy that stores facts and injects relevant context into LLM requests
3
+ #
4
+ # Build example:
5
+ # docker build -f docker/memory-proxy.Dockerfile -t agent-cli-memory-proxy .
6
+ #
7
+ # Run examples:
8
+ # docker run -p 8100:8100 -v ./memory:/data/memory agent-cli-memory-proxy
9
+ #
10
+ # # With custom OpenAI-compatible backend:
11
+ # docker run -p 8100:8100 \
12
+ # -v ./memory:/data/memory \
13
+ # -e OPENAI_BASE_URL=http://ollama:11434/v1 \
14
+ # agent-cli-memory-proxy
15
+ #
16
+ # Environment variables (priority: env var > config file > default):
17
+ # MEMORY_PATH - Directory for memory storage (default: /data/memory)
18
+ # MEMORY_TOP_K - Number of memories to retrieve per query (default: 5)
19
+ # MEMORY_MAX_ENTRIES - Max entries per conversation before eviction (default: 500)
20
+ # MEMORY_MMR_LAMBDA - MMR lambda 0-1, higher=relevance (default: 0.7)
21
+ # MEMORY_RECENCY_WEIGHT - Weight for recency vs semantic (default: 0.2)
22
+ # MEMORY_SCORE_THRESHOLD - Min relevance threshold (default: 0.35)
23
+ # MEMORY_SUMMARIZATION - Enable fact extraction: true/false (default: true)
24
+ # MEMORY_GIT_VERSIONING - Enable git versioning: true/false (default: true)
25
+ # EMBEDDING_MODEL - Embedding model name (default: text-embedding-3-small)
26
+ # OPENAI_BASE_URL - OpenAI-compatible API base URL
27
+ # OPENAI_API_KEY - API key for embeddings and chat
28
+ # MEMORY_HOST - Server bind address (default: 0.0.0.0)
29
+ # MEMORY_PORT - Server port (default: 8100)
30
+ # LOG_LEVEL - Logging level: debug, info, warning, error (default: info)
31
+
32
+ # =============================================================================
33
+ # Builder stage - install dependencies and project
34
+ # =============================================================================
35
+ FROM python:3.13-slim AS builder
36
+
37
+ RUN apt-get update && \
38
+ apt-get install -y --no-install-recommends git build-essential && \
39
+ apt-get clean && rm -rf /var/lib/apt/lists/*
40
+
41
+ COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
42
+
43
+ WORKDIR /app
44
+
45
+ COPY pyproject.toml uv.lock README.md ./
46
+ COPY .git ./.git
47
+ COPY agent_cli ./agent_cli
48
+ COPY scripts ./scripts
49
+ RUN uv sync --frozen --no-dev --no-editable --extra memory
50
+
51
+ # =============================================================================
52
+ # Runtime stage - minimal image
53
+ # =============================================================================
54
+ FROM debian:bookworm-slim
55
+
56
+ COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
57
+
58
+ # Install runtime dependencies:
59
+ # - libgomp1: Required by onnxruntime for parallel processing
60
+ # - git: Required for memory git versioning feature
61
+ RUN apt-get update && \
62
+ apt-get install -y --no-install-recommends libgomp1 git && \
63
+ apt-get clean && rm -rf /var/lib/apt/lists/*
64
+
65
+ ENV UV_PYTHON_INSTALL_DIR=/opt/python
66
+ RUN uv python install 3.13
67
+
68
+ RUN groupadd -g 1000 memory && useradd -m -u 1000 -g memory memory
69
+
70
+ WORKDIR /app
71
+
72
+ COPY --from=builder /app/.venv /app/.venv
73
+
74
+ RUN ln -sf $(uv python find 3.13) /app/.venv/bin/python && \
75
+ ln -s /app/.venv/bin/agent-cli /usr/local/bin/agent-cli
76
+
77
+ # Create data directory
78
+ RUN mkdir -p /data/memory && chown -R memory:memory /data
79
+
80
+ USER memory
81
+
82
+ # Configure git for memory versioning (required for commits)
83
+ RUN git config --global user.email "memory-proxy@agent-cli.local" && \
84
+ git config --global user.name "Memory Proxy"
85
+
86
+ # Cache directory for models (embeddings)
87
+ ENV HF_HOME=/home/memory/.cache/huggingface
88
+ RUN mkdir -p /home/memory/.cache/huggingface
89
+
90
+ EXPOSE 8100
91
+
92
+ ENV MEMORY_HOST=0.0.0.0 \
93
+ MEMORY_PORT=8100 \
94
+ MEMORY_PATH=/data/memory \
95
+ MEMORY_TOP_K=5 \
96
+ MEMORY_MAX_ENTRIES=500 \
97
+ MEMORY_MMR_LAMBDA=0.7 \
98
+ MEMORY_RECENCY_WEIGHT=0.2 \
99
+ MEMORY_SCORE_THRESHOLD=0.35 \
100
+ MEMORY_SUMMARIZATION=true \
101
+ MEMORY_GIT_VERSIONING=true \
102
+ EMBEDDING_MODEL=text-embedding-3-small \
103
+ LOG_LEVEL=info
104
+
105
+ HEALTHCHECK --interval=30s --timeout=10s --start-period=30s --retries=3 \
106
+ CMD /app/.venv/bin/python -c "import urllib.request; urllib.request.urlopen('http://localhost:${MEMORY_PORT}/health')" || exit 1
107
+
108
+ ENTRYPOINT ["sh", "-c", "agent-cli memory proxy \
109
+ --host ${MEMORY_HOST} \
110
+ --port ${MEMORY_PORT} \
111
+ --memory-path ${MEMORY_PATH} \
112
+ --default-top-k ${MEMORY_TOP_K} \
113
+ --max-entries ${MEMORY_MAX_ENTRIES} \
114
+ --mmr-lambda ${MEMORY_MMR_LAMBDA} \
115
+ --recency-weight ${MEMORY_RECENCY_WEIGHT} \
116
+ --score-threshold ${MEMORY_SCORE_THRESHOLD} \
117
+ --embedding-model ${EMBEDDING_MODEL} \
118
+ --log-level ${LOG_LEVEL} \
119
+ $([ \"${MEMORY_SUMMARIZATION}\" = \"false\" ] && echo '--no-summarization' || echo '--summarization') \
120
+ $([ \"${MEMORY_GIT_VERSIONING}\" = \"false\" ] && echo '--no-git-versioning' || echo '--git-versioning') \
121
+ ${MEMORY_EXTRA_ARGS:-}"]
@@ -0,0 +1,106 @@
1
+ # Dockerfile for agent-cli RAG Proxy server
2
+ # A document-aware proxy that indexes files and injects relevant context into LLM requests
3
+ #
4
+ # Build example:
5
+ # docker build -f docker/rag-proxy.Dockerfile -t agent-cli-rag-proxy .
6
+ #
7
+ # Run examples:
8
+ # docker run -p 8000:8000 -v ./docs:/data/docs agent-cli-rag-proxy
9
+ #
10
+ # # With custom OpenAI-compatible backend:
11
+ # docker run -p 8000:8000 \
12
+ # -v ./docs:/data/docs \
13
+ # -v ./rag_db:/data/db \
14
+ # -e OPENAI_BASE_URL=http://ollama:11434/v1 \
15
+ # agent-cli-rag-proxy
16
+ #
17
+ # Environment variables (priority: env var > config file > default):
18
+ # RAG_DOCS_FOLDER - Folder to watch for documents (default: /data/docs)
19
+ # RAG_CHROMA_PATH - ChromaDB storage directory (default: /data/db)
20
+ # RAG_LIMIT - Number of chunks to retrieve per query (default: 3)
21
+ # RAG_ENABLE_TOOLS - Enable read_full_document tool: true/false (default: true)
22
+ # EMBEDDING_MODEL - Embedding model name (default: text-embedding-3-small)
23
+ # OPENAI_BASE_URL - OpenAI-compatible API base URL
24
+ # OPENAI_API_KEY - API key for embeddings and chat
25
+ # RAG_HOST - Server bind address (default: 0.0.0.0)
26
+ # RAG_PORT - Server port (default: 8000)
27
+ # LOG_LEVEL - Logging level: debug, info, warning, error (default: info)
28
+
29
+ # =============================================================================
30
+ # Builder stage - install dependencies and project
31
+ # =============================================================================
32
+ FROM python:3.13-slim AS builder
33
+
34
+ RUN apt-get update && \
35
+ apt-get install -y --no-install-recommends git build-essential && \
36
+ apt-get clean && rm -rf /var/lib/apt/lists/*
37
+
38
+ COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
39
+
40
+ WORKDIR /app
41
+
42
+ COPY pyproject.toml uv.lock README.md ./
43
+ COPY .git ./.git
44
+ COPY agent_cli ./agent_cli
45
+ COPY scripts ./scripts
46
+ RUN uv sync --frozen --no-dev --no-editable --extra rag
47
+
48
+ # =============================================================================
49
+ # Runtime stage - minimal image
50
+ # =============================================================================
51
+ FROM debian:bookworm-slim
52
+
53
+ COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
54
+
55
+ # Install runtime dependencies:
56
+ # - libgomp1: Required by onnxruntime for parallel processing
57
+ # - git: Required for .git detection in some document types
58
+ RUN apt-get update && \
59
+ apt-get install -y --no-install-recommends libgomp1 git && \
60
+ apt-get clean && rm -rf /var/lib/apt/lists/*
61
+
62
+ ENV UV_PYTHON_INSTALL_DIR=/opt/python
63
+ RUN uv python install 3.13
64
+
65
+ RUN groupadd -g 1000 rag && useradd -m -u 1000 -g rag rag
66
+
67
+ WORKDIR /app
68
+
69
+ COPY --from=builder /app/.venv /app/.venv
70
+
71
+ RUN ln -sf $(uv python find 3.13) /app/.venv/bin/python && \
72
+ ln -s /app/.venv/bin/agent-cli /usr/local/bin/agent-cli
73
+
74
+ # Create data directories
75
+ RUN mkdir -p /data/docs /data/db && chown -R rag:rag /data
76
+
77
+ USER rag
78
+
79
+ # Cache directory for models (embeddings, reranker)
80
+ ENV HF_HOME=/home/rag/.cache/huggingface
81
+ RUN mkdir -p /home/rag/.cache/huggingface
82
+
83
+ EXPOSE 8000
84
+
85
+ ENV RAG_HOST=0.0.0.0 \
86
+ RAG_PORT=8000 \
87
+ RAG_DOCS_FOLDER=/data/docs \
88
+ RAG_CHROMA_PATH=/data/db \
89
+ RAG_LIMIT=3 \
90
+ RAG_ENABLE_TOOLS=true \
91
+ EMBEDDING_MODEL=text-embedding-3-small \
92
+ LOG_LEVEL=info
93
+
94
+ HEALTHCHECK --interval=30s --timeout=10s --start-period=30s --retries=3 \
95
+ CMD /app/.venv/bin/python -c "import urllib.request; urllib.request.urlopen('http://localhost:${RAG_PORT}/health')" || exit 1
96
+
97
+ ENTRYPOINT ["sh", "-c", "agent-cli rag-proxy \
98
+ --host ${RAG_HOST} \
99
+ --port ${RAG_PORT} \
100
+ --docs-folder ${RAG_DOCS_FOLDER} \
101
+ --chroma-path ${RAG_CHROMA_PATH} \
102
+ --limit ${RAG_LIMIT} \
103
+ --embedding-model ${EMBEDDING_MODEL} \
104
+ --log-level ${LOG_LEVEL} \
105
+ $([ \"${RAG_ENABLE_TOOLS}\" = \"false\" ] && echo '--no-rag-tools' || echo '--rag-tools') \
106
+ ${RAG_EXTRA_ARGS:-}"]
@@ -46,7 +46,17 @@ A local-first system that gives LLMs persistent memory across conversations, wit
46
46
 
47
47
  ### Try It Now
48
48
 
49
- Get an LLM that remembers you using [Ollama](https://ollama.com). Two options:
49
+ Get an LLM that remembers you using [Ollama](https://ollama.com). Three options:
50
+
51
+ **Option 0: With Docker Compose (easiest)**
52
+
53
+ ```bash
54
+ # Start Memory proxy with Ollama backend
55
+ docker compose -f docker/docker-compose.yml --profile cpu up memory-proxy ollama
56
+
57
+ # Point your chat client at http://localhost:8100/v1
58
+ # The LLM will now remember facts across conversations
59
+ ```
50
60
 
51
61
  **Option A: With [Open WebUI](https://github.com/open-webui/open-webui) (web interface)**
52
62
 
@@ -40,7 +40,19 @@ A local proxy that gives LLMs access to your documents using smarter multi-stage
40
40
 
41
41
  ### Try It Now
42
42
 
43
- Chat with your documents using [Ollama](https://ollama.com). Two options:
43
+ Chat with your documents using [Ollama](https://ollama.com). Three options:
44
+
45
+ **Option 0: With Docker Compose (easiest)**
46
+
47
+ ```bash
48
+ # Start RAG proxy with Ollama backend
49
+ docker compose -f docker/docker-compose.yml --profile cpu up rag-proxy ollama
50
+
51
+ # Copy your documents into the volume
52
+ docker cp ./my-docs/. $(docker volume inspect agent-cli-rag-docs --format '{{ .Mountpoint }}')/
53
+
54
+ # Point your chat client at http://localhost:8000/v1
55
+ ```
44
56
 
45
57
  **Option A: With [Open WebUI](https://github.com/open-webui/open-webui) (web interface)**
46
58
 
@@ -59,7 +59,9 @@ The Docker setup provides:
59
59
  | ----------------------- | --------------------------------- | ----------- | ------------------------------ |
60
60
  | **whisper** | agent-cli-whisper (custom) | 10300/10301 | Speech-to-text (Faster Whisper)|
61
61
  | **tts** | agent-cli-tts (custom) | 10200/10201 | Text-to-speech (Kokoro/Piper) |
62
- | **transcribe-proxy** | agent-cli-transcribe-proxy | 61337 | ASR proxy for iOS/external apps|
62
+ | **transcribe-proxy** | agent-cli-transcribe-proxy | 61337 | ASR proxy for iOS/external apps|
63
+ | **rag-proxy** | agent-cli-rag-proxy | 8000 | Document-aware chat (RAG) |
64
+ | **memory-proxy** | agent-cli-memory-proxy | 8100 | Long-term memory chat |
63
65
  | **ollama** | ollama/ollama | 11434 | LLM server |
64
66
  | **openwakeword** | rhasspy/wyoming-openwakeword | 10400 | Wake word detection |
65
67
 
@@ -87,6 +89,19 @@ LLM_OLLAMA_MODEL=gemma3:4b # Ollama model name
87
89
  LLM_OLLAMA_HOST=http://ollama:11434 # Ollama server URL (container name)
88
90
  LLM_OPENAI_MODEL=gpt-4.1-nano # OpenAI model (if using openai provider)
89
91
  OPENAI_API_KEY=sk-... # OpenAI API key (if using openai provider)
92
+
93
+ # RAG Proxy
94
+ RAG_PORT=8000 # Port for RAG proxy
95
+ RAG_LIMIT=3 # Number of document chunks per query
96
+ RAG_ENABLE_TOOLS=true # Enable read_full_document tool
97
+ EMBEDDING_MODEL=text-embedding-3-small # Embedding model for RAG/memory
98
+
99
+ # Memory Proxy
100
+ MEMORY_PORT=8100 # Port for memory proxy
101
+ MEMORY_TOP_K=5 # Number of memories per query
102
+ MEMORY_MAX_ENTRIES=500 # Max entries per conversation before eviction
103
+ MEMORY_SUMMARIZATION=true # Enable fact extraction from conversations
104
+ MEMORY_GIT_VERSIONING=true # Enable git versioning for memory changes
90
105
  ```
91
106
 
92
107
  ### GPU Support
@@ -117,11 +132,18 @@ Services store data in Docker volumes:
117
132
  - `agent-cli-tts-cache` - TTS models and voices
118
133
  - `agent-cli-ollama-data` - Ollama models
119
134
  - `agent-cli-openwakeword-data` - Wake word models
135
+ - `agent-cli-rag-docs` - Documents to index for RAG
136
+ - `agent-cli-rag-db` - RAG vector database (ChromaDB)
137
+ - `agent-cli-rag-cache` - RAG embedding models
138
+ - `agent-cli-memory-data` - Memory entries and vector index
139
+ - `agent-cli-memory-cache` - Memory embedding models
120
140
 
121
141
  ## Ports Reference
122
142
 
123
143
  | Port | Service | Protocol |
124
144
  | ----- | ------------------- | -------- |
145
+ | 8000 | RAG Proxy | HTTP API |
146
+ | 8100 | Memory Proxy | HTTP API |
125
147
  | 10200 | TTS | Wyoming |
126
148
  | 10201 | TTS | HTTP API |
127
149
  | 10300 | Whisper | Wyoming |
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes