seedcode-cli 6.1.5__tar.gz → 6.2.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (131) hide show
  1. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/.gitignore +9 -0
  2. seedcode_cli-6.2.0/PKG-INFO +401 -0
  3. seedcode_cli-6.2.0/README.md +354 -0
  4. seedcode_cli-6.2.0/npm/LICENSE +21 -0
  5. seedcode_cli-6.2.0/npm/README.md +22 -0
  6. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/pyproject.toml +9 -1
  7. seedcode_cli-6.2.0/scripts/pyproject_build_hook.py +44 -0
  8. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/scripts/windows/README.md +1 -1
  9. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/__init__.py +1 -1
  10. seedcode_cli-6.2.0/seedcode/_default_key_template.py +12 -0
  11. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/app.py +42 -4
  12. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/apps/discovery.py +37 -2
  13. seedcode_cli-6.2.0/seedcode/assets/logo.png +0 -0
  14. seedcode_cli-6.2.0/seedcode/branding.py +90 -0
  15. seedcode_cli-6.2.0/seedcode/codemode.py +363 -0
  16. seedcode_cli-6.2.0/seedcode/codemode_state.py +89 -0
  17. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/commands/__init__.py +1 -1
  18. seedcode_cli-6.2.0/seedcode/commands/codemode.py +102 -0
  19. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/computer/controller.py +32 -3
  20. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/computer/engine.py +3 -0
  21. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/computer/keyboard.py +9 -1
  22. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/computer/mouse.py +15 -6
  23. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/computer/state.py +23 -1
  24. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/config/manager.py +26 -0
  25. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/core/agent.py +128 -12
  26. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/core/chat.py +3 -1
  27. seedcode_cli-6.2.0/seedcode/core/http.py +62 -0
  28. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/core/providers/aerolink.py +4 -3
  29. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/core/providers/freemodel.py +6 -5
  30. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/core/providers/ollama.py +5 -4
  31. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/core/providers/openrouter.py +3 -2
  32. seedcode_cli-6.2.0/seedcode/default_api.py +105 -0
  33. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/tools/base.py +16 -1
  34. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/tools/desktop.py +24 -0
  35. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/tools/filesystem.py +3 -1
  36. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/ui/__init__.py +14 -9
  37. seedcode_cli-6.2.0/seedcode/ui/dashboard.py +358 -0
  38. seedcode_cli-6.2.0/seedcode/ui/logo.py +134 -0
  39. seedcode_cli-6.2.0/seedcode/ui/renderer.py +62 -0
  40. seedcode_cli-6.1.5/PKG-INFO +0 -368
  41. seedcode_cli-6.1.5/README.md +0 -321
  42. seedcode_cli-6.1.5/seedcode/ui/dashboard.py +0 -197
  43. seedcode_cli-6.1.5/seedcode/ui/renderer.py +0 -36
  44. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/LICENSE +0 -0
  45. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/__main__.py +0 -0
  46. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/apps/__init__.py +0 -0
  47. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/apps/installer.py +0 -0
  48. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/apps/launcher.py +0 -0
  49. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/apps/verifier.py +0 -0
  50. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/assets/logo.txt +0 -0
  51. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/cli.py +0 -0
  52. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/commands/about.py +0 -0
  53. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/commands/agent.py +0 -0
  54. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/commands/assist.py +0 -0
  55. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/commands/clear.py +0 -0
  56. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/commands/desktop.py +0 -0
  57. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/commands/doctor.py +0 -0
  58. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/commands/help.py +0 -0
  59. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/commands/history.py +0 -0
  60. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/commands/palette.py +0 -0
  61. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/commands/provider.py +0 -0
  62. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/commands/theme.py +0 -0
  63. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/computer/__init__.py +0 -0
  64. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/computer/browser.py +0 -0
  65. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/computer/browser_cdp.py +0 -0
  66. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/computer/browser_engine.py +0 -0
  67. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/computer/browser_extract.py +0 -0
  68. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/computer/browser_popups.py +0 -0
  69. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/computer/browser_selenium.py +0 -0
  70. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/computer/browser_skills.py +0 -0
  71. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/computer/catalog.py +0 -0
  72. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/computer/dispatcher.py +0 -0
  73. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/computer/dpi.py +0 -0
  74. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/computer/logbook.py +0 -0
  75. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/computer/ocr.py +0 -0
  76. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/computer/operator_skills.py +0 -0
  77. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/computer/permissions.py +0 -0
  78. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/computer/recovery.py +0 -0
  79. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/computer/registry.py +0 -0
  80. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/computer/resolver.py +0 -0
  81. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/computer/screen.py +0 -0
  82. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/computer/screen_state.py +0 -0
  83. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/computer/selfguard.py +0 -0
  84. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/computer/semantic.py +0 -0
  85. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/computer/skills.py +0 -0
  86. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/computer/verifier.py +0 -0
  87. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/computer/vision.py +0 -0
  88. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/computer/windows.py +0 -0
  89. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/config/__init__.py +0 -0
  90. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/config/defaults.py +0 -0
  91. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/core/__init__.py +0 -0
  92. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/core/client.py +0 -0
  93. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/core/errors.py +0 -0
  94. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/core/identity.py +0 -0
  95. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/core/identity_store.py +0 -0
  96. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/core/lifecycle.py +0 -0
  97. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/core/limits.py +0 -0
  98. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/core/models.py +0 -0
  99. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/core/project.py +0 -0
  100. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/core/providers/__init__.py +0 -0
  101. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/core/providers/base.py +0 -0
  102. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/core/streaming.py +0 -0
  103. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/memory/__init__.py +0 -0
  104. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/memory/manager.py +0 -0
  105. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/memory/storage.py +0 -0
  106. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/memory/store.py +0 -0
  107. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/tools/__init__.py +0 -0
  108. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/tools/git.py +0 -0
  109. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/tools/patch.py +0 -0
  110. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/tools/permissions.py +0 -0
  111. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/tools/search.py +0 -0
  112. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/tools/terminal.py +0 -0
  113. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/tools/textio.py +0 -0
  114. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/ui/badges.py +0 -0
  115. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/ui/banner.py +0 -0
  116. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/ui/dialog.py +0 -0
  117. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/ui/fuzzy.py +0 -0
  118. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/ui/layout.py +0 -0
  119. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/ui/menu.py +0 -0
  120. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/ui/palette.py +0 -0
  121. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/ui/progress.py +0 -0
  122. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/ui/prompts.py +0 -0
  123. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/ui/searchbox.py +0 -0
  124. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/ui/selector.py +0 -0
  125. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/ui/statusbar.py +0 -0
  126. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/ui/textbox.py +0 -0
  127. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/ui/theme.py +0 -0
  128. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/ui/tree.py +0 -0
  129. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/utils/__init__.py +0 -0
  130. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/utils/helpers.py +0 -0
  131. {seedcode_cli-6.1.5 → seedcode_cli-6.2.0}/seedcode/utils/logger.py +0 -0
