Nano-SD 0.2.1__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 (180) hide show
  1. nano_sd-0.2.1/.gitignore +103 -0
  2. nano_sd-0.2.1/LICENSE +21 -0
  3. nano_sd-0.2.1/PKG-INFO +405 -0
  4. nano_sd-0.2.1/README.md +362 -0
  5. nano_sd-0.2.1/THIRD_PARTY_NOTICES.md +144 -0
  6. nano_sd-0.2.1/nanobot/__init__.py +48 -0
  7. nano_sd-0.2.1/nanobot/__main__.py +8 -0
  8. nano_sd-0.2.1/nanobot/agent/__init__.py +19 -0
  9. nano_sd-0.2.1/nanobot/agent/autocompact.py +96 -0
  10. nano_sd-0.2.1/nanobot/agent/context.py +270 -0
  11. nano_sd-0.2.1/nanobot/agent/hook.py +141 -0
  12. nano_sd-0.2.1/nanobot/agent/loop.py +1764 -0
  13. nano_sd-0.2.1/nanobot/agent/memory.py +955 -0
  14. nano_sd-0.2.1/nanobot/agent/model_presets.py +65 -0
  15. nano_sd-0.2.1/nanobot/agent/progress_hook.py +178 -0
  16. nano_sd-0.2.1/nanobot/agent/runner.py +1353 -0
  17. nano_sd-0.2.1/nanobot/agent/skills.py +242 -0
  18. nano_sd-0.2.1/nanobot/agent/subagent.py +392 -0
  19. nano_sd-0.2.1/nanobot/agent/tools/__init__.py +31 -0
  20. nano_sd-0.2.1/nanobot/agent/tools/apply_patch.py +290 -0
  21. nano_sd-0.2.1/nanobot/agent/tools/base.py +296 -0
  22. nano_sd-0.2.1/nanobot/agent/tools/cli_apps.py +133 -0
  23. nano_sd-0.2.1/nanobot/agent/tools/context.py +60 -0
  24. nano_sd-0.2.1/nanobot/agent/tools/cron.py +295 -0
  25. nano_sd-0.2.1/nanobot/agent/tools/exec_session.py +598 -0
  26. nano_sd-0.2.1/nanobot/agent/tools/file_state.py +205 -0
  27. nano_sd-0.2.1/nanobot/agent/tools/filesystem.py +1022 -0
  28. nano_sd-0.2.1/nanobot/agent/tools/image_generation.py +209 -0
  29. nano_sd-0.2.1/nanobot/agent/tools/loader.py +116 -0
  30. nano_sd-0.2.1/nanobot/agent/tools/long_task.py +251 -0
  31. nano_sd-0.2.1/nanobot/agent/tools/mcp.py +942 -0
  32. nano_sd-0.2.1/nanobot/agent/tools/message.py +273 -0
  33. nano_sd-0.2.1/nanobot/agent/tools/path_utils.py +30 -0
  34. nano_sd-0.2.1/nanobot/agent/tools/registry.py +125 -0
  35. nano_sd-0.2.1/nanobot/agent/tools/runtime_state.py +62 -0
  36. nano_sd-0.2.1/nanobot/agent/tools/sandbox.py +55 -0
  37. nano_sd-0.2.1/nanobot/agent/tools/schema.py +232 -0
  38. nano_sd-0.2.1/nanobot/agent/tools/search.py +584 -0
  39. nano_sd-0.2.1/nanobot/agent/tools/self.py +484 -0
  40. nano_sd-0.2.1/nanobot/agent/tools/shell.py +652 -0
  41. nano_sd-0.2.1/nanobot/agent/tools/spawn.py +96 -0
  42. nano_sd-0.2.1/nanobot/agent/tools/web.py +864 -0
  43. nano_sd-0.2.1/nanobot/api/__init__.py +1 -0
  44. nano_sd-0.2.1/nanobot/api/server.py +399 -0
  45. nano_sd-0.2.1/nanobot/apps/__init__.py +5 -0
  46. nano_sd-0.2.1/nanobot/apps/cli/__init__.py +13 -0
  47. nano_sd-0.2.1/nanobot/apps/cli/service.py +1238 -0
  48. nano_sd-0.2.1/nanobot/apps/cli/utils.py +62 -0
  49. nano_sd-0.2.1/nanobot/apps/protocol.py +56 -0
  50. nano_sd-0.2.1/nanobot/bus/__init__.py +6 -0
  51. nano_sd-0.2.1/nanobot/bus/events.py +53 -0
  52. nano_sd-0.2.1/nanobot/bus/progress.py +70 -0
  53. nano_sd-0.2.1/nanobot/bus/queue.py +44 -0
  54. nano_sd-0.2.1/nanobot/bus/runtime_events.py +251 -0
  55. nano_sd-0.2.1/nanobot/channels/__init__.py +6 -0
  56. nano_sd-0.2.1/nanobot/channels/base.py +270 -0
  57. nano_sd-0.2.1/nanobot/channels/manager.py +509 -0
  58. nano_sd-0.2.1/nanobot/channels/registry.py +95 -0
  59. nano_sd-0.2.1/nanobot/channels/wecom.py +554 -0
  60. nano_sd-0.2.1/nanobot/channels/weixin.py +1546 -0
  61. nano_sd-0.2.1/nanobot/cli/__init__.py +1 -0
  62. nano_sd-0.2.1/nanobot/cli/commands.py +1947 -0
  63. nano_sd-0.2.1/nanobot/cli/models.py +31 -0
  64. nano_sd-0.2.1/nanobot/cli/onboard.py +1385 -0
  65. nano_sd-0.2.1/nanobot/cli/stream.py +230 -0
  66. nano_sd-0.2.1/nanobot/command/__init__.py +6 -0
  67. nano_sd-0.2.1/nanobot/command/builtin.py +686 -0
  68. nano_sd-0.2.1/nanobot/command/router.py +88 -0
  69. nano_sd-0.2.1/nanobot/config/__init__.py +34 -0
  70. nano_sd-0.2.1/nanobot/config/loader.py +177 -0
  71. nano_sd-0.2.1/nanobot/config/paths.py +76 -0
  72. nano_sd-0.2.1/nanobot/config/schema.py +518 -0
  73. nano_sd-0.2.1/nanobot/cron/__init__.py +18 -0
  74. nano_sd-0.2.1/nanobot/cron/service.py +664 -0
  75. nano_sd-0.2.1/nanobot/cron/types.py +83 -0
  76. nano_sd-0.2.1/nanobot/nanobot.py +105 -0
  77. nano_sd-0.2.1/nanobot/off_duty/__init__.py +5 -0
  78. nano_sd-0.2.1/nanobot/off_duty/agent_loop.py +493 -0
  79. nano_sd-0.2.1/nanobot/off_duty/autostart.py +287 -0
  80. nano_sd-0.2.1/nanobot/pairing/__init__.py +33 -0
  81. nano_sd-0.2.1/nanobot/pairing/store.py +254 -0
  82. nano_sd-0.2.1/nanobot/providers/__init__.py +45 -0
  83. nano_sd-0.2.1/nanobot/providers/anthropic_provider.py +692 -0
  84. nano_sd-0.2.1/nanobot/providers/azure_openai_provider.py +186 -0
  85. nano_sd-0.2.1/nanobot/providers/base.py +843 -0
  86. nano_sd-0.2.1/nanobot/providers/bedrock_provider.py +760 -0
  87. nano_sd-0.2.1/nanobot/providers/factory.py +244 -0
  88. nano_sd-0.2.1/nanobot/providers/fallback_provider.py +273 -0
  89. nano_sd-0.2.1/nanobot/providers/github_copilot_provider.py +261 -0
  90. nano_sd-0.2.1/nanobot/providers/image_generation.py +1603 -0
  91. nano_sd-0.2.1/nanobot/providers/openai_codex_provider.py +321 -0
  92. nano_sd-0.2.1/nanobot/providers/openai_compat_provider.py +1486 -0
  93. nano_sd-0.2.1/nanobot/providers/openai_responses/__init__.py +31 -0
  94. nano_sd-0.2.1/nanobot/providers/openai_responses/converters.py +127 -0
  95. nano_sd-0.2.1/nanobot/providers/openai_responses/parsing.py +424 -0
  96. nano_sd-0.2.1/nanobot/providers/registry.py +533 -0
  97. nano_sd-0.2.1/nanobot/providers/transcription.py +221 -0
  98. nano_sd-0.2.1/nanobot/security/__init__.py +1 -0
  99. nano_sd-0.2.1/nanobot/security/network.py +159 -0
  100. nano_sd-0.2.1/nanobot/security/workspace_access.py +430 -0
  101. nano_sd-0.2.1/nanobot/security/workspace_policy.py +85 -0
  102. nano_sd-0.2.1/nanobot/session/__init__.py +5 -0
  103. nano_sd-0.2.1/nanobot/session/goal_state.py +126 -0
  104. nano_sd-0.2.1/nanobot/session/manager.py +749 -0
  105. nano_sd-0.2.1/nanobot/session/turn_continuation.py +240 -0
  106. nano_sd-0.2.1/nanobot/session/webui_turns.py +449 -0
  107. nano_sd-0.2.1/nanobot/skills/README.md +32 -0
  108. nano_sd-0.2.1/nanobot/skills/clawhub/SKILL.md +53 -0
  109. nano_sd-0.2.1/nanobot/skills/cron/SKILL.md +57 -0
  110. nano_sd-0.2.1/nanobot/skills/github/SKILL.md +48 -0
  111. nano_sd-0.2.1/nanobot/skills/image-generation/SKILL.md +66 -0
  112. nano_sd-0.2.1/nanobot/skills/long-goal/SKILL.md +79 -0
  113. nano_sd-0.2.1/nanobot/skills/memory/SKILL.md +36 -0
  114. nano_sd-0.2.1/nanobot/skills/my/SKILL.md +72 -0
  115. nano_sd-0.2.1/nanobot/skills/my/references/examples.md +75 -0
  116. nano_sd-0.2.1/nanobot/skills/skill-creator/SKILL.md +374 -0
  117. nano_sd-0.2.1/nanobot/skills/skill-creator/scripts/init_skill.py +378 -0
  118. nano_sd-0.2.1/nanobot/skills/skill-creator/scripts/package_skill.py +152 -0
  119. nano_sd-0.2.1/nanobot/skills/skill-creator/scripts/quick_validate.py +213 -0
  120. nano_sd-0.2.1/nanobot/skills/summarize/SKILL.md +67 -0
  121. nano_sd-0.2.1/nanobot/skills/tmux/SKILL.md +121 -0
  122. nano_sd-0.2.1/nanobot/skills/tmux/scripts/find-sessions.sh +112 -0
  123. nano_sd-0.2.1/nanobot/skills/tmux/scripts/wait-for-text.sh +83 -0
  124. nano_sd-0.2.1/nanobot/skills/update-setup/SKILL.md +123 -0
  125. nano_sd-0.2.1/nanobot/skills/weather/SKILL.md +49 -0
  126. nano_sd-0.2.1/nanobot/templates/AGENTS.md +23 -0
  127. nano_sd-0.2.1/nanobot/templates/HEARTBEAT.md +14 -0
  128. nano_sd-0.2.1/nanobot/templates/SOUL.md +20 -0
  129. nano_sd-0.2.1/nanobot/templates/USER.md +49 -0
  130. nano_sd-0.2.1/nanobot/templates/__init__.py +0 -0
  131. nano_sd-0.2.1/nanobot/templates/agent/_snippets/untrusted_content.md +2 -0
  132. nano_sd-0.2.1/nanobot/templates/agent/consolidator_archive.md +24 -0
  133. nano_sd-0.2.1/nanobot/templates/agent/dream.md +105 -0
  134. nano_sd-0.2.1/nanobot/templates/agent/evaluator.md +17 -0
  135. nano_sd-0.2.1/nanobot/templates/agent/identity.md +34 -0
  136. nano_sd-0.2.1/nanobot/templates/agent/max_iterations_message.md +1 -0
  137. nano_sd-0.2.1/nanobot/templates/agent/platform_policy.md +10 -0
  138. nano_sd-0.2.1/nanobot/templates/agent/skills_section.md +6 -0
  139. nano_sd-0.2.1/nanobot/templates/agent/subagent_announce.md +8 -0
  140. nano_sd-0.2.1/nanobot/templates/agent/subagent_system.md +19 -0
  141. nano_sd-0.2.1/nanobot/templates/agent/tool_contract.md +67 -0
  142. nano_sd-0.2.1/nanobot/templates/memory/MEMORY.md +23 -0
  143. nano_sd-0.2.1/nanobot/templates/memory/__init__.py +0 -0
  144. nano_sd-0.2.1/nanobot/utils/__init__.py +42 -0
  145. nano_sd-0.2.1/nanobot/utils/artifacts.py +122 -0
  146. nano_sd-0.2.1/nanobot/utils/document.py +319 -0
  147. nano_sd-0.2.1/nanobot/utils/evaluator.py +94 -0
  148. nano_sd-0.2.1/nanobot/utils/file_edit_events.py +964 -0
  149. nano_sd-0.2.1/nanobot/utils/gitstore.py +390 -0
  150. nano_sd-0.2.1/nanobot/utils/helpers.py +639 -0
  151. nano_sd-0.2.1/nanobot/utils/image_generation_intent.py +27 -0
  152. nano_sd-0.2.1/nanobot/utils/llm_runtime.py +22 -0
  153. nano_sd-0.2.1/nanobot/utils/logging_bridge.py +47 -0
  154. nano_sd-0.2.1/nanobot/utils/media_decode.py +55 -0
  155. nano_sd-0.2.1/nanobot/utils/path.py +107 -0
  156. nano_sd-0.2.1/nanobot/utils/progress_events.py +101 -0
  157. nano_sd-0.2.1/nanobot/utils/prompt_templates.py +35 -0
  158. nano_sd-0.2.1/nanobot/utils/restart.py +84 -0
  159. nano_sd-0.2.1/nanobot/utils/runtime.py +180 -0
  160. nano_sd-0.2.1/nanobot/utils/searchusage.py +168 -0
  161. nano_sd-0.2.1/nanobot/utils/subagent_channel_display.py +59 -0
  162. nano_sd-0.2.1/nanobot/utils/tool_hints.py +142 -0
  163. nano_sd-0.2.1/nanobot/webui/__init__.py +2 -0
  164. nano_sd-0.2.1/nanobot/webui/cli_apps_api.py +93 -0
  165. nano_sd-0.2.1/nanobot/webui/gateway_services.py +70 -0
  166. nano_sd-0.2.1/nanobot/webui/gateway_tokens.py +82 -0
  167. nano_sd-0.2.1/nanobot/webui/http_utils.py +151 -0
  168. nano_sd-0.2.1/nanobot/webui/mcp_presets_api.py +1318 -0
  169. nano_sd-0.2.1/nanobot/webui/mcp_presets_runtime.py +5 -0
  170. nano_sd-0.2.1/nanobot/webui/media_api.py +284 -0
  171. nano_sd-0.2.1/nanobot/webui/media_gateway.py +92 -0
  172. nano_sd-0.2.1/nanobot/webui/settings_api.py +1303 -0
  173. nano_sd-0.2.1/nanobot/webui/settings_routes.py +329 -0
  174. nano_sd-0.2.1/nanobot/webui/sidebar_state.py +196 -0
  175. nano_sd-0.2.1/nanobot/webui/thread_disk.py +31 -0
  176. nano_sd-0.2.1/nanobot/webui/transcript.py +922 -0
  177. nano_sd-0.2.1/nanobot/webui/websocket_logging.py +45 -0
  178. nano_sd-0.2.1/nanobot/webui/workspaces.py +283 -0
  179. nano_sd-0.2.1/nanobot/webui/ws_http.py +494 -0
  180. nano_sd-0.2.1/pyproject.toml +94 -0
