tau-coding-agent 0.7.2__tar.gz → 0.7.4__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 (504) hide show
  1. tau_coding_agent-0.7.4/PKG-INFO +285 -0
  2. tau_coding_agent-0.7.4/README.md +247 -0
  3. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/docs/auth.md +2 -1
  4. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/docs/development.md +2 -2
  5. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/docs/http-proxy.md +7 -7
  6. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/docs/inference-providers.md +31 -2
  7. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/docs/keybindings.md +2 -2
  8. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/docs/project-structure.md +14 -9
  9. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/docs/quickstart.md +3 -3
  10. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/docs/themes.md +15 -0
  11. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/docs/tui.md +2 -2
  12. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/docs/usage.md +2 -2
  13. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/pyproject.toml +1 -1
  14. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/agent/prompt/builder.py +1 -1
  15. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/agent/service.py +4 -1
  16. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/ask_user/component.py +43 -24
  17. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/ask_user/tool.py +3 -4
  18. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/footer/__init__.py +16 -0
  19. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/footer/model.py +16 -2
  20. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/loop/__init__.py +21 -6
  21. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/loop/duration.py +6 -7
  22. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/loop/state.py +16 -8
  23. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/subagent/subagent_schema.py +3 -9
  24. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/todo/__init__.py +10 -9
  25. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/todo/todo_schema.py +3 -1
  26. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/todo/todo_tool.py +12 -4
  27. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/models/text.py +715 -0
  28. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/providers/text.py +6 -0
  29. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/tools/grep.py +6 -3
  30. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/tools/ls.py +1 -1
  31. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/tools/read.py +3 -1
  32. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/tools/utils.py +0 -1
  33. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/engine/service.py +3 -1
  34. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/hooks/service.py +3 -1
  35. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/text/gemini_generate.py +13 -3
  36. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/text/github_copilot_chat.py +15 -7
  37. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/text/google_antigravity.py +35 -3
  38. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/text/google_vertex.py +10 -2
  39. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/text/mistral_chat.py +8 -1
  40. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/text/openai_completions.py +15 -7
  41. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/text/openai_vertex.py +18 -5
  42. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/provider/oauth/anthropic_claude_code.py +17 -4
  43. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/provider/oauth/xai_grok.py +5 -4
  44. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/modes/interactive/agent_hooks.py +47 -3
  45. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/modes/interactive/commands/session.py +1 -3
  46. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/modes/interactive/components/message_list.py +1 -1
  47. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/modes/interactive/components/settings_selector.py +6 -1
  48. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tui/components/spinner.py +89 -1
  49. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tui/theme.py +2 -0
  50. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tui/utils.py +33 -0
  51. tau_coding_agent-0.7.4/tau/utils/format.py +25 -0
  52. tau_coding_agent-0.7.4/tau_coding_agent.egg-info/PKG-INFO +285 -0
  53. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_agent_hooks.py +22 -1
  54. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_builtin_tools.py +2 -1
  55. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_compaction.py +2 -4
  56. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_engine_length_and_live_tools.py +3 -1
  57. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_gemini_generate.py +3 -1
  58. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_google_antigravity.py +13 -7
  59. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_google_vertex.py +7 -2
  60. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_subagent_context.py +100 -45
  61. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_text_input.py +3 -1
  62. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_tree_branch_restore.py +3 -1
  63. tau_coding_agent-0.7.2/PKG-INFO +0 -235
  64. tau_coding_agent-0.7.2/README.md +0 -197
  65. tau_coding_agent-0.7.2/tau/utils/format.py +0 -40
  66. tau_coding_agent-0.7.2/tau_coding_agent.egg-info/PKG-INFO +0 -235
  67. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/LICENSE +0 -0
  68. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/MANIFEST.in +0 -0
  69. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/docs/architecture.md +0 -0
  70. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/docs/cli-reference.md +0 -0
  71. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/docs/creating-tools.md +0 -0
  72. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/docs/docs.json +0 -0
  73. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/docs/engine.md +0 -0
  74. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/docs/extension-settings.md +0 -0
  75. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/docs/extensions.md +0 -0
  76. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/docs/index.md +0 -0
  77. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/docs/inference.md +0 -0
  78. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/docs/installation.md +0 -0
  79. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/docs/messages.md +0 -0
  80. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/docs/project-context.md +0 -0
  81. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/docs/prompts.md +0 -0
  82. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/docs/python-api.md +0 -0
  83. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/docs/sessions.md +0 -0
  84. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/docs/settings.md +0 -0
  85. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/docs/skills.md +0 -0
  86. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/docs/tools.md +0 -0
  87. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/setup.cfg +0 -0
  88. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/__init__.py +0 -0
  89. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/agent/__init__.py +0 -0
  90. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/agent/embedded.py +0 -0
  91. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/agent/prompt/__init__.py +0 -0
  92. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/agent/prompt/types.py +0 -0
  93. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/agent/types.py +0 -0
  94. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/auth/manager.py +0 -0
  95. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/auth/storage.py +0 -0
  96. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/auth/types.py +0 -0
  97. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/__init__.py +0 -0
  98. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/commands/__init__.py +0 -0
  99. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/commands/clear.py +0 -0
  100. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/commands/compact.py +0 -0
  101. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/commands/reload.py +0 -0
  102. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/commands/session.py +0 -0
  103. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/ask_user/__init__.py +0 -0
  104. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/ask_user/manifest.json +0 -0
  105. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/ask_user/schema.py +0 -0
  106. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/btw/__init__.py +0 -0
  107. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/footer/git.py +0 -0
  108. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/footer/utils.py +0 -0
  109. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/header/__init__.py +0 -0
  110. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/loop/README.md +0 -0
  111. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/loop/dispatch.py +0 -0
  112. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/sandbox/__init__.py +0 -0
  113. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/sandbox/manager.py +0 -0
  114. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/sandbox/manifest.json +0 -0
  115. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/sandbox/sandbox_tool.py +0 -0
  116. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/subagent/__init__.py +0 -0
  117. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/subagent/agents/context-builder.md +0 -0
  118. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/subagent/agents/delegate.md +0 -0
  119. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/subagent/agents/oracle.md +0 -0
  120. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/subagent/agents/planner.md +0 -0
  121. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/subagent/agents/researcher.md +0 -0
  122. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/subagent/agents/reviewer.md +0 -0
  123. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/subagent/agents/scout.md +0 -0
  124. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/subagent/agents/worker.md +0 -0
  125. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/subagent/agents.py +0 -0
  126. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/subagent/manifest.json +0 -0
  127. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/subagent/subagent_tool.py +0 -0
  128. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/todo/manifest.json +0 -0
  129. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/watch/__init__.py +0 -0
  130. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/web/__init__.py +0 -0
  131. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/web/engines/__init__.py +0 -0
  132. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/web/engines/base.py +0 -0
  133. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/web/engines/ddgs_engine.py +0 -0
  134. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/web/engines/exa_engine.py +0 -0
  135. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/web/engines/jina_engine.py +0 -0
  136. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/web/engines/tavily_engine.py +0 -0
  137. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/web/manifest.json +0 -0
  138. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/web/tools/__init__.py +0 -0
  139. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/web/tools/fetch.py +0 -0
  140. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/web/tools/search.py +0 -0
  141. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/workflow/__init__.py +0 -0
  142. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/workflow/agent_discovery.py +0 -0
  143. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/workflow/manifest.json +0 -0
  144. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/workflow/model.py +0 -0
  145. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/workflow/runner.py +0 -0
  146. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/workflow/skills/create-workflows/SKILL.md +0 -0
  147. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/extensions/workflow/store.py +0 -0
  148. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/models/__init__.py +0 -0
  149. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/models/audio.py +0 -0
  150. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/models/image.py +0 -0
  151. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/models/video.py +0 -0
  152. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/prompts/commit.md +0 -0
  153. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/prompts/docs.md +0 -0
  154. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/prompts/explain.md +0 -0
  155. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/prompts/fix.md +0 -0
  156. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/prompts/refactor.md +0 -0
  157. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/prompts/review.md +0 -0
  158. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/prompts/test.md +0 -0
  159. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/providers/__init__.py +0 -0
  160. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/providers/audio.py +0 -0
  161. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/providers/image.py +0 -0
  162. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/providers/video.py +0 -0
  163. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/skills/code-review/SKILL.md +0 -0
  164. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/skills/debug/SKILL.md +0 -0
  165. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/skills/git-commit/SKILL.md +0 -0
  166. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/skills/skill-creator/LICENSE.txt +0 -0
  167. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/skills/skill-creator/SKILL.md +0 -0
  168. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/themes/ayu-dark.yaml +0 -0
  169. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/themes/catppuccin.yaml +0 -0
  170. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/themes/dark.yaml +0 -0
  171. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/themes/dracula.yaml +0 -0
  172. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/themes/everforest.yaml +0 -0
  173. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/themes/gruvbox.yaml +0 -0
  174. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/themes/horizon.yaml +0 -0
  175. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/themes/kanagawa.yaml +0 -0
  176. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/themes/light.yaml +0 -0
  177. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/themes/material-ocean.yaml +0 -0
  178. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/themes/monokai.yaml +0 -0
  179. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/themes/night-owl.yaml +0 -0
  180. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/themes/nord.yaml +0 -0
  181. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/themes/one-dark.yaml +0 -0
  182. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/themes/rose-pine.yaml +0 -0
  183. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/themes/solarized-dark.yaml +0 -0
  184. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/themes/tokyo-night.yaml +0 -0
  185. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/tools/__init__.py +0 -0
  186. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/tools/edit.py +0 -0
  187. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/tools/glob.py +0 -0
  188. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/tools/terminal.py +0 -0
  189. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/builtins/tools/write.py +0 -0
  190. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/commands/__init__.py +0 -0
  191. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/commands/registry.py +0 -0
  192. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/commands/types.py +0 -0
  193. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/console/__init__.py +0 -0
  194. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/console/cli.py +0 -0
  195. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/console/commands/__init__.py +0 -0
  196. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/console/commands/auth.py +0 -0
  197. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/console/commands/packages.py +0 -0
  198. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/console/commands/update.py +0 -0
  199. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/core/__init__.py +0 -0
  200. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/core/registry.py +0 -0
  201. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/engine/__init__.py +0 -0
  202. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/engine/types.py +0 -0
  203. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/extensions/__init__.py +0 -0
  204. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/extensions/api.py +0 -0
  205. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/extensions/context.py +0 -0
  206. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/extensions/loader.py +0 -0
  207. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/extensions/runtime.py +0 -0
  208. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/extensions/settings.py +0 -0
  209. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/hooks/__init__.py +0 -0
  210. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/hooks/engine.py +0 -0
  211. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/hooks/inference.py +0 -0
  212. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/hooks/runtime.py +0 -0
  213. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/hooks/session.py +0 -0
  214. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/hooks/tui.py +0 -0
  215. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/hooks/types.py +0 -0
  216. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/__init__.py +0 -0
  217. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/__init__.py +0 -0
  218. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/audio/__init__.py +0 -0
  219. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/audio/base.py +0 -0
  220. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/audio/builtins.py +0 -0
  221. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/audio/elevenlabs_audio.py +0 -0
  222. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/audio/gemini_audio.py +0 -0
  223. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/audio/openai_audio.py +0 -0
  224. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/audio/registry.py +0 -0
  225. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/audio/sarvam_audio.py +0 -0
  226. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/audio/service.py +0 -0
  227. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/audio/utils.py +0 -0
  228. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/availability.py +0 -0
  229. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/image/__init__.py +0 -0
  230. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/image/base.py +0 -0
  231. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/image/builtins.py +0 -0
  232. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/image/gemini_image.py +0 -0
  233. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/image/openai_image.py +0 -0
  234. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/image/openrouter.py +0 -0
  235. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/image/registry.py +0 -0
  236. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/image/service.py +0 -0
  237. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/registry.py +0 -0
  238. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/text/__init__.py +0 -0
  239. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/text/anthropic_claude_code.py +0 -0
  240. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/text/anthropic_messages.py +0 -0
  241. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/text/anthropic_vertex.py +0 -0
  242. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/text/base.py +0 -0
  243. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/text/builtins.py +0 -0
  244. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/text/dialect.py +0 -0
  245. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/text/ollama_chat.py +0 -0
  246. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/text/openai_codex_responses.py +0 -0
  247. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/text/openai_responses.py +0 -0
  248. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/text/registry.py +0 -0
  249. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/text/service.py +0 -0
  250. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/text/types.py +0 -0
  251. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/text/utils.py +0 -0
  252. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/text/xai_responses.py +0 -0
  253. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/video/__init__.py +0 -0
  254. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/video/base.py +0 -0
  255. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/video/builtins.py +0 -0
  256. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/video/fal_video.py +0 -0
  257. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/video/openrouter_video.py +0 -0
  258. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/video/registry.py +0 -0
  259. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/video/service.py +0 -0
  260. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/api/video/zai_video.py +0 -0
  261. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/model/__init__.py +0 -0
  262. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/model/registry.py +0 -0
  263. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/model/types.py +0 -0
  264. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/provider/__init__.py +0 -0
  265. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/provider/oauth/__init__.py +0 -0
  266. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/provider/oauth/github_copilot.py +0 -0
  267. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/provider/oauth/google_antigravity.py +0 -0
  268. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/provider/oauth/openai_codex.py +0 -0
  269. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/provider/oauth/pkce.py +0 -0
  270. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/provider/oauth/types.py +0 -0
  271. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/provider/oauth/utils.py +0 -0
  272. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/provider/registry.py +0 -0
  273. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/provider/types.py +0 -0
  274. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/types.py +0 -0
  275. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/inference/utils.py +0 -0
  276. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/message/__init__.py +0 -0
  277. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/message/types.py +0 -0
  278. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/message/utils.py +0 -0
  279. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/modes/__init__.py +0 -0
  280. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/modes/interactive/__init__.py +0 -0
  281. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/modes/interactive/app.py +1 -1
  282. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/modes/interactive/commands/__init__.py +0 -0
  283. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/modes/interactive/commands/appearance.py +0 -0
  284. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/modes/interactive/commands/auth.py +0 -0
  285. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/modes/interactive/commands/context.py +0 -0
  286. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/modes/interactive/commands/extensions.py +0 -0
  287. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/modes/interactive/commands/misc.py +0 -0
  288. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/modes/interactive/commands/model.py +0 -0
  289. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/modes/interactive/components/__init__.py +0 -0
  290. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/modes/interactive/components/command_palette.py +0 -0
  291. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/modes/interactive/components/config_selector.py +0 -0
  292. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/modes/interactive/components/extension_selector.py +0 -0
  293. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/modes/interactive/components/file_picker.py +0 -0
  294. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/modes/interactive/components/layout.py +0 -0
  295. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/modes/interactive/components/model_selector.py +0 -0
  296. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/modes/interactive/components/oauth_selector.py +0 -0
  297. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/modes/interactive/components/overlays.py +0 -0
  298. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/modes/interactive/components/selector_controller.py +0 -0
  299. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/modes/interactive/components/session_selector.py +0 -0
  300. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/modes/interactive/components/theme_selector.py +0 -0
  301. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/modes/interactive/components/thinking_selector.py +0 -0
  302. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/modes/interactive/components/tree_selector.py +0 -0
  303. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/modes/interactive/components/trust_screen.py +0 -0
  304. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/modes/interactive/components/voice_selector.py +0 -0
  305. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/modes/interactive/input_handler.py +0 -0
  306. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/modes/interactive/ui_context.py +0 -0
  307. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/modes/print/__init__.py +0 -0
  308. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/modes/rpc/__init__.py +0 -0
  309. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/modes/rpc/mode.py +0 -0
  310. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/modes/rpc/types.py +0 -0
  311. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/packages/__init__.py +0 -0
  312. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/packages/manager.py +0 -0
  313. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/packages/types.py +0 -0
  314. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/packages/utils.py +0 -0
  315. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/prompts/expand.py +0 -0
  316. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/prompts/loader.py +0 -0
  317. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/prompts/registry.py +0 -0
  318. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/prompts/types.py +0 -0
  319. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/resources/__init__.py +0 -0
  320. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/resources/loader.py +0 -0
  321. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/resources/types.py +0 -0
  322. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/runtime/dependencies.py +0 -0
  323. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/runtime/service.py +0 -0
  324. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/runtime/types.py +0 -0
  325. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/session/branch_summarization.py +0 -0
  326. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/session/compaction.py +0 -0
  327. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/session/manager.py +0 -0
  328. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/session/types.py +0 -0
  329. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/session/utils.py +0 -0
  330. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/settings/manager.py +0 -0
  331. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/settings/paths.py +0 -0
  332. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/settings/storage.py +0 -0
  333. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/settings/types.py +0 -0
  334. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/settings/utils.py +0 -0
  335. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/skills/loader.py +0 -0
  336. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/skills/registry.py +0 -0
  337. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/skills/types.py +0 -0
  338. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/telemetry/__init__.py +0 -0
  339. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/telemetry/service.py +0 -0
  340. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/telemetry/types.py +0 -0
  341. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/themes/loader.py +0 -0
  342. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/themes/registry.py +0 -0
  343. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/themes/types.py +0 -0
  344. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tool/__init__.py +0 -0
  345. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tool/registry.py +0 -0
  346. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tool/render.py +0 -0
  347. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tool/types.py +0 -0
  348. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/trust/__init__.py +0 -0
  349. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/trust/manager.py +0 -0
  350. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/trust/types.py +0 -0
  351. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/trust/utils.py +0 -0
  352. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tui/__init__.py +1 -1
  353. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tui/ansi_bridge.py +0 -0
  354. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tui/autocomplete.py +0 -0
  355. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tui/backend.py +0 -0
  356. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tui/buffer.py +0 -0
  357. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tui/component.py +0 -0
  358. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tui/components/__init__.py +0 -0
  359. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tui/components/box.py +0 -0
  360. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tui/components/editor.py +0 -0
  361. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tui/components/image.py +0 -0
  362. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tui/components/select_list.py +0 -0
  363. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tui/components/simple_picker.py +0 -0
  364. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tui/components/text_input.py +0 -0
  365. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tui/components/widget_bridge.py +0 -0
  366. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tui/frame.py +0 -0
  367. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tui/geometry.py +0 -0
  368. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tui/input.py +0 -0
  369. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tui/keybinding_hints.py +0 -0
  370. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tui/layout.py +0 -0
  371. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tui/markdown.py +0 -0
  372. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tui/palette.py +0 -0
  373. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tui/service.py +0 -0
  374. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tui/style.py +0 -0
  375. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tui/terminal.py +0 -0
  376. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tui/testing.py +0 -0
  377. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tui/text.py +0 -0
  378. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tui/widget.py +0 -0
  379. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tui/widgets/__init__.py +0 -0
  380. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tui/widgets/barchart.py +0 -0
  381. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tui/widgets/block.py +0 -0
  382. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tui/widgets/calendar.py +0 -0
  383. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tui/widgets/canvas.py +0 -0
  384. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tui/widgets/chart.py +0 -0
  385. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tui/widgets/clear.py +0 -0
  386. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tui/widgets/gauge.py +0 -0
  387. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tui/widgets/list.py +0 -0
  388. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tui/widgets/paragraph.py +0 -0
  389. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tui/widgets/scrollbar.py +0 -0
  390. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tui/widgets/sparkline.py +0 -0
  391. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tui/widgets/symbols.py +0 -0
  392. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tui/widgets/table.py +0 -0
  393. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/tui/widgets/tabs.py +0 -0
  394. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/utils/__init__.py +0 -0
  395. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/utils/http_proxy.py +0 -0
  396. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/utils/image_processing.py +0 -0
  397. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/utils/secrets.py +0 -0
  398. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau/utils/version_check.py +0 -0
  399. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau_coding_agent.egg-info/SOURCES.txt +0 -0
  400. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau_coding_agent.egg-info/dependency_links.txt +0 -0
  401. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau_coding_agent.egg-info/entry_points.txt +0 -0
  402. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau_coding_agent.egg-info/requires.txt +0 -0
  403. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tau_coding_agent.egg-info/top_level.txt +0 -0
  404. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_agent_compaction.py +0 -0
  405. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_agent_prompt.py +0 -0
  406. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_agent_types.py +0 -0
  407. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_ansi.py +0 -0
  408. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_ansi_bridge_legacy_image.py +0 -0
  409. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_anthropic_tool_history.py +0 -0
  410. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_ask_user_extension.py +0 -0
  411. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_audio_transcription_apis.py +0 -0
  412. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_auth_command.py +0 -0
  413. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_auth_manager.py +0 -0
  414. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_auth_storage.py +0 -0
  415. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_autocomplete_modifiers.py +0 -0
  416. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_branch_navigation.py +0 -0
  417. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_branch_summarization.py +0 -0
  418. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_builtin_watch.py +0 -0
  419. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_cli_inputs.py +0 -0
  420. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_cmd_copy.py +0 -0
  421. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_command_execution_policy.py +0 -0
  422. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_command_registry.py +0 -0
  423. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_component_buffer_bridge.py +0 -0
  424. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_diff.py +0 -0
  425. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_editor_protocol.py +0 -0
  426. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_engine_execution.py +0 -0
  427. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_engine_steering.py +0 -0
  428. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_engine_types.py +0 -0
  429. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_escape_behavior.py +0 -0
  430. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_extension_api.py +0 -0
  431. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_extension_lifecycle.py +0 -0
  432. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_footer_model.py +0 -0
  433. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_footer_utils.py +0 -0
  434. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_fuzzy.py +0 -0
  435. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_http_proxy.py +0 -0
  436. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_image_processing.py +0 -0
  437. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_inference_api_text_utils.py +0 -0
  438. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_inference_dialect.py +0 -0
  439. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_inference_error_utils.py +0 -0
  440. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_inference_types.py +0 -0
  441. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_inference_utils.py +0 -0
  442. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_keybindings.py +0 -0
  443. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_layout_render_cells.py +0 -0
  444. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_markdown.py +0 -0
  445. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_message_list_frozen.py +0 -0
  446. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_message_types.py +0 -0
  447. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_message_utils.py +0 -0
  448. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_model_availability.py +0 -0
  449. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_model_command.py +0 -0
  450. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_model_registry.py +0 -0
  451. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_model_selector_modal.py +0 -0
  452. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_model_types.py +0 -0
  453. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_oauth_utils.py +0 -0
  454. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_package_resources.py +0 -0
  455. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_packages_utils.py +0 -0
  456. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_peer_extension.py +0 -0
  457. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_pkce.py +0 -0
  458. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_prompts_expand.py +0 -0
  459. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_prompts_loader.py +0 -0
  460. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_prompts_registry.py +0 -0
  461. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_provider_registry.py +0 -0
  462. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_resource_loader.py +0 -0
  463. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_rpc_mode.py +0 -0
  464. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_runtime_sdk.py +0 -0
  465. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_scrollback_raw_writes.py +0 -0
  466. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_scrollback_terminal.py +0 -0
  467. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_secrets.py +0 -0
  468. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_select_list_render_cells.py +0 -0
  469. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_selector_controller.py +0 -0
  470. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_session_manager.py +0 -0
  471. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_session_trust_persist.py +0 -0
  472. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_session_types.py +0 -0
  473. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_session_utils.py +0 -0
  474. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_settings_manager.py +0 -0
  475. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_settings_paths.py +0 -0
  476. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_settings_storage.py +0 -0
  477. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_settings_utils.py +0 -0
  478. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_skills_loader.py +0 -0
  479. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_skills_registry.py +0 -0
  480. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_strip_control_chars.py +0 -0
  481. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_telemetry.py +0 -0
  482. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_text_input_render_cells.py +0 -0
  483. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_text_llm_invoke.py +0 -0
  484. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_text_llm_model_resolution.py +0 -0
  485. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_theme_loader.py +0 -0
  486. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_themes_registry.py +0 -0
  487. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_thinking_render.py +0 -0
  488. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_tool_registry.py +0 -0
  489. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_tool_render.py +0 -0
  490. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_trust_manager.py +0 -0
  491. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_trust_utils.py +0 -0
  492. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_tui_capabilities.py +0 -0
  493. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_tui_child_rows.py +0 -0
  494. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_tui_input.py +0 -0
  495. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_tui_layout_sizing.py +0 -0
  496. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_tui_public_api.py +0 -0
  497. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_tui_renderer.py +0 -0
  498. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_tui_select_list.py +0 -0
  499. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_tui_theme.py +0 -0
  500. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_tui_utils.py +0 -0
  501. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_ui_context.py +0 -0
  502. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_utils_hashline.py +0 -0
  503. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_version_check.py +0 -0
  504. {tau_coding_agent-0.7.2 → tau_coding_agent-0.7.4}/tests/test_voice_selector.py +0 -0