@@ -47,6 +47,14 @@ seedcode-cli-setup.exe
47
47
  /data/
48
48
  *.log
49
49
 
50
+ # Secrets: the real .env never enters source control. The v6.2.0 release
51
+ # build consumes it locally (scripts/windows/embed_default_key.py) and the
52
+ # generated module it produces is also excluded.
53
+ .env
54
+ .env.*
55
+ !.env.example
56
+ seedcode/_default_key.py
57
+
50
58
  # OS / editor / agent state
51
59
  .DS_Store
52
60
  Thumbs.db
@@ -62,3 +70,4 @@ Desktop.ini
62
70
  *.rej
63
71
  *.crdownload
64
72
  opencode.txt
73
+ V6.2.0/
@@ -0,0 +1,401 @@
1
+ Metadata-Version: 2.5
2
+ Name: seedcode-cli
3
+ Version: 6.2.0
4
+ Summary: Seed Code — a premium terminal-based AI coding assistant. Plant ideas. Grow code.
5
+ Project-URL: Homepage, https://github.com/Alshahriar-07/seedcode-cli
6
+ Project-URL: Repository, https://github.com/Alshahriar-07/seedcode-cli
7
+ Project-URL: Documentation, https://github.com/Alshahriar-07/seedcode-cli#readme
8
+ Project-URL: Issues, https://github.com/Alshahriar-07/seedcode-cli/issues
9
+ Project-URL: Changelog, https://github.com/Alshahriar-07/seedcode-cli/releases
10
+ Author-email: Al Shahriar Sowan <github@eagox.studio>
11
+ License-Expression: MIT
12
+ License-File: LICENSE
13
+ Keywords: agent,ai,chat,cli,coding-assistant,ollama,seedcode,terminal
14
+ Classifier: Development Status :: 5 - Production/Stable
15
+ Classifier: Environment :: Console
16
+ Classifier: Intended Audience :: Developers
17
+ Classifier: Operating System :: OS Independent
18
+ Classifier: Programming Language :: Python :: 3.12
19
+ Classifier: Programming Language :: Python :: 3.13
20
+ Classifier: Topic :: Software Development
21
+ Classifier: Topic :: Terminals
22
+ Requires-Python: >=3.12
23
+ Requires-Dist: httpx>=0.27.0
24
+ Requires-Dist: openai>=1.40.0
25
+ Requires-Dist: prompt-toolkit>=3.0.43
26
+ Requires-Dist: pydantic>=2.6.0
27
+ Requires-Dist: rich>=13.7.0
28
+ Provides-Extra: browser
29
+ Requires-Dist: selenium>=4.18.0; extra == 'browser'
30
+ Requires-Dist: webdriver-manager>=4.0.1; extra == 'browser'
31
+ Provides-Extra: desktop
32
+ Requires-Dist: mss>=9.0.1; extra == 'desktop'
33
+ Requires-Dist: opencv-python>=4.9.0; extra == 'desktop'
34
+ Requires-Dist: pillow>=10.0.0; extra == 'desktop'
35
+ Requires-Dist: psutil>=5.9.0; extra == 'desktop'
36
+ Requires-Dist: pyautogui>=0.9.54; extra == 'desktop'
37
+ Requires-Dist: pygetwindow>=0.0.9; extra == 'desktop'
38
+ Requires-Dist: pytesseract>=0.3.10; extra == 'desktop'
39
+ Requires-Dist: uiautomation>=2.0.18; (sys_platform == 'win32') and extra == 'desktop'
40
+ Provides-Extra: dev
41
+ Requires-Dist: pytest-mock>=3.12.0; extra == 'dev'
42
+ Requires-Dist: pytest>=8.0.0; extra == 'dev'
43
+ Provides-Extra: vision
44
+ Requires-Dist: opencv-python>=4.9.0; extra == 'vision'
45
+ Requires-Dist: pytesseract>=0.3.10; extra == 'vision'
46
+ Description-Content-Type: text/markdown
47
+
48
+ # Seed Code CLI
49
+
50
+ **Seed Code — Eagox Studio**
51
+
52
+ > ### Faster. Smaller. Smarter. Workspace-aware.
53
+ > *Plant ideas. Grow code.*
54
+
55
+ Seed Code is a premium terminal-based AI coding assistant. v6.2.0 pairs
56
+ streaming chat and permission-gated desktop control with **Code Mode** — a
57
+ workspace-aware coding agent backed by persistent `.seedcode` project memory
58
+ — on a compact, redesigned startup dashboard.
59
+
60
+ - **Works out of the box (Windows release):** the Windows EXE and installer
61
+ ship with a built-in default OpenRouter configuration, so a fresh
62
+ installation can chat immediately — no API key required on first launch.
63
+ You can switch to your own key at any time (`/apikey`).
64
+ - **Version:** 6.2.0 (`seedcode --version`)
65
+
66
+ ## Installation
67
+
68
+ ### Windows installer (recommended on Windows)
69
+
70
+ Download `SeedCode-CLI-Setup-6.2.0.exe` (or the stable-named
71
+ `seedcode-cli-setup.exe`) from the
72
+ [Releases page](https://github.com/Alshahriar-07/seedcode-cli/releases).
73
+
74
+ The installer packages a fully self-contained `seedcode.exe` (no Python
75
+ needed), adds Seed Code to the system `PATH`, creates a Start Menu shortcut
76
+ with an optional desktop shortcut, verifies the installation before
77
+ reporting success, and ships a clean uninstaller that never deletes your
78
+ project data silently. SHA256 checksums for every release artifact are in
79
+ the release's `SHA256SUMS.txt`.
80
+
81
+ ### WinGet
82
+
83
+ ```powershell
84
+ winget install SeedCode.CLI
85
+ ```
86
+
87
+ > **Status:** the 6.2.0 manifests are prepared in
88
+ > [`winget/manifests/s/SeedCode/CLI/6.2.0/`](winget/manifests/s/SeedCode/CLI/6.2.0/)
89
+ > with the real installer SHA256, but the package is **NOT YET PUBLISHED**
90
+ > to the Microsoft community repository — a `winget-pkgs` pull request has
91
+ > not been submitted. Until it merges, use the Windows installer above.
92
+
93
+ ### PyPI
94
+
95
+ Requires **Python 3.12 or newer**:
96
+
97
+ ```bash
98
+ python -m pip install seedcode-cli
99
+ seedcode
100
+ ```
101
+
102
+ > **Status:** `seedcode-cli==6.2.0` wheel and sdist are built and verified
103
+ > in this repository (see Release artifacts). **NOT YET PUBLISHED** to
104
+ > PyPI — run `python -m twine upload dist/*` when ready.
105
+
106
+ ### npm (Windows launcher)
107
+
108
+ ```bash
109
+ npm install -g seedcode-cli
110
+ seedcode
111
+ ```
112
+
113
+ > **Status:** the npm package is **NOT YET PUBLISHED** to the npm registry.
114
+ > The package in [`npm/`](npm/) is a real launcher: on Windows it downloads
115
+ > the official `SeedCode-CLI-6.2.0-windows-x64.exe` from the GitHub release,
116
+ > verifies its SHA256 against `SHA256SUMS.txt`, caches it under
117
+ > `~/.seedcode/npm/`, and runs the actual binary (it never prints fake
118
+ > instructions). On Linux/macOS it points to the pip install.
119
+
120
+ ### From source
121
+
122
+ ```bash
123
+ git clone https://github.com/Alshahriar-07/seedcode-cli.git
124
+ cd seedcode-cli
125
+ python -m pip install -e ".[dev]"
126
+ seedcode
127
+ ```
128
+
129
+ ## First run
130
+
131
+ Start the app:
132
+
133
+ ```bash
134
+ seedcode
135
+ ```
136
+
137
+ You land on the compact startup dashboard — provider, model, mode, and
138
+ status in one branded panel — and the chat prompt appears immediately:
139
+
140
+ ```text
141
+ ╭─ Seed code v6.2.0 ──────────────────────────────────────────────╮
142
+ │ [logo] SEEDCODE CLI │ Seed Code | Eagox Studio│
143
+ │ Plant ideas. Grow code. │ Provider OpenRouter │
144
+ │ │ Model deepseek/… │
145
+ │ │ Mode Assist │
146
+ │ │ Status ● Ready │
147
+ ╰─────────────────────────────────────────────────────────────────╯
148
+ You >
149
+ ```
150
+
151
+ ### Default OpenRouter behavior (v6.2.0)
152
+
153
+ The Windows release (EXE and installer) embeds a Seed Code default
154
+ OpenRouter credential, so the provider is ready the moment the app starts.
155
+ The resolution order is always:
156
+
157
+ 1. **Your own key** — entered via `/apikey` or guided setup (stored in
158
+ `~/.seedcode/config.json`, never in any project directory);
159
+ 2. **The `OPENROUTER_API_KEY` environment variable** (CI / power users);
160
+ 3. **The embedded Seed Code default** — used only when 1 and 2 are absent.
161
+
162
+ When your own key or the environment variable is set, the embedded default
163
+ is never used. The default is a temporary v6.2.0 arrangement; a server-side
164
+ gateway will replace it in a later release. pip/source installs do not
165
+ include a default credential and run guided setup on first launch.
166
+
167
+ ### Your own API key
168
+
169
+ ```bash
170
+ export OPENROUTER_API_KEY="sk-or-..." # Windows PowerShell: $env:OPENROUTER_API_KEY = "..."
171
+ export FREEMODEL_API_KEY="fe_oa_..."
172
+ export AEROLINK_API_KEY="..."
173
+ ```
174
+
175
+ Or manage keys interactively with `/apikey` (view / replace / remove /
176
+ validate). Keys are validated with a real authenticated request before they
177
+ are saved.
178
+
179
+ ### Providers
180
+
181
+ | Provider | Best for |
182
+ | --- | --- |
183
+ | [OpenRouter](https://openrouter.ai) | A broad catalogue of free and paid models |
184
+ | FreeModel Claude | Claude-family models through FreeModel |
185
+ | FreeModel Codex | GPT/Codex models through FreeModel |
186
+ | [AeroLink](https://aerolink.lat) | Anthropic-compatible gateway access |
187
+ | [Ollama](https://ollama.com) | Local, key-free models |
188
+
189
+ Switch with `/provider`; pick models with `/model` (OpenRouter filters
190
+ `free` vs `pro` models; FreeModel offers Auto mode). Custom provider
191
+ configuration is unchanged in v6.2.0 — every provider keeps its own key,
192
+ model, and settings.
193
+
194
+ ## Assist Mode and permissions
195
+
196
+ Assist Mode lets the model act on your project through the tool engine:
197
+
198
+ ```text
199
+ /assist on
200
+ ```
201
+
202
+ Permission modes (view/set with `/permission`):
203
+
204
+ | Mode | Behavior |
205
+ | --- | --- |
206
+ | `read_only` | Inspect files, screens, windows, and state without mutations |
207
+ | `workspace` | Allow approved changes inside the active workspace |
208
+ | `desktop` | Add desktop automation capability after confirmation |
209
+ | `full_system` | Allow broader computer and filesystem actions after confirmation |
210
+
211
+ v6.2.0 performance work in Assist Mode: independent read-only tool calls
212
+ run in parallel, mutating steps stay sequential for correctness, tool
213
+ dispatch is faster, and desktop actions verify state live instead of
214
+ sleeping fixed delays.
215
+
216
+ ## Code Mode (new in v6.2.0)
217
+
218
+ Code Mode is Assist Mode sharpened into a real coding agent for the current
219
+ project. Your working directory becomes the **workspace**:
220
+
221
+ ```text
222
+ /codemode on # treat the CWD as the workspace, enable .seedcode memory
223
+ /codemode off # back to the previous mode (memory stays on disk)
224
+ /codemode status # workspace, memory, and index state
225
+ ```
226
+
227
+ In Code Mode the agent follows the coding-agent workflow: consult the
228
+ project index, find relevant files with targeted searches, read only what
229
+ it needs, plan, edit, run a relevant command or test, and report what
230
+ changed. File operations stay inside the workspace root.
231
+
232
+ ### `.seedcode` project memory
233
+
234
+ Enabling Code Mode creates a `.seedcode/` directory in the project root:
235
+
236
+ ```text
237
+ my-project/
238
+ ├── .seedcode/
239
+ │ ├── memory/ durable project knowledge (architecture, decisions…)
240
+ │ ├── index/ per-file summaries + a file map (incremental, hashed)
241
+ │ ├── context/ reusable project context (conventions, snippets)
242
+ │ ├── sessions/ compact per-session summaries (never raw transcripts)
243
+ │ └── config.json safe project configuration
244
+ ├── src/
245
+ └── ...
246
+ ```
247
+
248
+ - **Incremental indexing** — every indexed file is hashed; only changed
249
+ files are re-summarized on the next run.
250
+ - **Secrets never land here** — writes pass a secret-key filter; API keys,
251
+ tokens, and passwords are rejected at write time.
252
+ - **Not source code** — `.seedcode/` is excluded from workspace search,
253
+ indexing, and the agent's project view (the repo `.gitignore` template
254
+ lists it too).
255
+
256
+ ## Command reference
257
+
258
+ | Command | Purpose |
259
+ | --- | --- |
260
+ | `/help` | Search available commands |
261
+ | `/provider` | Switch the active AI provider |
262
+ | `/apikey` | Add, replace, remove, or validate a provider key |
263
+ | `/model` | Browse and select the provider's model catalogue |
264
+ | `/agent` | Enable or disable Assist Mode (alias `/assist`) |
265
+ | `/codemode` | Workspace-aware Code Mode (`on` / `off` / `status`) |
266
+ | `/workspace` | Show the active Code Mode workspace |
267
+ | `/permission` | View or set the Assist permission mode |
268
+ | `/computer` | Show Computer Engine status and permissions |
269
+ | `/screenshot` | Capture a screenshot |
270
+ | `/windows` | List open windows |
271
+ | `/tools` | List tools available in Assist Mode |
272
+ | `/index` | Show a compact project tree |
273
+ | `/files` | Search project files |
274
+ | `/history` | Browse saved sessions |
275
+ | `/doctor` | Diagnose configuration, network, and provider health |
276
+ | `/theme` | Change the terminal theme |
277
+ | `/shortcuts` | Show keyboard shortcuts |
278
+ | `/reset` | Forget the current conversation context |
279
+ | `/clear` | Clear the screen |
280
+ | `/version` | Show the Seed Code version |
281
+ | `/exit` | Leave the current chat (opens the main menu) |
282
+
283
+ Keyboard shortcuts: `Ctrl+K` command palette, `Ctrl+P` project file search,
284
+ `Ctrl+R` history, `Ctrl+,` settings, `Ctrl+/` shortcut reference,
285
+ `Ctrl+L` clear.
286
+
287
+ All exit paths are clean in v6.2.0: `/exit` → menu, menu → Exit,
288
+ `Ctrl+C` (cancels a response or the current line), and `Ctrl+D`/EOF.
289
+ No traceback appears on normal exit.
290
+
291
+ ## Desktop control
292
+
293
+ With the `desktop`/`full_system` permission level, Seed Code can inspect
294
+ windows, resolve UI elements semantically (accessibility tree, OCR, and
295
+ image refinement — no brittle coordinates), launch and focus applications,
296
+ and drive keyboard/mouse with per-action verification. v6.2.0 replaces
297
+ hardcoded waits with state-based detection: `open_app` polls for real
298
+ window evidence instead of sleeping, verification pauses are shorter
299
+ because state is re-read live, and screenshots are taken only when
300
+ information is genuinely needed.
301
+
302
+ ## Configuration and local data
303
+
304
+ ```text
305
+ ~/.seedcode/
306
+ ├── config.json provider and application settings
307
+ ├── history/ saved conversation sessions (per provider)
308
+ ├── memory/ persistent local memory
309
+ └── logs/ rotating diagnostic logs
310
+ ```
311
+
312
+ Credentials stay local and provider-scoped; environment variables take
313
+ precedence over stored keys. Logs never record API keys or message content.
314
+ `/doctor` checks configuration, connectivity, and provider health.
315
+
316
+ ## Platform support
317
+
318
+ - **Windows:** full experience — desktop control, one-click installer,
319
+ standalone EXE. Primary platform for v6.2.0.
320
+ - **Linux / macOS:** terminal chat, providers, project tools, Code Mode.
321
+ Install with pip; prebuilt binaries are not published yet.
322
+
323
+ ## Building from source
324
+
325
+ ### Python distributions
326
+
327
+ ```bash
328
+ python -m pip install build twine
329
+ python -m build # wheel + sdist, version read from seedcode/__init__.py
330
+ python -m twine check dist/*
331
+ ```
332
+
333
+ ### Windows EXE + installer
334
+
335
+ ```bat
336
+ scripts\windows\build.bat
337
+ ```
338
+
339
+ Stage 0 generates the branding assets (icon, wizard art, exe version
340
+ resource). Stage 0b embeds the default API configuration from a local
341
+ `.env` (git-ignored; skipped when absent — never printed or committed).
342
+ Stage 1 builds the self-contained `dist\seedcode.exe` with PyInstaller
343
+ (icon + version resource embedded) and verifies it. Stage 2 compiles the
344
+ Inno Setup installer and verifies it. Stage 3 stages everything into
345
+ `dist\release\<version>\` and writes `SHA256SUMS.txt` with real hashes.
346
+
347
+ Details: [`scripts/windows/README.md`](scripts/windows/README.md).
348
+
349
+ ### Release artifacts (v6.2.0)
350
+
351
+ | Artifact | Purpose |
352
+ | --- | --- |
353
+ | `SeedCode-CLI-Setup-6.2.0.exe` | Windows installer (Inno Setup) |
354
+ | `SeedCode-CLI-6.2.0-windows-x64.exe` | Standalone Windows EXE |
355
+ | `seedcode_cli-6.2.0-py3-none-any.whl` | pip wheel |
356
+ | `seedcode-cli-6.2.0.tar.gz` | pip source distribution |
357
+ | `seedcode-cli-6.2.0.tgz` | npm launcher package |
358
+ | `SHA256SUMS.txt` | SHA256 checksums of the above |
359
+
360
+ Built artifacts are collected in `dist/release/6.2.0/` during a release
361
+ build; publishing (GitHub release, PyPI, npm, winget-pkgs PR) is a separate
362
+ manual step.
363
+
364
+ ## Troubleshooting
365
+
366
+ - **`seedcode` is not recognized** — open a *new* terminal after
367
+ installing; PATH changes only apply to fresh sessions. The installer
368
+ verifies this before it finishes.
369
+ - **"Setup needed" on the dashboard** — run `/provider`, then `/model`.
370
+ Windows-release installs start with the default OpenRouter credential;
371
+ pip/source installs run guided setup on first launch.
372
+ - **401/403 errors** — your key is invalid or lacks access; `/apikey` to
373
+ replace it, `/doctor` for diagnostics.
374
+ - **402 errors** — the model needs credits; `/model` and pick a free model.
375
+ - **Rate limits (429)** — wait and retry; consider a different provider.
376
+ - **Desktop actions fail** — check `/permission` (desktop requires the
377
+ `desktop` level) and `/computer` for engine status. OCR availability is
378
+ reported by `/doctor`.
379
+ - **Reset everything** — delete `~/.seedcode/` (settings, keys, history);
380
+ `.seedcode/` project memory lives in each project and is separate.
381
+
382
+ ## Security model
383
+
384
+ - Credentials stay local and provider-scoped; the embedded default key
385
+ never overrides your own key or environment variable.
386
+ - Computer actions pass permission checks, verification, and retry limits.
387
+ - `.seedcode/` memory refuses secret-looking fields at write time.
388
+ - The release build consumes the local `.env` only during packaging; the
389
+ secret never enters source control, logs, manifests, or package metadata.
390
+
391
+ Review permissions before enabling Assist Mode — especially in unfamiliar
392
+ projects or with sensitive applications.
393
+
394
+ ## Credits
395
+
396
+ - **Created by:** Al Shahriar Sowan
397
+ - **Publisher:** Eagox Studio
398
+
399
+ ## License
400
+
401
+ MIT — see [`LICENSE`](LICENSE).