@@ -0,0 +1,103 @@
1
+ # Project-specific
2
+ .worktrees/
3
+ .worktree/
4
+ .assets
5
+ .docs
6
+ .env
7
+ .web
8
+ .orion
9
+ nanobot-desktop/
10
+ desktop/
11
+
12
+ # Claude / AI assistant artifacts
13
+ docs/superpowers/
14
+ docs/plans/
15
+
16
+ # webui (monorepo frontend)
17
+ webui/node_modules/
18
+ webui/dist/
19
+ webui/coverage/
20
+ webui/.vite/
21
+ *.tsbuildinfo
22
+
23
+ # Python bytecode & caches
24
+ *.pyc
25
+ *.pyo
26
+ *.pyd
27
+ *.pyw
28
+ *.pyz
29
+ __pycache__/
30
+ *.egg-info/
31
+ *.egg
32
+ .venv/
33
+ venv/
34
+ .pytest_cache/
35
+ .mypy_cache/
36
+ .ruff_cache/
37
+ .pytype/
38
+ .dmypy.json
39
+ dmypy.json
40
+ .tox/
41
+ .nox/
42
+ .hypothesis/
43
+
44
+ # Build & packaging
45
+ dist/
46
+ build/
47
+ *.manifest
48
+ *.spec
49
+ pip-wheel-metadata/
50
+ share/python-wheels/
51
+
52
+ # Test & coverage
53
+ .coverage
54
+ .coverage.*
55
+ htmlcov/
56
+ coverage.xml
57
+ *.cover
58
+
59
+ # Lock files (project policy)
60
+ poetry.lock
61
+ uv.lock
62
+
63
+ # Jupyter
64
+ .ipynb_checkpoints/
65
+
66
+ # macOS
67
+ .DS_Store
68
+ .AppleDouble
69
+ .LSOverride
70
+
71
+ # Windows
72
+ Thumbs.db
73
+ ehthumbs.db
74
+ Desktop.ini
75
+
76
+ # Linux
77
+ .directory
78
+
79
+ # Editors & IDEs (local workspace / user settings)
80
+ .vscode/
81
+ .cursor/
82
+ .idea/
83
+ .fleet/
84
+ *.code-workspace
85
+ *.sublime-project
86
+ *.sublime-workspace
87
+ *.swp
88
+ *.swo
89
+ *~
90
+ nano.*.save
91
+
92
+ # Environment & secrets (keep examples tracked if needed)
93
+ .env.*
94
+ !.env.example
95
+
96
+ # Logs & temp
97
+ *.log
98
+ logs/
99
+ tmp/
100
+ temp/
101
+ *.tmp
102
+ exp/
103
+ .playwright-mcp/
nano_sd-0.2.1/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025-present Xubin Ren and the nanobot contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
nano_sd-0.2.1/PKG-INFO ADDED
@@ -0,0 +1,405 @@
1
+ Metadata-Version: 2.4
2
+ Name: Nano-SD
3
+ Version: 0.2.1
4
+ Summary: Nano-SD ๅ…ณๆœบๅฐๅŠฉๆ‰‹ - ๅŸบไบŽ nanobot ไบŒๆฌกๅผ€ๅ‘๏ผŒไผไธšๅพฎไฟกๅŠ ็ญ่ฎฐๅฝ•ไธŽ่‡ชๅŠจๅ…ณๆœบ
5
+ Project-URL: Homepage, https://github.com/yourname/nano-sd
6
+ Author: Xubin Ren, the nanobot contributors
7
+ Maintainer-email: ไฝ ็š„ๅ็งฐ <your@email.com>
8
+ License: MIT
9
+ License-File: LICENSE
10
+ License-File: THIRD_PARTY_NOTICES.md
11
+ Keywords: assistant,overtime,shutdown,wecom
12
+ Classifier: Development Status :: 3 - Alpha
13
+ Classifier: Intended Audience :: Developers
14
+ Classifier: License :: OSI Approved :: MIT License
15
+ Classifier: Programming Language :: Python :: 3.11
16
+ Classifier: Programming Language :: Python :: 3.12
17
+ Requires-Python: >=3.11
18
+ Requires-Dist: anthropic<1.0.0,>=0.45.0
19
+ Requires-Dist: croniter<7.0.0,>=6.0.0
20
+ Requires-Dist: dulwich<1.0.0,>=0.22.0
21
+ Requires-Dist: filelock>=3.25.2
22
+ Requires-Dist: httpx<1.0.0,>=0.28.0
23
+ Requires-Dist: jinja2<4.0.0,>=3.1.0
24
+ Requires-Dist: loguru<1.0.0,>=0.7.3
25
+ Requires-Dist: mcp<2.0.0,>=1.26.0
26
+ Requires-Dist: openai>=2.8.0
27
+ Requires-Dist: prompt-toolkit<4.0.0,>=3.0.50
28
+ Requires-Dist: pydantic-settings<3.0.0,>=2.12.0
29
+ Requires-Dist: pydantic<3.0.0,>=2.12.0
30
+ Requires-Dist: pyyaml<7.0.0,>=6.0
31
+ Requires-Dist: rich<15.0.0,>=14.0.0
32
+ Requires-Dist: typer<1.0.0,>=0.20.0
33
+ Requires-Dist: websocket-client<2.0.0,>=1.9.0
34
+ Requires-Dist: websockets<17.0,>=16.0
35
+ Provides-Extra: api
36
+ Requires-Dist: aiohttp<4.0.0,>=3.9.0; extra == 'api'
37
+ Provides-Extra: wecom
38
+ Requires-Dist: wecom-aibot-sdk-python>=0.1.5; extra == 'wecom'
39
+ Provides-Extra: weixin
40
+ Requires-Dist: pycryptodome>=3.20.0; extra == 'weixin'
41
+ Requires-Dist: qrcode[pil]>=8.0; extra == 'weixin'
42
+ Description-Content-Type: text/markdown
43
+
44
+ ![nanobot README cover](./images/readme-cover.png)
45
+
46
+ <div align="center">
47
+ <p>
48
+ <a href="https://nanobot.wiki/docs/latest/getting-started/nanobot-overview">English</a> |
49
+ <a href="https://nanobot.wiki/cn/docs/latest/getting-started/nanobot-overview">็ฎ€ไฝ“ไธญๆ–‡</a> |
50
+ <a href="https://nanobot.wiki/zh-Hant/docs/latest/getting-started/nanobot-overview">็น้ซ”ไธญๆ–‡</a> |
51
+ <a href="https://nanobot.wiki/es/docs/latest/getting-started/nanobot-overview">Espaรฑol</a> |
52
+ <a href="https://nanobot.wiki/fr/docs/latest/getting-started/nanobot-overview">Franรงais</a> |
53
+ <a href="https://nanobot.wiki/id/docs/latest/getting-started/nanobot-overview">Bahasa Indonesia</a> |
54
+ <a href="https://nanobot.wiki/ja/docs/latest/getting-started/nanobot-overview">ๆ—ฅๆœฌ่ชž</a> |
55
+ <a href="https://nanobot.wiki/ko/docs/latest/getting-started/nanobot-overview">ํ•œ๊ตญ์–ด</a> |
56
+ <a href="https://nanobot.wiki/ru/docs/latest/getting-started/nanobot-overview">ะ ัƒััะบะธะน</a> |
57
+ <a href="https://nanobot.wiki/vi/docs/latest/getting-started/nanobot-overview">Tiแบฟng Viแป‡t</a>
58
+ </p>
59
+ <p>
60
+ <a href="https://pypi.org/project/nanobot-ai/"><img src="https://img.shields.io/pypi/v/nanobot-ai" alt="PyPI"></a>
61
+ <a href="https://pepy.tech/project/nanobot-ai"><img src="https://static.pepy.tech/badge/nanobot-ai" alt="Downloads"></a>
62
+ <img src="https://img.shields.io/badge/python-โ‰ฅ3.11-blue" alt="Python">
63
+ <img src="https://img.shields.io/badge/license-MIT-green" alt="License">
64
+ <a href="https://github.com/HKUDS/nanobot/graphs/commit-activity" target="_blank">
65
+ <img alt="Commits last month" src="https://img.shields.io/github/commit-activity/m/HKUDS/nanobot?labelColor=%20%2332b583&color=%20%2312b76a"></a>
66
+ <a href="https://github.com/HKUDS/nanobot/issues?q=is%3Aissue%20is%3Aclosed" target="_blank">
67
+ <img alt="Issues closed" src="https://img.shields.io/github/issues-search?query=repo%3AHKUDS%2Fnanobot%20is%3Aissue%20is%3Aclosed&label=issues%20closed&labelColor=%20%237d89b0&color=%20%235d6b98"></a>
68
+ <a href="https://twitter.com/intent/follow?screen_name=nanobot_project" target="_blank">
69
+ <img src="https://img.shields.io/twitter/follow/nanobot_project?logo=X&color=%20%23f5f5f5" alt="follow on X(Twitter)"></a>
70
+ <a href="https://nanobot.wiki/docs/latest/getting-started/nanobot-overview"><img src="https://img.shields.io/badge/Docs-nanobot.wiki-blue?style=flat&logo=readthedocs&logoColor=white" alt="Docs"></a>
71
+ <a href="./COMMUNICATION.md"><img src="https://img.shields.io/badge/Feishu-Group-E9DBFC?style=flat&logo=feishu&logoColor=white" alt="Feishu"></a>
72
+ <a href="./COMMUNICATION.md"><img src="https://img.shields.io/badge/WeChat-Group-C5EAB4?style=flat&logo=wechat&logoColor=white" alt="WeChat"></a>
73
+ <a href="https://discord.gg/MnCvHqpUGB"><img src="https://img.shields.io/badge/Discord-Community-5865F2?style=flat&logo=discord&logoColor=white" alt="Discord"></a>
74
+ </p>
75
+ </div>
76
+
77
+ ๐Ÿˆ **nanobot** is an open-source, ultra-lightweight agent runtime for people who want to own their AI agent stack. It gives you a small, readable core plus the practical pieces for real long-running agents: WebUI, chat channels, tools, memory, MCP, model routing, and deployment.
78
+
79
+ ## ๐Ÿ“ข News
80
+
81
+ - **2026-06-01** ๐Ÿš€ Released **v0.2.1** โ€” **The Workbench Release** turns the packaged WebUI into a daily agent workbench: clearer Thought/response timelines, live file-edit activity, project workspaces, model and context controls, steadier sustained goals, CLI Apps + MCP extensions, and broader provider/channel support. Please see [release notes](https://github.com/HKUDS/nanobot/releases/tag/v0.2.1) for details.
82
+ - **2026-05-30** ๐Ÿ” Safer Matrix verification, bounded media downloads, clearer WebUI model timeline.
83
+ - **2026-05-29** ๐Ÿงฉ Extension registry, context-window tuning, document extraction controls.
84
+ - **2026-05-28** ๐Ÿ—‚๏ธ Project workspaces, access controls, steadier goals and streaming.
85
+ - **2026-05-27** โฑ๏ธ Codex streams respect idle timeouts during long runs.
86
+ - **2026-05-26** ๐Ÿ“ก Telegram webhooks, refreshed Kagi search, cleaner transport errors.
87
+ - **2026-05-25** ๐Ÿ”Œ Unified CLI Apps and MCP, Step Plan support, steadier sustained goals.
88
+ - **2026-05-24** ๐Ÿงฐ MCP presets, richer slash actions, configurable OpenAI-compatible requests.
89
+ - **2026-05-23** ๐Ÿ–ผ๏ธ Zhipu image generation, longer exec windows, cleaner transcription config.
90
+ - **2026-05-22** ๐Ÿ› ๏ธ CLI Apps, more image providers, safer web redirects and edits.
91
+
92
+ <details>
93
+ <summary>Earlier news</summary>
94
+
95
+ - **2026-05-21** โšก Novita provider, faster sidebar, smoother coding tools and Weixin replies.
96
+ - **2026-05-20** ๐Ÿ“ถ Signal channel, faster gateway startup, multilingual README links.
97
+ - **2026-05-19** ๐ŸŽจ Image provider registry, StepFun and Skywork, stronger WebUI controls.
98
+ - **2026-05-18** ๐Ÿ–Œ๏ธ Gemini and MiniMax images, Ant Ling, live file-edit activity.
99
+ - **2026-05-17** ๐ŸŒŠ Smoother WebUI streaming, AutoCompact fixes, buffered CLI reasoning.
100
+ - **2026-05-16** ๐Ÿง  Atomic Chat provider, goal-aware timeouts, safer exec URL handling.
101
+ - **2026-05-15** ๐Ÿš€ Released **v0.2.0** โ€” **`/goal`** holds sustained objectives across turns, WebUI now ships inside the wheel, image generation end to end, 5 new providers with `fallback_models`, and a real agent-loop refactor. Please see [release notes](https://github.com/HKUDS/nanobot/releases/tag/v0.2.0) for details.
102
+ - **2026-05-14** ๐ŸŽฏ **`/goal`** for long-term objectives, visible multi-step progress, long-horizon missions in chat.
103
+ - **2026-05-13** ๐Ÿง  Streaming reasoning before answers, automatic backup models, smoother plug-in reconnects.
104
+ - **2026-05-12** ๐ŸŽ›๏ธ Saved model presets with WebUI badge, simpler plug-in tools, quieter Feishu topic threads.
105
+ - **2026-05-11** ๐Ÿ–ฅ๏ธ NVIDIA NIM support, terminal bot name and icon, streamed reasoning and MiMo toggle clarity.
106
+ - **2026-05-09** ๐Ÿ–ผ๏ธ Sharper image replay, BYO web-search keys in Settings, Feishu threads routed cleanly.
107
+ - **2026-05-08** โœจ Inline chat image, redesigned Settings and keys, Dream memory aligned with visible history.
108
+ - **2026-05-07** ๐Ÿ“œ Locale-aware slash palette in WebUI, LAN login, faithful HTTP streaming responses.
109
+ - **2026-05-06** ๐Ÿงฉ Tunable tool hint, steadier voice and plug-in startups, schedules and reminders that stick.
110
+ - **2026-05-05** ๐Ÿ›ก๏ธ Quiet deny for unknown Telegram chats, Dream cleanup, fuller automation summaries.
111
+ - **2026-05-04** ๐Ÿ” Safer DingTalk outbound media links, durable cron persistence, DeepSeek polish.
112
+ - **2026-05-03** โš™๏ธ Predictable shell allow-list behavior, isolated chats mid-reply, cleaner interactive retries.
113
+ - **2026-05-02** ๐Ÿˆ LongCat support, smarter token sizing hints, clearer bundled upgrade guidance.
114
+ - **2026-05-01** โ˜๏ธ Native AWS Bedrock provider, tighter helper handoffs and scoped session files.
115
+ - **2026-04-30** ๐Ÿ’ฌ Feishu threads that honor replies and topics, WhatsApp bridge refresh on source edits.
116
+ - **2026-04-29** ๐Ÿš€ Released **v0.1.5.post3** โ€” Smarter threads on Feishu, Discord, Slack, and Teams; **DeepSeek-V4**; Hugging Face & Olostep; choices, `/history`, and steadier long chats. Please see [release notes](https://github.com/HKUDS/nanobot/releases/tag/v0.1.5.post3) for details.
117
+ - **2026-04-28** ๐ŸŒ Olostep web search, Hugging Face provider, safer workspace-tool interruptions.
118
+ - **2026-04-27** ๐Ÿ’ฌ `/history` command, smarter session replay caps, smoother Discord / Slack threads.
119
+ - **2026-04-26** ๐Ÿงญ Natural cron reminders, thread-aware restarts, safer local provider and shell behavior.
120
+ - **2026-04-25** ๐Ÿงฉ `ask_user` choices, macOS LaunchAgent deployment, MSTeams stale-reference cleanup.
121
+ - **2026-04-24** ๐ŸŽฅ Video attachments for channels, DeepSeek thinking control, faster document startup.
122
+ - **2026-04-23** ๐Ÿงต Discord thread sessions, Telegram inline buttons, structured tool progress updates.
123
+ - **2026-04-22** ๐Ÿ”Ž GitHub Copilot GPT-5 / o-series support, configurable web fetch, WebUI image uploads.
124
+ - **2026-04-21** ๐Ÿš€ Released **v0.1.5.post2** โ€” Windows & Python 3.14 support, Office document reading, SSE streaming for the OpenAI-compatible API, and stronger reliability across sessions, memory, and channels. Please see [release notes](https://github.com/HKUDS/nanobot/releases/tag/v0.1.5.post2) for details.
125
+ - **2026-04-20** ๐ŸŽจ Kimi K2.6 support, Telegram long-message split, WebUI typography & dark-mode polish.
126
+ - **2026-04-19** ๐ŸŒ WebUI i18n locale switcher, atomic session writes with auto-repair.
127
+ - **2026-04-18** ๐Ÿงช Initial WebUI chat, smarter setup wizard menus, WebSocket multi-chat multiplexing.
128
+ - **2026-04-17** ๐ŸชŸ Windows & Python 3.14 CI, Dream line-age memory, email self-loop guard.
129
+ - **2026-04-16** ๐Ÿ“ก SSE streaming for OpenAI-compatible API, Discord channel allow-list.
130
+ - **2026-04-15** ๐ŸŽ›๏ธ LM Studio & nullable API keys, MiniMax thinking endpoint, runtime SelfTool.
131
+ - **2026-04-14** ๐Ÿš€ Released **v0.1.5.post1** โ€” Dream skill discovery, mid-turn follow-up injection, WebSocket channel, and deeper channel integrations. Please see [release notes](https://github.com/HKUDS/nanobot/releases/tag/v0.1.5.post1) for details.
132
+ - **2026-04-13** ๐Ÿ›ก๏ธ Agent turn hardened โ€” user messages persisted early, auto-compact skips active tasks.
133
+ - **2026-04-12** ๐Ÿ”’ Lark global domain support, Dream learns discovered skills, shell sandbox tightened.
134
+ - **2026-04-11** โšก Context compact shrinks sessions on the fly; Kagi web search; QQ & WeCom full media.
135
+ - **2026-04-10** ๐Ÿ““ Multiple MCP servers, Feishu streaming & done-emoji.
136
+ - **2026-04-09** ๐Ÿ”Œ WebSocket channel, unified cross-channel session, `disabled_skills` config.
137
+ - **2026-04-08** ๐Ÿ“ค API file uploads, OpenAI reasoning auto-routing with Responses fallback.
138
+ - **2026-04-07** ๐Ÿง  Anthropic adaptive thinking, MCP resources & prompts exposed as tools.
139
+ - **2026-04-06** ๐Ÿ›ฐ๏ธ Langfuse observability, unified Whisper transcription, email attachments.
140
+ - **2026-04-05** ๐Ÿš€ Released **v0.1.5** โ€” sturdier long-running tasks, Dream two-stage memory, production-ready sandboxing and programming Agent SDK. Please see [release notes](https://github.com/HKUDS/nanobot/releases/tag/v0.1.5) for details.
141
+ - **2026-04-04** ๐Ÿš€ Jinja2 response templates, Dream memory hardened, smarter retry handling.
142
+ - **2026-04-03** ๐Ÿง  Xiaomi MiMo provider, chain-of-thought reasoning visible, Telegram UX polish.
143
+ - **2026-04-02** ๐Ÿงฑ Long-running tasks run more reliably โ€” core runtime hardening.
144
+ - **2026-04-01** ๐Ÿ”‘ GitHub Copilot auth restored; stricter workspace paths; OpenRouter Claude caching fix.
145
+ - **2026-03-31** ๐Ÿ›ฐ๏ธ WeChat multimodal alignment, Discord/Matrix polish, Python SDK facade, MCP and tool fixes.
146
+ - **2026-03-30** ๐Ÿงฉ OpenAI-compatible API tightened; composable agent lifecycle hooks.
147
+ - **2026-03-29** ๐Ÿ’ฌ WeChat voice, typing, QR/media resilience; fixed-session OpenAI-compatible API.
148
+ - **2026-03-28** ๐Ÿ“š Provider docs refresh; skill template wording fix.
149
+ - **2026-03-27** ๐Ÿš€ Released **v0.1.4.post6** โ€” architecture decoupling, litellm removal, end-to-end streaming, WeChat channel, and a security fix. Please see [release notes](https://github.com/HKUDS/nanobot/releases/tag/v0.1.4.post6) for details.
150
+ - **2026-03-26** ๐Ÿ—๏ธ Agent runner extracted and lifecycle hooks unified; stream delta coalescing at boundaries.
151
+ - **2026-03-25** ๐ŸŒ StepFun provider, configurable timezone, Gemini thought signatures.
152
+ - **2026-03-24** ๐Ÿ”ง WeChat compatibility, Feishu CardKit streaming, test suite restructured.
153
+ - **2026-03-23** ๐Ÿ”ง Command routing refactored for plugins, WhatsApp/WeChat media, unified channel login CLI.
154
+ - **2026-03-22** โšก End-to-end streaming, WeChat channel, Anthropic cache optimization, `/status` command.
155
+ - **2026-03-21** ๐Ÿ”’ Replace `litellm` with native `openai` + `anthropic` SDKs. Please see [commit](https://github.com/HKUDS/nanobot/commit/3dfdab7).
156
+ - **2026-03-20** ๐Ÿง™ Interactive setup wizard โ€” pick your provider, model autocomplete, and you're good to go.
157
+ - **2026-03-19** ๐Ÿ’ฌ Telegram gets more resilient under load; Feishu now renders code blocks properly.
158
+ - **2026-03-18** ๐Ÿ“ท Telegram can now send media via URL. Cron schedules show human-readable details.
159
+ - **2026-03-17** โœจ Feishu formatting glow-up, Slack reacts when done, custom endpoints support extra headers, and image handling is more reliable.
160
+ - **2026-03-16** ๐Ÿš€ Released **v0.1.4.post5** โ€” a refinement-focused release with stronger reliability and channel support, and a more dependable day-to-day experience. Please see [release notes](https://github.com/HKUDS/nanobot/releases/tag/v0.1.4.post5) for details.
161
+ - **2026-03-15** ๐Ÿงฉ DingTalk rich media, smarter built-in skills, and cleaner model compatibility.
162
+ - **2026-03-14** ๐Ÿ’ฌ Channel plugins, Feishu replies, and steadier MCP, QQ, and media handling.
163
+ - **2026-03-13** ๐ŸŒ Multi-provider web search, LangSmith, and broader reliability improvements.
164
+ - **2026-03-12** ๐Ÿš€ VolcEngine support, Telegram reply context, `/restart`, and sturdier memory.
165
+ - **2026-03-11** ๐Ÿ”Œ WeCom, Ollama, cleaner discovery, and safer tool behavior.
166
+ - **2026-03-10** ๐Ÿง  Token-based memory, shared retries, and cleaner gateway and Telegram behavior.
167
+ - **2026-03-09** ๐Ÿ’ฌ Slack thread polish and better Feishu audio compatibility.
168
+ - **2026-03-08** ๐Ÿš€ Released **v0.1.4.post4** โ€” a reliability-packed release with safer defaults, better multi-instance support, sturdier MCP, and major channel and provider improvements. Please see [release notes](https://github.com/HKUDS/nanobot/releases/tag/v0.1.4.post4) for details.
169
+ - **2026-03-07** ๐Ÿš€ Azure OpenAI provider, WhatsApp media, QQ group chats, and more Telegram/Feishu polish.
170
+ - **2026-03-06** ๐Ÿช„ Lighter providers, smarter media handling, and sturdier memory and CLI compatibility.
171
+ - **2026-03-05** โšก๏ธ Telegram draft streaming, MCP SSE support, and broader channel reliability fixes.
172
+ - **2026-03-04** ๐Ÿ› ๏ธ Dependency cleanup, safer file reads, and another round of test and Cron fixes.
173
+ - **2026-03-03** ๐Ÿง  Cleaner user-message merging, safer multimodal saves, and stronger Cron guards.
174
+ - **2026-03-02** ๐Ÿ›ก๏ธ Safer default access control, sturdier Cron reloads, and cleaner Matrix media handling.
175
+ - **2026-03-01** ๐ŸŒ Web proxy support, smarter Cron reminders, and Feishu rich-text parsing improvements.
176
+ - **2026-02-28** ๐Ÿš€ Released **v0.1.4.post3** โ€” cleaner context, hardened session history, and smarter agent. Please see [release notes](https://github.com/HKUDS/nanobot/releases/tag/v0.1.4.post3) for details.
177
+ - **2026-02-27** ๐Ÿง  Experimental thinking mode support, DingTalk media messages, Feishu and QQ channel fixes.
178
+ - **2026-02-26** ๐Ÿ›ก๏ธ Session poisoning fix, WhatsApp dedup, Windows path guard, Mistral compatibility.
179
+ - **2026-02-25** ๐Ÿงน New Matrix channel, cleaner session context, auto workspace template sync.
180
+ - **2026-02-24** ๐Ÿš€ Released **v0.1.4.post2** โ€” a reliability-focused release with a redesigned heartbeat, prompt cache optimization, and hardened provider & channel stability. See [release notes](https://github.com/HKUDS/nanobot/releases/tag/v0.1.4.post2) for details.
181
+ - **2026-02-23** ๐Ÿ”ง Virtual tool-call heartbeat, prompt cache optimization, Slack mrkdwn fixes.
182
+ - **2026-02-22** ๐Ÿ›ก๏ธ Slack thread isolation, Discord typing fix, agent reliability improvements.
183
+ - **2026-02-21** ๐ŸŽ‰ Released **v0.1.4.post1** โ€” new providers, media support across channels, and major stability improvements. See [release notes](https://github.com/HKUDS/nanobot/releases/tag/v0.1.4.post1) for details.
184
+ - **2026-02-20** ๐Ÿฆ Feishu now receives multimodal files from users. More reliable memory under the hood.
185
+ - **2026-02-19** โœจ Slack now sends files, Discord splits long messages, and subagents work in CLI mode.
186
+ - **2026-02-18** โšก๏ธ nanobot now supports VolcEngine, MCP custom auth headers, and Anthropic prompt caching.
187
+ - **2026-02-17** ๐ŸŽ‰ Released **v0.1.4** โ€” MCP support, progress streaming, new providers, and multiple channel improvements. Please see [release notes](https://github.com/HKUDS/nanobot/releases/tag/v0.1.4) for details.
188
+ - **2026-02-16** ๐Ÿฆž nanobot now integrates a [ClawHub](https://clawhub.ai) skill โ€” search and install public agent skills.
189
+ - **2026-02-15** ๐Ÿ”‘ nanobot now supports OpenAI Codex provider with OAuth login support.
190
+ - **2026-02-14** ๐Ÿ”Œ nanobot now supports MCP! See [MCP section](#mcp-model-context-protocol) for details.
191
+ - **2026-02-13** ๐ŸŽ‰ Released **v0.1.3.post7** โ€” includes security hardening and multiple improvements. **Please upgrade to the latest version to address security issues**. See [release notes](https://github.com/HKUDS/nanobot/releases/tag/v0.1.3.post7) for more details.
192
+ - **2026-02-12** ๐Ÿง  Redesigned memory system โ€” Less code, more reliable. Join the [discussion](https://github.com/HKUDS/nanobot/discussions/566) about it!
193
+ - **2026-02-11** โœจ Enhanced CLI experience and added MiniMax support!
194
+ - **2026-02-10** ๐ŸŽ‰ Released **v0.1.3.post6** with improvements! Check the updates [notes](https://github.com/HKUDS/nanobot/releases/tag/v0.1.3.post6) and our [roadmap](https://github.com/HKUDS/nanobot/discussions/431).
195
+ - **2026-02-09** ๐Ÿ’ฌ Added Slack, Email, and QQ support โ€” nanobot now supports multiple chat platforms!
196
+ - **2026-02-08** ๐Ÿ”ง Refactored Providersโ€”adding a new LLM provider now takes just 2 simple steps! Check [here](#providers).
197
+ - **2026-02-07** ๐Ÿš€ Released **v0.1.3.post5** with Qwen support & several key improvements! Check [here](https://github.com/HKUDS/nanobot/releases/tag/v0.1.3.post5) for details.
198
+ - **2026-02-06** โœจ Added Moonshot/Kimi provider, Discord integration, and enhanced security hardening!
199
+ - **2026-02-05** โœจ Added Feishu channel, DeepSeek provider, and enhanced scheduled tasks support!
200
+ - **2026-02-04** ๐Ÿš€ Released **v0.1.3.post4** with multi-provider & Docker support! Check [here](https://github.com/HKUDS/nanobot/releases/tag/v0.1.3.post4) for details.
201
+ - **2026-02-03** โšก Integrated vLLM for local LLM support and improved natural language task scheduling!
202
+ - **2026-02-02** ๐ŸŽ‰ nanobot officially launched! Welcome to try ๐Ÿˆ nanobot!
203
+
204
+ </details>
205
+
206
+
207
+ ## ๐Ÿ’ก Why nanobot
208
+
209
+ - **Persistent workflows**: goals, memory, tools, and chat context survive long-running work.
210
+ - **Chat-native reach**: WebUI, API, Telegram, Feishu, Slack, Discord, Teams, and email.
211
+ - **Model freedom**: OpenAI-compatible APIs, local LLMs, image generation, search, and fallbacks.
212
+ - **Small core**: readable internals with MCP, memory, deployment, and automation built in.
213
+ - **Own your stack**: inspect, customize, self-host, and extend without a giant platform.
214
+
215
+ ## ๐Ÿ“ฆ Install
216
+
217
+ > [!IMPORTANT]
218
+ > If you want the newest features and experiments, install from source.
219
+ >
220
+ > If you want the most stable day-to-day experience, install from PyPI or with `uv`.
221
+
222
+ **Install from source**
223
+
224
+ ```bash
225
+ git clone https://github.com/HKUDS/nanobot.git
226
+ cd nanobot
227
+ pip install -e .
228
+ ```
229
+
230
+ **Install with `uv`**
231
+
232
+ ```bash
233
+ uv tool install nanobot-ai
234
+ ```
235
+
236
+ **Install from PyPI**
237
+
238
+ ```bash
239
+ pip install nanobot-ai
240
+ ```
241
+
242
+ ## ๐Ÿš€ Quick Start
243
+
244
+ **1. Initialize**
245
+
246
+ ```bash
247
+ nanobot onboard
248
+ ```
249
+
250
+ **2. Configure** (`~/.nanobot/config.json`)
251
+
252
+ Configure these **two parts** in your config (other options have defaults). Add or merge the following blocks into your existing config instead of replacing the whole file.
253
+
254
+ *Set your API key* (e.g. [OpenRouter](https://openrouter.ai/keys), recommended for global users):
255
+
256
+ ```json
257
+ {
258
+ "providers": {
259
+ "openrouter": {
260
+ "apiKey": "sk-or-v1-xxx"
261
+ }
262
+ }
263
+ }
264
+ ```
265
+
266
+ *Set your model* (optionally pin a provider โ€” defaults to auto-detection):
267
+
268
+ ```json
269
+ {
270
+ "agents": {
271
+ "defaults": {
272
+ "provider": "openrouter",
273
+ "model": "anthropic/claude-opus-4-6"
274
+ }
275
+ }
276
+ }
277
+ ```
278
+
279
+ **3. Chat**
280
+
281
+ ```bash
282
+ nanobot agent
283
+ ```
284
+
285
+
286
+ - Want different LLM providers, web search, MCP, security settings, or more config options? See [Configuration](./docs/configuration.md)
287
+ - Want to run locally? Use [Atomic Chat](./docs/configuration.md#atomic-chat-local), [vLLM](./docs/configuration.md#vllm-local-openai-compatible), [Ollama](./docs/configuration.md#ollama-local), and [others](./docs/configuration.md#local-providers).
288
+ - Want to run nanobot in chat apps like Telegram, Discord, WeChat or Feishu? See [Chat Apps](./docs/chat-apps.md)
289
+ - Want Docker or Linux service deployment? See [Deployment](./docs/deployment.md)
290
+
291
+ ## ๐ŸŒ WebUI
292
+
293
+ The WebUI ships **inside the published wheel** โ€” no extra build step. Just enable the WebSocket channel and open it in your browser.
294
+
295
+ <p align="center">
296
+ <img src="images/nanobot_webui.png" alt="nanobot webui preview" width="900">
297
+ </p>
298
+
299
+ **1. Enable the WebSocket channel in `~/.nanobot/config.json`**
300
+
301
+ ```json
302
+ { "channels": { "websocket": { "enabled": true } } }
303
+ ```
304
+
305
+ **2. Start the gateway**
306
+
307
+ ```bash
308
+ nanobot gateway
309
+ ```
310
+
311
+ **3. Open the WebUI**
312
+
313
+ Visit [`http://127.0.0.1:8765`](http://127.0.0.1:8765) in your browser. To open it from another device on your LAN, see [WebUI docs โ†’ LAN access](./webui/README.md#access-from-another-device-lan).
314
+
315
+ > [!TIP]
316
+ > Working on the WebUI itself? Check out [`webui/README.md`](./webui/README.md) for the Vite dev server (HMR) workflow.
317
+
318
+ ## ๐Ÿ—๏ธ Architecture
319
+
320
+ <p align="center">
321
+ <img src="images/nanobot_arch.png" alt="nanobot architecture" width="800">
322
+ </p>
323
+
324
+ ๐Ÿˆ nanobot stays lightweight by centering everything around a small agent loop: messages come in from chat apps, the LLM decides when tools are needed, and memory or skills are pulled in only as context instead of becoming a heavy orchestration layer. That keeps the core path readable and easy to extend, while still letting you add channels, tools, memory, and deployment options without turning the system into a monolith.
325
+
326
+ ## โœจ Features
327
+
328
+ <table align="center">
329
+ <tr align="center">
330
+ <th><p align="center">๐Ÿ“ˆ 24/7 Real-Time Market Analysis</p></th>
331
+ <th><p align="center">๐Ÿš€ Full-Stack Software Engineer</p></th>
332
+ <th><p align="center">๐Ÿ“… Smart Daily Routine Manager</p></th>
333
+ <th><p align="center">๐Ÿ“š Personal Knowledge Assistant</p></th>
334
+ </tr>
335
+ <tr>
336
+ <td align="center"><p align="center"><img src="case/search.gif" width="180" height="400"></p></td>
337
+ <td align="center"><p align="center"><img src="case/code.gif" width="180" height="400"></p></td>
338
+ <td align="center"><p align="center"><img src="case/schedule.gif" width="180" height="400"></p></td>
339
+ <td align="center"><p align="center"><img src="case/memory.gif" width="180" height="400"></p></td>
340
+ </tr>
341
+ <tr>
342
+ <td align="center">Discovery โ€ข Insights โ€ข Trends</td>
343
+ <td align="center">Develop โ€ข Deploy โ€ข Scale</td>
344
+ <td align="center">Schedule โ€ข Automate โ€ข Organize</td>
345
+ <td align="center">Learn โ€ข Memory โ€ข Reasoning</td>
346
+ </tr>
347
+ </table>
348
+
349
+ ## ๐Ÿ“š Docs
350
+
351
+ Browse the [repo docs](./docs/README.md) for the latest features and GitHub development version, or visit [nanobot.wiki](https://nanobot.wiki/docs/latest/getting-started/nanobot-overview) for the stable release documentation.
352
+
353
+ - Talk to your nanobot with familiar chat apps: [Chat Apps](./docs/chat-apps.md)
354
+ - Configure providers, web search, MCP, and runtime behavior: [Configuration](./docs/configuration.md)
355
+ - Integrate nanobot with local tools and automations: [OpenAI-Compatible API](./docs/openai-api.md) ยท [Python SDK](./docs/python-sdk.md)
356
+ - Run nanobot with Docker or as a Linux service: [Deployment](./docs/deployment.md)
357
+
358
+ ## ๐Ÿค Contribute & Roadmap
359
+
360
+ PRs welcome! The codebase is intentionally small and readable. ๐Ÿค—
361
+
362
+ ### Branching Strategy
363
+
364
+ | Branch | Purpose |
365
+ |--------|---------|
366
+ | `main` | Stable releases โ€” bug fixes and minor improvements |
367
+ | `nightly` | Experimental features โ€” new features and breaking changes |
368
+
369
+ **Unsure which branch to target?** See [CONTRIBUTING.md](./CONTRIBUTING.md) for details.
370
+
371
+ **Roadmap** โ€” Pick an item and [open a PR](https://github.com/HKUDS/nanobot/pulls)!
372
+
373
+ - **Multi-modal** โ€” See and hear (images, voice, video)
374
+ - **Long-term memory** โ€” Never forget important context
375
+ - **Better reasoning** โ€” Multi-step planning and reflection
376
+ - **More integrations** โ€” Calendar and more
377
+ - **Self-improvement** โ€” Learn from feedback and mistakes
378
+
379
+ ## Contact
380
+
381
+ This project was started by [Xubin Ren](https://github.com/re-bin) as a personal open-source project and continues to be maintained in an individual capacity using personal resources, with contributions from the open-source community. Feel free to contact [xubinrencs@gmail.com](mailto:xubinrencs@gmail.com) for questions, ideas, or collaboration.
382
+
383
+ ### Contributors
384
+
385
+ <a href="https://github.com/HKUDS/nanobot/graphs/contributors">
386
+ <img src="https://contrib.rocks/image?repo=HKUDS/nanobot&max=100&columns=12&updated=20260210" alt="Contributors" />
387
+ </a>
388
+
389
+
390
+ ## โญ Star History
391
+
392
+ <div align="center">
393
+ <a href="https://star-history.com/#HKUDS/nanobot&Date">
394
+ <picture>
395
+ <source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=HKUDS/nanobot&type=Date&theme=dark" />
396
+ <source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=HKUDS/nanobot&type=Date" />
397
+ <img alt="Star History Chart" src="https://api.star-history.com/svg?repos=HKUDS/nanobot&type=Date" style="border-radius: 15px; box-shadow: 0 0 30px rgba(0, 217, 255, 0.3);" />
398
+ </picture>
399
+ </a>
400
+ </div>
401
+
402
+ <p align="center">
403
+ <em> Thanks for visiting โœจ nanobot!</em><br><br>
404
+ <img src="https://visitor-badge.laobi.icu/badge?page_id=HKUDS.nanobot&style=for-the-badge&color=00d4ff" alt="Views">
405
+ </p>