@@ -0,0 +1,285 @@
1
+ Metadata-Version: 2.4
2
+ Name: tau-coding-agent
3
+ Version: 0.7.4
4
+ Summary: A self-extensible agent CLI with terminal UI, multi-provider LLM support, session management with branching, and a plugin system for tools and commands
5
+ Requires-Python: >=3.12
6
+ Description-Content-Type: text/markdown
7
+ License-File: LICENSE
8
+ Requires-Dist: anthropic==0.109.1
9
+ Requires-Dist: certifi==2026.5.20
10
+ Requires-Dist: click==8.4.1
11
+ Requires-Dist: filelock==3.29.3
12
+ Requires-Dist: google-genai==2.8.0
13
+ Requires-Dist: httpx==0.28.1
14
+ Requires-Dist: mistralai==2.4.9
15
+ Requires-Dist: ollama==0.6.2
16
+ Requires-Dist: openai==2.41.1
17
+ Requires-Dist: packaging==26.2
18
+ Requires-Dist: pillow==12.2.0
19
+ Requires-Dist: pydantic==2.13.4
20
+ Requires-Dist: python-dotenv==1.2.2
21
+ Requires-Dist: uuid7==0.1.0
22
+ Requires-Dist: websockets==16.0
23
+ Requires-Dist: mistletoe==1.5.1
24
+ Requires-Dist: pyyaml==6.0.2
25
+ Requires-Dist: pygments==2.20.0
26
+ Requires-Dist: pathspec==1.1.1
27
+ Requires-Dist: posthog==7.21.3
28
+ Requires-Dist: pylatexenc==2.10
29
+ Requires-Dist: gitpython==3.1.50
30
+ Requires-Dist: grapheme==0.6.0
31
+ Requires-Dist: arrow==1.4.0
32
+ Requires-Dist: kiwisolver==1.5.0
33
+ Requires-Dist: tiktoken==0.13.0
34
+ Requires-Dist: rapidfuzz==3.14.3
35
+ Provides-Extra: tools
36
+ Requires-Dist: ripgrep>=14.0.0; extra == "tools"
37
+ Dynamic: license-file
38
+
39
+ <div align="center">
40
+
41
+ <img src="assets/wordmark.svg" alt="Tau" height="160">
42
+ <br>
43
+ <a href="https://pypi.org/project/tau-coding-agent/">
44
+ <img src="https://img.shields.io/pypi/v/tau-coding-agent.svg" alt="PyPI version">
45
+ </a>
46
+ <a href="https://pepy.tech/project/tau-coding-agent">
47
+ <img src="https://static.pepy.tech/badge/tau-coding-agent" alt="PyPI Downloads">
48
+ </a>
49
+ <a href="https://github.com/Jeomon/Tau/blob/main/LICENSE">
50
+ <img src="https://img.shields.io/badge/license-MIT-green" alt="License">
51
+ </a>
52
+ <img src="https://img.shields.io/badge/python-3.12%2B-blue" alt="Python">
53
+ <br>
54
+ <a href="https://github.com/Jeomon/Tau/actions/workflows/ci.yml">
55
+ <img src="https://github.com/Jeomon/Tau/actions/workflows/ci.yml/badge.svg" alt="CI status">
56
+ </a>
57
+ <a href="https://github.com/Jeomon/Tau/commits/main">
58
+ <img src="https://img.shields.io/github/last-commit/Jeomon/Tau.svg" alt="Last commit">
59
+ </a>
60
+
61
+ </div>
62
+
63
+ <br>
64
+
65
+ Tau is a Python-based coding agent harness, heavily inspired by [Pi](https://github.com/earendil-works/pi) created by [Mario Zechner](https://github.com/badlogic). It combines an interactive terminal UI, multiple model providers, persistent sessions, tool execution, and an extension system in one package.
66
+
67
+ > **Note:** There are several coding-agent projects also named
68
+ > "Tau," including at least one that is itself a Python port of Pi. This
69
+ > project (`tau`, [Jeomon/Tau](https://github.com/Jeomon/Tau)) was built
70
+ > independently, taking inspiration only from the original
71
+ > [Pi](https://github.com/earendil-works/pi) project. No other "Tau" project,
72
+ > or any other Pi port, was referenced or used in its development.
73
+
74
+ <p align="center">
75
+ <img src="assets/tui.jpeg" alt="Tau interactive terminal interface" width="700">
76
+ </p>
77
+
78
+ ## Quick start
79
+
80
+ Requires Python 3.12+.
81
+
82
+ ```bash
83
+ pip install tau-coding-agent
84
+ export NVIDIA_API_KEY=nvapi-...
85
+ tau --provider nvidia
86
+ ```
87
+
88
+ Then ask Tau to work in the current directory:
89
+
90
+ ```text
91
+ Explain this repository, run its tests, and fix any failures.
92
+ ```
93
+
94
+ **Other providers:** pass `--model <provider>/<model>` with the matching API
95
+ key set, e.g. `GOOGLE_API_KEY=... tau --model google/gemini-2.5-flash`.
96
+
97
+ ## Commands
98
+
99
+ ### CLI usage
100
+
101
+ ```bash
102
+ tau [OPTIONS] [MESSAGE]
103
+ ```
104
+
105
+ ```bash
106
+ tau # Start an interactive session
107
+ tau --resume # Resume the latest session
108
+ tau --resume abc123 # Resume a specific session by ID
109
+ tau --model claude-sonnet-4-6 # Start with a specific model
110
+ tau --model groq/llama-3.3-70b-versatile # provider/model shorthand
111
+ tau --print "Summarize this repository" # Run once and print the result
112
+ tau --mode json --prompt "Summarize this repo" # Emit structured JSON events
113
+ tau --mode rpc # Start JSON-RPC mode for IDE clients
114
+ tau --ephemeral # Temporary session, nothing saved
115
+ ```
116
+
117
+ Common flags:
118
+
119
+ | Flag | Short | Description |
120
+ |---|---|---|
121
+ | `--prompt TEXT` | `-p` | Run a non-interactive prompt |
122
+ | `--print` | | Print mode — run `MESSAGE` and exit (shorthand for `--mode print`) |
123
+ | `--mode` | | `interactive` (default), `print`, `json`, `rpc` |
124
+ | `--provider` | | Provider to use, e.g. `anthropic`, `openai`, `groq` |
125
+ | `--model` | | Model ID, or `provider/model` shorthand |
126
+ | `--resume [ID]` | `-r` | Resume the most recent or a specified session |
127
+ | `--fork ID` | | Fork a specified session at startup |
128
+ | `--ephemeral` | `-e` | Don't save this session to disk |
129
+ | `--theme` | `-t` | UI theme: `dark`, `light`, or a custom theme |
130
+ | `--cwd PATH` | `-c` | Set the working directory |
131
+ | `--output-format` | `-f` | Non-interactive output: `text` or `json` |
132
+ | `--quiet` | `-q` | Hide the non-interactive spinner |
133
+ | `--version` | `-v` | Print the installed version |
134
+ | `--help` | `-h` | Show help message |
135
+
136
+ Full flag list, environment variables, and exit codes: [CLI reference](docs/cli-reference.md).
137
+
138
+ ### Subcommands
139
+
140
+ ```bash
141
+ tau auth # Manage provider credentials (login/logout, list)
142
+ tau install # Install a package (extension/skill/theme)
143
+ tau remove # Remove an installed package
144
+ tau list # List installed packages
145
+ tau update # Update installed packages
146
+ ```
147
+
148
+ ### Interactive slash commands
149
+
150
+ Type these inside an interactive session (`tau`):
151
+
152
+ | Command | What it does |
153
+ |---|---|
154
+ | `/new` | Start a fresh session |
155
+ | `/resume` | Browse and resume a past session |
156
+ | `/fork [entry-id]` | Branch the session tree at a specific entry |
157
+ | `/tree` | Navigate the session tree, switch branches |
158
+ | `/clone` | Duplicate the current session at the current position |
159
+ | `/compact` | Summarize and compact the current context |
160
+ | `/session` | Show session info, message counts, and stats |
161
+ | `/model` | Pick a model by modality |
162
+ | `/theme` | Open the theme picker |
163
+ | `/effort` | Set the thinking effort level |
164
+ | `/login` | Save credentials for a provider (API key or OAuth) |
165
+ | `/logout` | Remove stored credentials for a provider |
166
+ | `/clear` | Clear all messages from the current session |
167
+ | `/copy` | Copy the last assistant message to the clipboard |
168
+ | `/reload` | Reload extensions, skills, prompts, and settings |
169
+ | `/settings` | Show current settings |
170
+ | `/extensions` | Enable or disable extensions by scope |
171
+ | `/watch <url> [question]` | Load public video metadata/captions via `yt-dlp` |
172
+ | `/help` or `/?` | List all commands and keyboard shortcuts |
173
+ | `/quit`, `/q`, or `/exit` | Exit Tau |
174
+
175
+ Full interactive workflow guide: [Usage](docs/usage.md).
176
+
177
+ ## Compared to Pi
178
+
179
+ | Area | Pi | Tau |
180
+ |---|---|---|
181
+ | Language | TypeScript | Python |
182
+ | TUI rendering | Line-level diffing — rewrites a full line if any part of it changed | Cell-level diffing (`Buffer`/`Cell`, modeled after [ratatui](https://github.com/ratatui/ratatui)'s `Buffer::diff`) — only the changed cells within a row are redrawn |
183
+ | LLM providers | ~40, including many CN/regional and gateway vendors | 14 major providers |
184
+ | Audio (TTS/STT) | Not supported | ElevenLabs, Sarvam, Gemini, OpenAI |
185
+ | Image/video generation | Not supported | OpenAI, Gemini, OpenRouter, Fal, Zai |
186
+ | Sandboxing | microVM sandbox (Gondolin) is an example extension, excluded from the main build — the user wires it in themselves | `microsandbox` microVM ships as a builtin extension, enabled by default |
187
+ | Packaging | 5 separately published npm packages | Single PyPI package |
188
+
189
+ Core mechanics — built-in tools, session branching/compaction, extension and
190
+ hook API, and the interactive/print/RPC execution modes — are functionally
191
+ equivalent between the two.
192
+
193
+ ## Referencing files
194
+
195
+ Type `@` in the interactive editor to search for a project file:
196
+
197
+ ```text
198
+ Review @src/service.py and add tests for its error handling.
199
+ ```
200
+
201
+ For one-shot execution, attach a file explicitly:
202
+
203
+ ```bash
204
+ tau -p "Explain this file" @src/service.py
205
+ ```
206
+
207
+ Tau also discovers project instructions from `AGENTS.md` and `CLAUDE.md`.
208
+ See [Project Context Files](docs/project-context.md) for trust and discovery
209
+ behavior.
210
+
211
+ ## Authentication and configuration
212
+
213
+ Tau resolves provider credentials in this order:
214
+
215
+ 1. A programmatic runtime override
216
+ 2. A credential saved in `~/.tau/auth.json` (including keys saved by `/login`)
217
+ 3. A provider environment variable such as `ANTHROPIC_API_KEY`,
218
+ `OPENAI_API_KEY`, and `GOOGLE_API_KEY`
219
+
220
+ Settings are merged in this order:
221
+
222
+ 1. Built-in defaults
223
+ 2. `~/.tau/settings.json`
224
+ 3. `.tau/settings.json`
225
+ 4. Environment variables
226
+ 5. Command-line options
227
+
228
+ See [Authentication](docs/auth.md), [Installation](docs/installation.md), and
229
+ [Inference Providers](docs/inference-providers.md) for provider-specific
230
+ setup.
231
+
232
+ ## Documentation
233
+
234
+ - [Quickstart](docs/quickstart.md) — First session in five minutes
235
+ - [Usage](docs/usage.md) — Interactive workflows and commands
236
+ - [CLI Reference](docs/cli-reference.md) — Command-line options and modes
237
+ - [Inference Providers](docs/inference-providers.md) — Providers and speech timestamps
238
+ - [Sessions](docs/sessions.md) — Persistence, branching, and compaction
239
+ - [Tools](docs/tools.md) — Built-in and custom tools
240
+ - [Extensions](docs/extensions.md) — Tools, commands, hooks, and plugins
241
+ - [Terminal UI](docs/tui.md) — Rendering, Markdown, math, and components
242
+ - [Python API](docs/python-api.md) — Embed Tau in another application
243
+ - [Architecture](docs/architecture.md) — Internal design and data flow
244
+
245
+ The complete documentation index is available at [docs/index.md](docs/index.md).
246
+
247
+ ## Install from source
248
+
249
+ ```bash
250
+ git clone https://github.com/Jeomon/Tau.git
251
+ cd Tau
252
+ pip install -e .
253
+ tau
254
+ ```
255
+
256
+ ## Security
257
+
258
+ Tau executes enabled tools with the operating-system permissions of the process
259
+ that launched it. The built-in `sandbox` extension routes terminal execution
260
+ through a `microsandbox` microVM by default, but requires the `microsandbox`
261
+ package and a supported platform — otherwise it falls back to unsandboxed host
262
+ execution. Review project instructions and commands before approving work in
263
+ untrusted repositories, and verify the sandbox is actually active (`/sandbox`)
264
+ when stronger isolation matters.
265
+
266
+ Dependency versions are pinned and recorded in `uv.lock`. See
267
+ [SECURITY.md](SECURITY.md) for vulnerability reporting and supply-chain
268
+ practices.
269
+
270
+ ## Development
271
+
272
+ ```bash
273
+ mypy tau/
274
+ pyright tau/
275
+ ruff check tau/
276
+ ruff format tau/
277
+ python -m pytest
278
+ ```
279
+
280
+ See [Development Setup](docs/development.md) and
281
+ [Contributing](CONTRIBUTING.md).
282
+
283
+ ## License
284
+
285
+ Tau is licensed under the [MIT License](LICENSE).
@@ -0,0 +1,247 @@
1
+ <div align="center">
2
+
3
+ <img src="assets/wordmark.svg" alt="Tau" height="160">
4
+ <br>
5
+ <a href="https://pypi.org/project/tau-coding-agent/">
6
+ <img src="https://img.shields.io/pypi/v/tau-coding-agent.svg" alt="PyPI version">
7
+ </a>
8
+ <a href="https://pepy.tech/project/tau-coding-agent">
9
+ <img src="https://static.pepy.tech/badge/tau-coding-agent" alt="PyPI Downloads">
10
+ </a>
11
+ <a href="https://github.com/Jeomon/Tau/blob/main/LICENSE">
12
+ <img src="https://img.shields.io/badge/license-MIT-green" alt="License">
13
+ </a>
14
+ <img src="https://img.shields.io/badge/python-3.12%2B-blue" alt="Python">
15
+ <br>
16
+ <a href="https://github.com/Jeomon/Tau/actions/workflows/ci.yml">
17
+ <img src="https://github.com/Jeomon/Tau/actions/workflows/ci.yml/badge.svg" alt="CI status">
18
+ </a>
19
+ <a href="https://github.com/Jeomon/Tau/commits/main">
20
+ <img src="https://img.shields.io/github/last-commit/Jeomon/Tau.svg" alt="Last commit">
21
+ </a>
22
+
23
+ </div>
24
+
25
+ <br>
26
+
27
+ Tau is a Python-based coding agent harness, heavily inspired by [Pi](https://github.com/earendil-works/pi) created by [Mario Zechner](https://github.com/badlogic). It combines an interactive terminal UI, multiple model providers, persistent sessions, tool execution, and an extension system in one package.
28
+
29
+ > **Note:** There are several coding-agent projects also named
30
+ > "Tau," including at least one that is itself a Python port of Pi. This
31
+ > project (`tau`, [Jeomon/Tau](https://github.com/Jeomon/Tau)) was built
32
+ > independently, taking inspiration only from the original
33
+ > [Pi](https://github.com/earendil-works/pi) project. No other "Tau" project,
34
+ > or any other Pi port, was referenced or used in its development.
35
+
36
+ <p align="center">
37
+ <img src="assets/tui.jpeg" alt="Tau interactive terminal interface" width="700">
38
+ </p>
39
+
40
+ ## Quick start
41
+
42
+ Requires Python 3.12+.
43
+
44
+ ```bash
45
+ pip install tau-coding-agent
46
+ export NVIDIA_API_KEY=nvapi-...
47
+ tau --provider nvidia
48
+ ```
49
+
50
+ Then ask Tau to work in the current directory:
51
+
52
+ ```text
53
+ Explain this repository, run its tests, and fix any failures.
54
+ ```
55
+
56
+ **Other providers:** pass `--model <provider>/<model>` with the matching API
57
+ key set, e.g. `GOOGLE_API_KEY=... tau --model google/gemini-2.5-flash`.
58
+
59
+ ## Commands
60
+
61
+ ### CLI usage
62
+
63
+ ```bash
64
+ tau [OPTIONS] [MESSAGE]
65
+ ```
66
+
67
+ ```bash
68
+ tau # Start an interactive session
69
+ tau --resume # Resume the latest session
70
+ tau --resume abc123 # Resume a specific session by ID
71
+ tau --model claude-sonnet-4-6 # Start with a specific model
72
+ tau --model groq/llama-3.3-70b-versatile # provider/model shorthand
73
+ tau --print "Summarize this repository" # Run once and print the result
74
+ tau --mode json --prompt "Summarize this repo" # Emit structured JSON events
75
+ tau --mode rpc # Start JSON-RPC mode for IDE clients
76
+ tau --ephemeral # Temporary session, nothing saved
77
+ ```
78
+
79
+ Common flags:
80
+
81
+ | Flag | Short | Description |
82
+ |---|---|---|
83
+ | `--prompt TEXT` | `-p` | Run a non-interactive prompt |
84
+ | `--print` | | Print mode — run `MESSAGE` and exit (shorthand for `--mode print`) |
85
+ | `--mode` | | `interactive` (default), `print`, `json`, `rpc` |
86
+ | `--provider` | | Provider to use, e.g. `anthropic`, `openai`, `groq` |
87
+ | `--model` | | Model ID, or `provider/model` shorthand |
88
+ | `--resume [ID]` | `-r` | Resume the most recent or a specified session |
89
+ | `--fork ID` | | Fork a specified session at startup |
90
+ | `--ephemeral` | `-e` | Don't save this session to disk |
91
+ | `--theme` | `-t` | UI theme: `dark`, `light`, or a custom theme |
92
+ | `--cwd PATH` | `-c` | Set the working directory |
93
+ | `--output-format` | `-f` | Non-interactive output: `text` or `json` |
94
+ | `--quiet` | `-q` | Hide the non-interactive spinner |
95
+ | `--version` | `-v` | Print the installed version |
96
+ | `--help` | `-h` | Show help message |
97
+
98
+ Full flag list, environment variables, and exit codes: [CLI reference](docs/cli-reference.md).
99
+
100
+ ### Subcommands
101
+
102
+ ```bash
103
+ tau auth # Manage provider credentials (login/logout, list)
104
+ tau install # Install a package (extension/skill/theme)
105
+ tau remove # Remove an installed package
106
+ tau list # List installed packages
107
+ tau update # Update installed packages
108
+ ```
109
+
110
+ ### Interactive slash commands
111
+
112
+ Type these inside an interactive session (`tau`):
113
+
114
+ | Command | What it does |
115
+ |---|---|
116
+ | `/new` | Start a fresh session |
117
+ | `/resume` | Browse and resume a past session |
118
+ | `/fork [entry-id]` | Branch the session tree at a specific entry |
119
+ | `/tree` | Navigate the session tree, switch branches |
120
+ | `/clone` | Duplicate the current session at the current position |
121
+ | `/compact` | Summarize and compact the current context |
122
+ | `/session` | Show session info, message counts, and stats |
123
+ | `/model` | Pick a model by modality |
124
+ | `/theme` | Open the theme picker |
125
+ | `/effort` | Set the thinking effort level |
126
+ | `/login` | Save credentials for a provider (API key or OAuth) |
127
+ | `/logout` | Remove stored credentials for a provider |
128
+ | `/clear` | Clear all messages from the current session |
129
+ | `/copy` | Copy the last assistant message to the clipboard |
130
+ | `/reload` | Reload extensions, skills, prompts, and settings |
131
+ | `/settings` | Show current settings |
132
+ | `/extensions` | Enable or disable extensions by scope |
133
+ | `/watch <url> [question]` | Load public video metadata/captions via `yt-dlp` |
134
+ | `/help` or `/?` | List all commands and keyboard shortcuts |
135
+ | `/quit`, `/q`, or `/exit` | Exit Tau |
136
+
137
+ Full interactive workflow guide: [Usage](docs/usage.md).
138
+
139
+ ## Compared to Pi
140
+
141
+ | Area | Pi | Tau |
142
+ |---|---|---|
143
+ | Language | TypeScript | Python |
144
+ | TUI rendering | Line-level diffing — rewrites a full line if any part of it changed | Cell-level diffing (`Buffer`/`Cell`, modeled after [ratatui](https://github.com/ratatui/ratatui)'s `Buffer::diff`) — only the changed cells within a row are redrawn |
145
+ | LLM providers | ~40, including many CN/regional and gateway vendors | 14 major providers |
146
+ | Audio (TTS/STT) | Not supported | ElevenLabs, Sarvam, Gemini, OpenAI |
147
+ | Image/video generation | Not supported | OpenAI, Gemini, OpenRouter, Fal, Zai |
148
+ | Sandboxing | microVM sandbox (Gondolin) is an example extension, excluded from the main build — the user wires it in themselves | `microsandbox` microVM ships as a builtin extension, enabled by default |
149
+ | Packaging | 5 separately published npm packages | Single PyPI package |
150
+
151
+ Core mechanics — built-in tools, session branching/compaction, extension and
152
+ hook API, and the interactive/print/RPC execution modes — are functionally
153
+ equivalent between the two.
154
+
155
+ ## Referencing files
156
+
157
+ Type `@` in the interactive editor to search for a project file:
158
+
159
+ ```text
160
+ Review @src/service.py and add tests for its error handling.
161
+ ```
162
+
163
+ For one-shot execution, attach a file explicitly:
164
+
165
+ ```bash
166
+ tau -p "Explain this file" @src/service.py
167
+ ```
168
+
169
+ Tau also discovers project instructions from `AGENTS.md` and `CLAUDE.md`.
170
+ See [Project Context Files](docs/project-context.md) for trust and discovery
171
+ behavior.
172
+
173
+ ## Authentication and configuration
174
+
175
+ Tau resolves provider credentials in this order:
176
+
177
+ 1. A programmatic runtime override
178
+ 2. A credential saved in `~/.tau/auth.json` (including keys saved by `/login`)
179
+ 3. A provider environment variable such as `ANTHROPIC_API_KEY`,
180
+ `OPENAI_API_KEY`, and `GOOGLE_API_KEY`
181
+
182
+ Settings are merged in this order:
183
+
184
+ 1. Built-in defaults
185
+ 2. `~/.tau/settings.json`
186
+ 3. `.tau/settings.json`
187
+ 4. Environment variables
188
+ 5. Command-line options
189
+
190
+ See [Authentication](docs/auth.md), [Installation](docs/installation.md), and
191
+ [Inference Providers](docs/inference-providers.md) for provider-specific
192
+ setup.
193
+
194
+ ## Documentation
195
+
196
+ - [Quickstart](docs/quickstart.md) — First session in five minutes
197
+ - [Usage](docs/usage.md) — Interactive workflows and commands
198
+ - [CLI Reference](docs/cli-reference.md) — Command-line options and modes
199
+ - [Inference Providers](docs/inference-providers.md) — Providers and speech timestamps
200
+ - [Sessions](docs/sessions.md) — Persistence, branching, and compaction
201
+ - [Tools](docs/tools.md) — Built-in and custom tools
202
+ - [Extensions](docs/extensions.md) — Tools, commands, hooks, and plugins
203
+ - [Terminal UI](docs/tui.md) — Rendering, Markdown, math, and components
204
+ - [Python API](docs/python-api.md) — Embed Tau in another application
205
+ - [Architecture](docs/architecture.md) — Internal design and data flow
206
+
207
+ The complete documentation index is available at [docs/index.md](docs/index.md).
208
+
209
+ ## Install from source
210
+
211
+ ```bash
212
+ git clone https://github.com/Jeomon/Tau.git
213
+ cd Tau
214
+ pip install -e .
215
+ tau
216
+ ```
217
+
218
+ ## Security
219
+
220
+ Tau executes enabled tools with the operating-system permissions of the process
221
+ that launched it. The built-in `sandbox` extension routes terminal execution
222
+ through a `microsandbox` microVM by default, but requires the `microsandbox`
223
+ package and a supported platform — otherwise it falls back to unsandboxed host
224
+ execution. Review project instructions and commands before approving work in
225
+ untrusted repositories, and verify the sandbox is actually active (`/sandbox`)
226
+ when stronger isolation matters.
227
+
228
+ Dependency versions are pinned and recorded in `uv.lock`. See
229
+ [SECURITY.md](SECURITY.md) for vulnerability reporting and supply-chain
230
+ practices.
231
+
232
+ ## Development
233
+
234
+ ```bash
235
+ mypy tau/
236
+ pyright tau/
237
+ ruff check tau/
238
+ ruff format tau/
239
+ python -m pytest
240
+ ```
241
+
242
+ See [Development Setup](docs/development.md) and
243
+ [Contributing](CONTRIBUTING.md).
244
+
245
+ ## License
246
+
247
+ Tau is licensed under the [MIT License](LICENSE).
@@ -144,7 +144,8 @@ The provider ID used as the key in `auth.json` and the `{PROVIDER}_API_KEY` env
144
144
  | Google | `google` | `GOOGLE_API_KEY` |
145
145
  | Mistral | `mistral` | `MISTRAL_API_KEY` |
146
146
  | Fireworks AI | `fireworks` | `FIREWORKS_API_KEY` |
147
- | Ollama | `ollama` | `OLLAMA_API_KEY` |
147
+ | Hugging Face | `huggingface` | `HUGGINGFACE_API_KEY` |
148
+ | Ollama | `ollama` | None required (local server, default `http://localhost:11434`) |
148
149
 
149
150
  ## Next Steps
150
151
 
@@ -240,7 +240,7 @@ Create `.vscode/settings.json`:
240
240
  Recommended: Use a virtual environment:
241
241
 
242
242
  ```bash
243
- python3.13 -m venv venv
243
+ python3.12 -m venv venv
244
244
  source venv/bin/activate # On Windows: venv\Scripts\activate
245
245
 
246
246
  pip install -e .
@@ -272,7 +272,7 @@ Check your Python version:
272
272
  python --version
273
273
  ```
274
274
 
275
- Ensure it's 3.13 or higher.
275
+ Ensure it's 3.12 or higher.
276
276
 
277
277
  ### Missing Dependencies
278
278
 
@@ -5,7 +5,7 @@ Tau supports HTTP proxy configuration for all HTTP/HTTPS traffic via **settings.
5
5
  ## Use Cases
6
6
 
7
7
  ### Corporate and Enterprise Environments
8
- Many organizations require all HTTP/HTTPS traffic to route through corporate proxies for security monitoring, compliance, and access control. The `httpProxy` setting allows tau to work in these restricted environments without manual environment variable configuration.
8
+ Many organizations require all HTTP/HTTPS traffic to route through corporate proxies for security monitoring, compliance, and access control. The `http_proxy` setting allows tau to work in these restricted environments without manual environment variable configuration.
9
9
 
10
10
  ### Network Restrictions
11
11
  Some networks block direct access to external LLM provider APIs (Anthropic, OpenAI, Google, Bedrock, etc.). Proxy support enables routing through approved servers that have whitelist access.
@@ -25,9 +25,9 @@ Configure HTTP proxy in `~/.tau/settings.json` or `.tau/settings.json`. **Note:*
25
25
 
26
26
  ```json
27
27
  {
28
- "httpProxy": {
28
+ "http_proxy": {
29
29
  "url": "http://proxy.example.com:8080",
30
- "noProxy": "localhost,127.0.0.1,*.internal.example.com",
30
+ "no_proxy": "localhost,127.0.0.1,*.internal.example.com",
31
31
  "headers": {
32
32
  "Proxy-Authorization": "Bearer token123",
33
33
  "X-Custom-Header": "value"
@@ -38,7 +38,7 @@ Configure HTTP proxy in `~/.tau/settings.json` or `.tau/settings.json`. **Note:*
38
38
 
39
39
  **Fields:**
40
40
  - `url` (required) — Proxy URL for both HTTP and HTTPS requests
41
- - `noProxy` (optional) — Comma-separated hosts to bypass the proxy
41
+ - `no_proxy` (optional) — Comma-separated hosts to bypass the proxy
42
42
  - `headers` (optional) — Custom headers for proxy authentication
43
43
 
44
44
  Settings here override corresponding environment variables (HTTP_PROXY, HTTPS_PROXY, NO_PROXY).
@@ -49,7 +49,7 @@ Some corporate proxies require custom authentication headers:
49
49
 
50
50
  ```json
51
51
  {
52
- "httpProxy": {
52
+ "http_proxy": {
53
53
  "url": "http://proxy.example.com:8080",
54
54
  "headers": {
55
55
  "Proxy-Authorization": "Basic dXNlcm5hbWU6cGFzc3dvcmQ=",
@@ -63,7 +63,7 @@ Alternatively, embed credentials directly in the proxy URL:
63
63
 
64
64
  ```json
65
65
  {
66
- "httpProxy": {
66
+ "http_proxy": {
67
67
  "url": "http://username:password@proxy.example.com:8080"
68
68
  }
69
69
  }
@@ -370,7 +370,7 @@ OAuth login/refresh operations (e.g., GitHub Copilot, OpenAI, Anthropic) also re
370
370
 
371
371
  ### Notes
372
372
 
373
- - The `httpProxy` setting is **global-only** and cannot be overridden at the project level
373
+ - The `http_proxy` setting can be set globally (`~/.tau/settings.json`) or per-project (`.tau/settings.json`); project settings are merged over global settings
374
374
  - Different providers may have additional proxy-related configuration options (e.g., Amazon Bedrock VPC endpoints)
375
375
  - Proxy validation occurs at startup — invalid proxy URLs will raise an error before any requests are made
376
376
  - SOCKS and PAC proxies are not supported; only HTTP/HTTPS proxies are allowed
@@ -8,11 +8,12 @@ Tau supports the following inference providers:
8
8
 
9
9
  Built-in API-key providers are `openai`, `anthropic`, `google`, `nvidia`,
10
10
  `groq`, `openrouter`, `perplexity`, `xai`, `bedrock`, `kimi`, `minimax`,
11
- `cerebras`, `deepseek`, `zai`, `kilocode`, `fireworks`, and `mistral`.
11
+ `cerebras`, `deepseek`, `zai`, `kilocode`, `fireworks`, `huggingface`, and
12
+ `mistral`.
12
13
 
13
14
  Tau also includes local `ollama`, Google/Anthropic/OpenAI-compatible Vertex AI
14
15
  providers, and OAuth providers for OpenAI Codex, Claude Code, GitHub Copilot,
15
- and Google Antigravity. Extensions can register additional providers.
16
+ Google Antigravity, and xAI Grok. Extensions can register additional providers.
16
17
 
17
18
  The model picker is the authoritative model catalogue. Built-in model metadata
18
19
  changes more frequently than this guide, so model IDs and pricing are not
@@ -132,6 +133,34 @@ tau --model fireworks/accounts/fireworks/models/llama-v3p3-70b-instruct -p "Say
132
133
  - Uses the OpenAI-compatible completions API under the hood
133
134
  - Session affinity is maintained automatically via a per-request `x-session-affinity` header
134
135
 
136
+ ## Hugging Face
137
+
138
+ Hugging Face's Inference Providers router gives OpenAI-compatible access to
139
+ open-source models (DeepSeek, Llama, Qwen, Mixtral, and more) hosted across
140
+ its partner inference providers.
141
+
142
+ ### Setup
143
+
144
+ 1. Create an account at [Hugging Face](https://huggingface.co)
145
+ 2. Generate an access token at [huggingface.co/settings/tokens](https://huggingface.co/settings/tokens) (a `read` token is sufficient)
146
+ 3. Set the environment variable:
147
+
148
+ ```bash
149
+ export HUGGINGFACE_API_KEY=hf_...
150
+ ```
151
+
152
+ ### Verify
153
+
154
+ ```bash
155
+ tau --model huggingface/deepseek-ai/DeepSeek-V3-0324 -p "Say hello"
156
+ ```
157
+
158
+ ### Notes
159
+
160
+ - Uses the OpenAI-compatible completions API under the hood, routed through `https://router.huggingface.co/v1`
161
+ - Model IDs are Hugging Face Hub repo IDs (e.g. `meta-llama/Llama-3.3-70B-Instruct`)
162
+ - Built-in model entries are pinned to a specific backend with `<repo>:<provider>` (e.g. `openai/gpt-oss-120b:groq`) rather than the router's default `:fastest` routing, since unpinned routing can silently switch to a backend with different tool-calling behavior. You can still use any model/backend combination the router supports via `tau --model huggingface/<repo>[:<provider>]` even if it isn't in the built-in list.
163
+
135
164
  ## Ollama (Local)
136
165
 
137
166
  Run open-source models locally without API keys or internet.
@@ -21,7 +21,7 @@
21
21
  | Shortcut | Action |
22
22
  |----------|--------|
23
23
  | Alt+Enter | Queue as follow-up message (delivered when agent is fully idle) |
24
- | Alt+Up | Restore queued messages into editor |
24
+ | Ctrl+Up | Restore queued messages into editor |
25
25
 
26
26
  ### App
27
27
 
@@ -76,7 +76,7 @@ A `KeyMap` is `dict[str, list[str]]` — action name → list of key combos that
76
76
  | `tui.input.clear` | `ctrl+u` | Kill from cursor to start |
77
77
  | `tui.input.word_back` | `ctrl+w` | Delete previous word |
78
78
  | `app.message.followup` | `alt+enter` | Queue as follow-up message |
79
- | `app.message.dequeue` | `alt+up` | Restore queued messages into editor |
79
+ | `app.message.dequeue` | `ctrl+up` | Restore queued messages into editor |
80
80
  | `app.details.toggle` | `ctrl+o` | Toggle thinking and tool-result previews |
81
81
  | `app.invocations.toggle` | `ctrl+e` | Toggle template and skill blocks |
82
82
  | `tui.app.quit` | `ctrl+c`, `ctrl+d` | Quit tau |