seedcode-cli 8.2.5__tar.gz → 9.1.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.
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/.gitignore +9 -1
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/PKG-INFO +153 -26
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/README.md +151 -24
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/npm/README.md +1 -1
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/pyproject.toml +11 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/scripts/windows/README.md +1 -1
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/__init__.py +1 -1
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/_default_key_template.py +1 -1
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/app.py +394 -40
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/cli.py +13 -3
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/codemode.py +118 -50
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/codemode_state.py +12 -4
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/commands/__init__.py +14 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/commands/agent.py +5 -3
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/commands/assist.py +154 -43
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/commands/codemode.py +85 -9
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/commands/desktop.py +2 -2
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/commands/doctor.py +10 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/commands/mode.py +3 -3
- seedcode_cli-9.1.1/seedcode/commands/youtube_music.py +68 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/core/agent.py +99 -10
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/core/chat.py +33 -9
- seedcode_cli-9.1.1/seedcode/core/intent.py +321 -0
- seedcode_cli-9.1.1/seedcode/core/internet.py +255 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/core/models.py +1 -1
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/core/modes.py +2 -2
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/core/providers/__init__.py +20 -9
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/core/providers/default.py +1 -1
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/core/session.py +10 -2
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/core/tasks.py +22 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/default_api.py +77 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/tools/__init__.py +1 -1
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/tools/permissions.py +18 -2
- seedcode_cli-9.1.1/seedcode/tools/web.py +81 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/ui/__init__.py +20 -5
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/ui/codemode_header.py +2 -2
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/ui/content.py +1 -1
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/ui/dashboard.py +5 -5
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/ui/dialog.py +12 -4
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/ui/header.py +1 -1
- seedcode_cli-9.1.1/seedcode/ui/mode_switch.py +276 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/ui/state.py +11 -1
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/ui/statusbar.py +1 -1
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/ui/tasks.py +1 -1
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/ui/tui.py +304 -36
- seedcode_cli-9.1.1/seedcode/workspace.py +336 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/LICENSE +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/npm/LICENSE +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/scripts/pyproject_build_hook.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/__main__.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/apps/__init__.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/apps/discovery.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/apps/installer.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/apps/launcher.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/apps/verifier.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/assets/logo.png +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/branding.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/commands/about.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/commands/chat.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/commands/clear.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/commands/help.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/commands/history.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/commands/palette.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/commands/provider.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/commands/session.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/commands/status.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/commands/theme.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/computer/__init__.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/computer/browser.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/computer/browser_cdp.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/computer/browser_engine.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/computer/browser_extract.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/computer/browser_popups.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/computer/browser_selenium.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/computer/browser_skills.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/computer/catalog.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/computer/controller.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/computer/dispatcher.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/computer/dpi.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/computer/engine.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/computer/keyboard.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/computer/lifecycle_guard.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/computer/logbook.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/computer/mouse.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/computer/ocr.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/computer/operator_skills.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/computer/permissions.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/computer/recovery.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/computer/registry.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/computer/resolver.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/computer/screen.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/computer/screen_state.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/computer/selfguard.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/computer/semantic.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/computer/skills.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/computer/state.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/computer/verifier.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/computer/vision.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/computer/windows.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/config/__init__.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/config/defaults.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/config/manager.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/core/__init__.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/core/client.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/core/errors.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/core/http.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/core/identity.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/core/identity_store.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/core/lifecycle.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/core/limits.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/core/project.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/core/providers/aerolink.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/core/providers/base.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/core/providers/custom.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/core/providers/failover.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/core/providers/freemodel.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/core/providers/health.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/core/providers/ollama.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/core/providers/ollama_start.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/core/providers/openrouter.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/core/streaming.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/defaults.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/memory/__init__.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/memory/manager.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/memory/storage.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/memory/store.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/tools/base.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/tools/desktop.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/tools/filesystem.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/tools/git.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/tools/patch.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/tools/search.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/tools/terminal.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/tools/textio.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/ui/badges.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/ui/fuzzy.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/ui/layout.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/ui/menu.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/ui/palette.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/ui/progress.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/ui/prompts.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/ui/reference.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/ui/renderer.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/ui/searchbox.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/ui/selector.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/ui/session_view.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/ui/textbox.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/ui/theme.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/ui/tree.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/utils/__init__.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/utils/helpers.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/utils/logger.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/utils/terminal_env.py +0 -0
- {seedcode_cli-8.2.5 → seedcode_cli-9.1.1}/seedcode/utils/text.py +0 -0
|
@@ -63,12 +63,20 @@ Desktop.ini
|
|
|
63
63
|
.vscode/
|
|
64
64
|
.claude/
|
|
65
65
|
|
|
66
|
-
# Scratch / temporary artifacts
|
|
66
|
+
# Scratch / temporary artifacts (never part of a release)
|
|
67
|
+
# _verify/ holds throwaway virtualenvs and clean-home install tests used while
|
|
68
|
+
# validating a release build. It must stay out of the tree's package inputs:
|
|
69
|
+
# hatchling's sdist includes untracked, non-ignored files, so leaving a scratch
|
|
70
|
+
# venv here would otherwise end up inside the source distribution.
|
|
71
|
+
_verify/
|
|
67
72
|
*.tmp
|
|
68
73
|
*.bak
|
|
69
74
|
*.orig
|
|
70
75
|
*.rej
|
|
71
76
|
*.crdownload
|
|
77
|
+
_scratch*
|
|
78
|
+
/probe*
|
|
79
|
+
errorlevel
|
|
72
80
|
opencode.txt
|
|
73
81
|
V6.2.0/
|
|
74
82
|
newupdatec6.2.5/
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: seedcode-cli
|
|
3
|
-
Version:
|
|
3
|
+
Version: 9.1.1
|
|
4
4
|
Summary: Seed Code — a premium terminal-based AI coding assistant. Plant ideas. Grow code.
|
|
5
5
|
Project-URL: Homepage, https://github.com/Alshahriar-07/seedcode-cli
|
|
6
6
|
Project-URL: Repository, https://github.com/Alshahriar-07/seedcode-cli
|
|
@@ -55,7 +55,7 @@ Description-Content-Type: text/markdown
|
|
|
55
55
|
> *Plant ideas. Grow code.*
|
|
56
56
|
|
|
57
57
|
Seed Code is a premium terminal-based AI coding assistant and task runner.
|
|
58
|
-
|
|
58
|
+
v9.1.1 exposes exactly **two modes** — **Chat Mode** and **Agent Mode** — over a
|
|
59
59
|
multi-provider, multi-model engine, behind the Seed Code startup logo and a
|
|
60
60
|
compact block of live session state.
|
|
61
61
|
|
|
@@ -95,7 +95,22 @@ remain accepted aliases, but nothing in the UI presents a third mode.
|
|
|
95
95
|
`AI > ✓ Tests passed`) whose lines appear only when the underlying operation
|
|
96
96
|
really starts. There is no manual to-do list to create or manage, and
|
|
97
97
|
completing a task never closes the application.
|
|
98
|
-
- **
|
|
98
|
+
- **Intent-driven, not tool-eager:** every turn is classified (conversation,
|
|
99
|
+
research, coding, computer) before anything runs, and only the capability
|
|
100
|
+
that intent actually needs is offered to the model. A question never reads
|
|
101
|
+
your project; a coding task never sees the browser tools.
|
|
102
|
+
- **Chat → Agent escalation, and back:** a request sent in Chat Mode that has
|
|
103
|
+
to *execute* something runs with the agent engine and then returns to Chat
|
|
104
|
+
Mode. An explicit `/agent on` stays on until you turn it off.
|
|
105
|
+
- **Internet access when it is actually needed:** a research request can search
|
|
106
|
+
and read current sources in both Chat and Agent Mode — keyless search,
|
|
107
|
+
URL-attributed and character-budgeted context, and
|
|
108
|
+
`SEEDCODE_DISABLE_INTERNET=1` to turn it off. Progress is shown while it
|
|
109
|
+
works.
|
|
110
|
+
- **Permissions that stick:** the permission panel offers Allow, Allow Session
|
|
111
|
+
and Allow All, and an approved scope is no longer forgotten when a new agent
|
|
112
|
+
engine is created.
|
|
113
|
+
- **Version:** 9.1.1 (`seedcode --version`)
|
|
99
114
|
|
|
100
115
|
## Installation
|
|
101
116
|
|
|
@@ -154,8 +169,8 @@ Python required) and both run the same CLI:
|
|
|
154
169
|
|
|
155
170
|
| Download | What it is |
|
|
156
171
|
| --- | --- |
|
|
157
|
-
| `SeedCode-CLI-Setup-
|
|
158
|
-
| `SeedCode-CLI-
|
|
172
|
+
| `SeedCode-CLI-Setup-9.1.1.exe` | **Setup installer (recommended).** A wizard that installs to Program Files, adds Seed Code to the system `PATH`, creates a Start Menu shortcut with an optional desktop shortcut, verifies the installation before reporting success, and ships a clean uninstaller that never deletes your project data silently. |
|
|
173
|
+
| `SeedCode-CLI-9.1.1-windows-x64.exe` | **Standalone executable.** A single portable `seedcode.exe` — no installation and no admin rights. The Windows IRM installer above downloads exactly this file. Run it directly from wherever you put it. |
|
|
159
174
|
|
|
160
175
|
Both are published on the
|
|
161
176
|
[Releases page](https://github.com/Alshahriar-07/seedcode-cli/releases) with
|
|
@@ -164,7 +179,7 @@ their SHA256 in `SHA256SUMS.txt`.
|
|
|
164
179
|
After installing by any route:
|
|
165
180
|
|
|
166
181
|
```bash
|
|
167
|
-
seedcode --version # -> Seed Code CLI
|
|
182
|
+
seedcode --version # -> Seed Code CLI 9.1.1
|
|
168
183
|
```
|
|
169
184
|
|
|
170
185
|
> **`seedcode` not recognized?** Open a *new* terminal. `PATH` changes only
|
|
@@ -187,6 +202,30 @@ seedcode
|
|
|
187
202
|
seedcode
|
|
188
203
|
```
|
|
189
204
|
|
|
205
|
+
On first launch Seed Code asks where it may work:
|
|
206
|
+
|
|
207
|
+
```text
|
|
208
|
+
Select Workspace
|
|
209
|
+
--------------------------------------------------------------
|
|
210
|
+
Where should Seed Code work? Agent Mode reads, writes, indexes and
|
|
211
|
+
runs commands only inside the folder you pick.
|
|
212
|
+
|
|
213
|
+
1 Current Folder D:\Projects\my-site
|
|
214
|
+
2 Choose a Folder browse this PC and pick any directory
|
|
215
|
+
|
|
216
|
+
Select [1] >
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
`Current Folder` keeps the directory you launched from. `Choose a Folder` opens
|
|
220
|
+
your operating system's native folder picker and makes the chosen directory the
|
|
221
|
+
**workspace** — the single root for Agent Mode, file reads and writes, project
|
|
222
|
+
indexing, the `.seedcode` context and `plan.md`, terminal commands and
|
|
223
|
+
verification. Nothing outside that root is touched without permission.
|
|
224
|
+
|
|
225
|
+
Automation is never blocked: `SEEDCODE_WORKSPACE=<dir>` selects the workspace
|
|
226
|
+
directly, and `SEEDCODE_NO_WORKSPACE_PROMPT=1` (or a non-interactive host) keeps
|
|
227
|
+
the launch directory.
|
|
228
|
+
|
|
190
229
|
You land in the persistent Seed Code workspace: a fixed header carrying the
|
|
191
230
|
Seed Code ASCII logo, a scrolling conversation region and a fixed message
|
|
192
231
|
composer. The header is a live dashboard — it never scrolls away, and its
|
|
@@ -194,7 +233,7 @@ values (provider, model, mode, status, workspace, context budget and the masked
|
|
|
194
233
|
API key) update in place the moment they change.
|
|
195
234
|
|
|
196
235
|
```text
|
|
197
|
-
╭─ Seed Code CLI
|
|
236
|
+
╭─ Seed Code CLI v9.1.1 ───────────────────────────────────────────────────────────────────────╮
|
|
198
237
|
│ ▄█████ ▄▄▄▄▄ ▄▄▄▄▄ ▄▄▄▄ ▄█████ ▄▄▄ ▄▄▄▄ ▄▄▄▄▄ ▄█████ ██ ██ │
|
|
199
238
|
│ ▀▀▀▄▄▄ ██▄▄ ██▄▄ ██▀██ ██ ██▀██ ██▀██ ██▄▄ ██ ██ ██ │
|
|
200
239
|
│ █████▀ ██▄▄▄ ██▄▄▄ ████▀ ▀█████ ▀███▀ ████▀ ██▄▄▄ ▀█████ ██████ ██ │
|
|
@@ -243,12 +282,12 @@ Below is the rendering used when the persistent interface is not available — a
|
|
|
243
282
|
piped host, `SEEDCODE_NO_TUI=1`, or a console that cannot draw it:
|
|
244
283
|
|
|
245
284
|
```text
|
|
246
|
-
╭─ Seed Code CLI
|
|
285
|
+
╭─ Seed Code CLI v9.1.1 ───────────────────────────────────────────────────────────────────────╮
|
|
247
286
|
│ ▄█████ ▄▄▄▄▄ ▄▄▄▄▄ ▄▄▄▄ ▄█████ ▄▄▄ ▄▄▄▄ ▄▄▄▄▄ ▄█████ ██ ██ │
|
|
248
287
|
│ ▀▀▀▄▄▄ ██▄▄ ██▄▄ ██▀██ ██ ██▀██ ██▀██ ██▄▄ ██ ██ ██ │
|
|
249
288
|
│ █████▀ ██▄▄▄ ██▄▄▄ ████▀ ▀█████ ▀███▀ ████▀ ██▄▄▄ ▀█████ ██████ ██ │
|
|
250
289
|
│ │
|
|
251
|
-
│ Seed Code CLI
|
|
290
|
+
│ Seed Code CLI v9.1.1 │
|
|
252
291
|
│ Plant ideas. Grow code. │
|
|
253
292
|
│ Provider OpenRouter │
|
|
254
293
|
│ Model cohere/north-mini-code:free │
|
|
@@ -281,14 +320,18 @@ own status, and its own credential slot. It resolves its credential itself,
|
|
|
281
320
|
in this order:
|
|
282
321
|
|
|
283
322
|
1. a key stored in Default's own slot (advanced/manual use);
|
|
284
|
-
2. the embedded Seed Code release credential
|
|
323
|
+
2. the embedded Seed Code release credential — carried by the Windows
|
|
324
|
+
standalone EXE and the Setup installer only. The wheel and sdist
|
|
325
|
+
deliberately never carry it: the build refuses to package the generated
|
|
326
|
+
credential module, so a `pip install` is always a credential-free build;
|
|
285
327
|
3. `OPENROUTER_API_KEY` / `SEEDCODE_DEFAULT_API_KEY` in the environment.
|
|
286
328
|
|
|
287
329
|
It never reads or writes another provider's configuration, and no other
|
|
288
330
|
provider inherits Default's credential. If a build carries no built-in
|
|
289
|
-
credential (a source checkout
|
|
290
|
-
of failing with an authentication error — pick OpenRouter and add your
|
|
291
|
-
key.
|
|
331
|
+
credential (a source checkout or a `pip install`), Default says so plainly
|
|
332
|
+
instead of failing with an authentication error — pick OpenRouter and add your
|
|
333
|
+
own key. On the Windows EXE and Setup installer the credential is present, so
|
|
334
|
+
a fresh install is usable on the Default provider immediately.
|
|
292
335
|
|
|
293
336
|
### Your own API key
|
|
294
337
|
|
|
@@ -314,7 +357,7 @@ configuration.
|
|
|
314
357
|
|
|
315
358
|
| Provider | API key | Best for |
|
|
316
359
|
| --- | --- | --- |
|
|
317
|
-
| **Default** | not required | Working immediately on a
|
|
360
|
+
| **Default** | not required | Working immediately on a Windows EXE/Setup install (`cohere/north-mini-code:free`) |
|
|
318
361
|
| [OpenRouter](https://openrouter.ai) | required | A broad catalogue of free and paid models |
|
|
319
362
|
| FreeModel Claude | required | Claude-family models through FreeModel |
|
|
320
363
|
| FreeModel Codex | required | GPT/Codex models through FreeModel |
|
|
@@ -345,6 +388,82 @@ Permission modes (view/set with `/permission`):
|
|
|
345
388
|
| `desktop` | Add desktop automation capability after confirmation |
|
|
346
389
|
| `full_system` | Allow broader computer and filesystem actions after confirmation |
|
|
347
390
|
|
|
391
|
+
### Permission scopes
|
|
392
|
+
|
|
393
|
+
The permission panel is a bounded TUI component shown between the conversation
|
|
394
|
+
and the composer, inside the same application (never a nested prompt):
|
|
395
|
+
|
|
396
|
+
```text
|
|
397
|
+
╭─ Agent Action ───────────────────────────────────────────────╮
|
|
398
|
+
│ Agent wants to run: │
|
|
399
|
+
│ npm install │
|
|
400
|
+
│ Reason: Run command │
|
|
401
|
+
│ ❯ Allow Once approve this action only │
|
|
402
|
+
│ Always Allow this action type, this session │
|
|
403
|
+
│ Allow All every action type, this session │
|
|
404
|
+
│ Deny block this action │
|
|
405
|
+
│ Enter allow · a allow session · A allow all · d deny │
|
|
406
|
+
╰──────────────────────────────────────────────────────────────╯
|
|
407
|
+
```
|
|
408
|
+
|
|
409
|
+
- **Allow Once** approves the single action.
|
|
410
|
+
- **Always Allow** approves that action type until you exit.
|
|
411
|
+
- **Allow All** approves every action type until you exit.
|
|
412
|
+
|
|
413
|
+
Both broader scopes are in-memory session grants: they are never written to
|
|
414
|
+
`config.json`, and closing Seed Code clears them. Only the agent turn waits —
|
|
415
|
+
the event loop, the header and the composer stay live while you decide.
|
|
416
|
+
Harmless read operations (reading project files, listing directories, searching
|
|
417
|
+
sources, inspecting structure) do not prompt; consequential actions do.
|
|
418
|
+
|
|
419
|
+
## Intent and capability selection
|
|
420
|
+
|
|
421
|
+
Before a turn runs, Seed Code classifies it — deterministically, without calling
|
|
422
|
+
the model:
|
|
423
|
+
|
|
424
|
+
| Intent | Example | What it may reach for |
|
|
425
|
+
| --- | --- | --- |
|
|
426
|
+
| conversation | "How do I fix the provider switching bug?" | nothing; it answers |
|
|
427
|
+
| research | "What changed in the latest Node.js release?" | web search and fetch |
|
|
428
|
+
| coding | "Fix the provider switching bug." | project files, terminal |
|
|
429
|
+
| computer | "Play this song on YouTube." | browser/desktop, web |
|
|
430
|
+
|
|
431
|
+
The classification decides which tools are advertised (the **minimum-tool
|
|
432
|
+
principle**), whether project context is loaded, and whether the workspace and
|
|
433
|
+
desktop capabilities are available at all. Two consequences matter in practice:
|
|
434
|
+
|
|
435
|
+
- **No unnecessary file access.** A question never causes your project to be
|
|
436
|
+
read; the project index and workspace context are only loaded for a turn that
|
|
437
|
+
is actually about the project.
|
|
438
|
+
- **No unnecessary escalation.** A research question is answered in Chat Mode —
|
|
439
|
+
it does not turn into an agent task.
|
|
440
|
+
|
|
441
|
+
When a Chat Mode request is one that executes something, that single turn is
|
|
442
|
+
handed to the agent engine and control is handed back afterwards:
|
|
443
|
+
|
|
444
|
+
```text
|
|
445
|
+
You > Fix the provider switching bug in src/providers.py
|
|
446
|
+
|
|
447
|
+
AI > [Agent assist - the request asks for a change to the project]
|
|
448
|
+
··· the agent inspects, edits and verifies ···
|
|
449
|
+
AI > [Temporary agent task finished - back to Chat Mode]
|
|
450
|
+
```
|
|
451
|
+
|
|
452
|
+
## Internet access
|
|
453
|
+
|
|
454
|
+
Seed Code can retrieve current external information when a turn's intent needs
|
|
455
|
+
it, in **both** modes:
|
|
456
|
+
|
|
457
|
+
- **Chat Mode** retrieves sources before answering and shows its progress
|
|
458
|
+
(`[Accessing internet...]`, `[Reading relevant sources...]`).
|
|
459
|
+
- **Agent Mode** exposes `web_search` and `web_fetch` as read-only tools to
|
|
460
|
+
research and computer turns only. A coding turn never sees them.
|
|
461
|
+
|
|
462
|
+
Retrieval is keyless (no search API key is required or asked for), the retrieved
|
|
463
|
+
text is attributed by URL and capped to a character budget before it reaches the
|
|
464
|
+
prompt, and every failure path degrades to "no results" instead of an error.
|
|
465
|
+
`SEEDCODE_DISABLE_INTERNET=1` disables the capability for a session.
|
|
466
|
+
|
|
348
467
|
## Workspace coding (part of Agent Mode)
|
|
349
468
|
|
|
350
469
|
Agent Mode is a real coding agent for the current project. Your working
|
|
@@ -461,7 +580,7 @@ sequential console Agent Mode additionally shows the plan as a checklist. Both
|
|
|
461
580
|
reflect what the agent really did:
|
|
462
581
|
|
|
463
582
|
```text
|
|
464
|
-
╭─ SEEDCODE
|
|
583
|
+
╭─ SEEDCODE 9.1.1 • AGENT MODE ───────────────╮
|
|
465
584
|
│ ● RUNNING Task 3/8 Build authentication │
|
|
466
585
|
│ ████████████░░░░ 72% • 4m 32s • 18 calls │
|
|
467
586
|
│ → Running: pytest tests/auth │
|
|
@@ -702,21 +821,21 @@ stage fails loudly on a version mismatch, so a stale binary can never ship.
|
|
|
702
821
|
|
|
703
822
|
Details: [`scripts/windows/README.md`](scripts/windows/README.md).
|
|
704
823
|
|
|
705
|
-
### Release artifacts (
|
|
824
|
+
### Release artifacts (v9.1.1)
|
|
706
825
|
|
|
707
|
-
Release: [
|
|
826
|
+
Release: [v9.1.1](https://github.com/Alshahriar-07/seedcode-cli/releases/tag/v9.1.1)
|
|
708
827
|
|
|
709
828
|
| Artifact | Purpose |
|
|
710
829
|
| --- | --- |
|
|
711
|
-
| `SeedCode-CLI-Setup-
|
|
712
|
-
| `SeedCode-CLI-
|
|
713
|
-
| `seedcode_cli-
|
|
714
|
-
| `seedcode_cli-
|
|
830
|
+
| `SeedCode-CLI-Setup-9.1.1.exe` | Windows installer (Inno Setup) |
|
|
831
|
+
| `SeedCode-CLI-9.1.1-windows-x64.exe` | Standalone Windows EXE — downloaded by the Windows IRM installer |
|
|
832
|
+
| `seedcode_cli-9.1.1-py3-none-any.whl` | Python wheel — downloaded by the Linux IRM installer |
|
|
833
|
+
| `seedcode_cli-9.1.1.tar.gz` | Python source distribution |
|
|
715
834
|
| `SHA256SUMS.txt` | SHA256 checksums; verified by both installers |
|
|
716
835
|
|
|
717
|
-
Built artifacts are collected in `dist/release/
|
|
836
|
+
Built artifacts are collected in `dist/release/9.1.1/` during a release
|
|
718
837
|
build. Publishing (GitHub Release) is a separate step; the remote installers
|
|
719
|
-
read the release named `
|
|
838
|
+
read the release named `v9.1.1`.
|
|
720
839
|
|
|
721
840
|
### The remote installers
|
|
722
841
|
|
|
@@ -738,8 +857,9 @@ read the release named `v8.2.5`.
|
|
|
738
857
|
Run `/provider`. Default needs a built-in credential (release builds have
|
|
739
858
|
one); OpenRouter/FreeModel/AeroLink need your own key.
|
|
740
859
|
- **Default says the built-in connection is unavailable** — this build has no
|
|
741
|
-
embedded credential.
|
|
742
|
-
`
|
|
860
|
+
embedded credential. The Windows EXE and Setup installer carry one; the
|
|
861
|
+
wheel and sdist deliberately do not. Run `/provider` and choose OpenRouter,
|
|
862
|
+
or set `OPENROUTER_API_KEY` (or `SEEDCODE_DEFAULT_API_KEY`).
|
|
743
863
|
- **401/403 errors** — your key is invalid or lacks access; `/apikey` to
|
|
744
864
|
replace it, `/doctor` for diagnostics.
|
|
745
865
|
- **402 errors** — the model needs credits; `/model` and pick a free model
|
|
@@ -761,6 +881,13 @@ read the release named `v8.2.5`.
|
|
|
761
881
|
- Keys are shown masked (`sk-or-••••••••`) or not at all — never in full,
|
|
762
882
|
never in logs, never in error messages, never in a release artifact.
|
|
763
883
|
- Computer actions pass permission checks, verification, and retry limits.
|
|
884
|
+
- Internet retrieval is keyless, URL-attributed, character-budgeted, and
|
|
885
|
+
disableable with `SEEDCODE_DISABLE_INTERNET=1`; it never caches retrieved
|
|
886
|
+
pages to disk.
|
|
887
|
+
- Permission scope grants (Allow Session / Allow All) are in-memory only and are
|
|
888
|
+
never persisted to `config.json`.
|
|
889
|
+
- The built-in Default credential's state is reported as available / missing /
|
|
890
|
+
invalid / unavailable — never as a value.
|
|
764
891
|
- `.seedcode/` memory refuses secret-looking fields at write time.
|
|
765
892
|
- The release build consumes the local `.env` only during packaging; the
|
|
766
893
|
secret never enters source control, logs, manifests, or package metadata.
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
> *Plant ideas. Grow code.*
|
|
7
7
|
|
|
8
8
|
Seed Code is a premium terminal-based AI coding assistant and task runner.
|
|
9
|
-
|
|
9
|
+
v9.1.1 exposes exactly **two modes** — **Chat Mode** and **Agent Mode** — over a
|
|
10
10
|
multi-provider, multi-model engine, behind the Seed Code startup logo and a
|
|
11
11
|
compact block of live session state.
|
|
12
12
|
|
|
@@ -46,7 +46,22 @@ remain accepted aliases, but nothing in the UI presents a third mode.
|
|
|
46
46
|
`AI > ✓ Tests passed`) whose lines appear only when the underlying operation
|
|
47
47
|
really starts. There is no manual to-do list to create or manage, and
|
|
48
48
|
completing a task never closes the application.
|
|
49
|
-
- **
|
|
49
|
+
- **Intent-driven, not tool-eager:** every turn is classified (conversation,
|
|
50
|
+
research, coding, computer) before anything runs, and only the capability
|
|
51
|
+
that intent actually needs is offered to the model. A question never reads
|
|
52
|
+
your project; a coding task never sees the browser tools.
|
|
53
|
+
- **Chat → Agent escalation, and back:** a request sent in Chat Mode that has
|
|
54
|
+
to *execute* something runs with the agent engine and then returns to Chat
|
|
55
|
+
Mode. An explicit `/agent on` stays on until you turn it off.
|
|
56
|
+
- **Internet access when it is actually needed:** a research request can search
|
|
57
|
+
and read current sources in both Chat and Agent Mode — keyless search,
|
|
58
|
+
URL-attributed and character-budgeted context, and
|
|
59
|
+
`SEEDCODE_DISABLE_INTERNET=1` to turn it off. Progress is shown while it
|
|
60
|
+
works.
|
|
61
|
+
- **Permissions that stick:** the permission panel offers Allow, Allow Session
|
|
62
|
+
and Allow All, and an approved scope is no longer forgotten when a new agent
|
|
63
|
+
engine is created.
|
|
64
|
+
- **Version:** 9.1.1 (`seedcode --version`)
|
|
50
65
|
|
|
51
66
|
## Installation
|
|
52
67
|
|
|
@@ -105,8 +120,8 @@ Python required) and both run the same CLI:
|
|
|
105
120
|
|
|
106
121
|
| Download | What it is |
|
|
107
122
|
| --- | --- |
|
|
108
|
-
| `SeedCode-CLI-Setup-
|
|
109
|
-
| `SeedCode-CLI-
|
|
123
|
+
| `SeedCode-CLI-Setup-9.1.1.exe` | **Setup installer (recommended).** A wizard that installs to Program Files, adds Seed Code to the system `PATH`, creates a Start Menu shortcut with an optional desktop shortcut, verifies the installation before reporting success, and ships a clean uninstaller that never deletes your project data silently. |
|
|
124
|
+
| `SeedCode-CLI-9.1.1-windows-x64.exe` | **Standalone executable.** A single portable `seedcode.exe` — no installation and no admin rights. The Windows IRM installer above downloads exactly this file. Run it directly from wherever you put it. |
|
|
110
125
|
|
|
111
126
|
Both are published on the
|
|
112
127
|
[Releases page](https://github.com/Alshahriar-07/seedcode-cli/releases) with
|
|
@@ -115,7 +130,7 @@ their SHA256 in `SHA256SUMS.txt`.
|
|
|
115
130
|
After installing by any route:
|
|
116
131
|
|
|
117
132
|
```bash
|
|
118
|
-
seedcode --version # -> Seed Code CLI
|
|
133
|
+
seedcode --version # -> Seed Code CLI 9.1.1
|
|
119
134
|
```
|
|
120
135
|
|
|
121
136
|
> **`seedcode` not recognized?** Open a *new* terminal. `PATH` changes only
|
|
@@ -138,6 +153,30 @@ seedcode
|
|
|
138
153
|
seedcode
|
|
139
154
|
```
|
|
140
155
|
|
|
156
|
+
On first launch Seed Code asks where it may work:
|
|
157
|
+
|
|
158
|
+
```text
|
|
159
|
+
Select Workspace
|
|
160
|
+
--------------------------------------------------------------
|
|
161
|
+
Where should Seed Code work? Agent Mode reads, writes, indexes and
|
|
162
|
+
runs commands only inside the folder you pick.
|
|
163
|
+
|
|
164
|
+
1 Current Folder D:\Projects\my-site
|
|
165
|
+
2 Choose a Folder browse this PC and pick any directory
|
|
166
|
+
|
|
167
|
+
Select [1] >
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
`Current Folder` keeps the directory you launched from. `Choose a Folder` opens
|
|
171
|
+
your operating system's native folder picker and makes the chosen directory the
|
|
172
|
+
**workspace** — the single root for Agent Mode, file reads and writes, project
|
|
173
|
+
indexing, the `.seedcode` context and `plan.md`, terminal commands and
|
|
174
|
+
verification. Nothing outside that root is touched without permission.
|
|
175
|
+
|
|
176
|
+
Automation is never blocked: `SEEDCODE_WORKSPACE=<dir>` selects the workspace
|
|
177
|
+
directly, and `SEEDCODE_NO_WORKSPACE_PROMPT=1` (or a non-interactive host) keeps
|
|
178
|
+
the launch directory.
|
|
179
|
+
|
|
141
180
|
You land in the persistent Seed Code workspace: a fixed header carrying the
|
|
142
181
|
Seed Code ASCII logo, a scrolling conversation region and a fixed message
|
|
143
182
|
composer. The header is a live dashboard — it never scrolls away, and its
|
|
@@ -145,7 +184,7 @@ values (provider, model, mode, status, workspace, context budget and the masked
|
|
|
145
184
|
API key) update in place the moment they change.
|
|
146
185
|
|
|
147
186
|
```text
|
|
148
|
-
╭─ Seed Code CLI
|
|
187
|
+
╭─ Seed Code CLI v9.1.1 ───────────────────────────────────────────────────────────────────────╮
|
|
149
188
|
│ ▄█████ ▄▄▄▄▄ ▄▄▄▄▄ ▄▄▄▄ ▄█████ ▄▄▄ ▄▄▄▄ ▄▄▄▄▄ ▄█████ ██ ██ │
|
|
150
189
|
│ ▀▀▀▄▄▄ ██▄▄ ██▄▄ ██▀██ ██ ██▀██ ██▀██ ██▄▄ ██ ██ ██ │
|
|
151
190
|
│ █████▀ ██▄▄▄ ██▄▄▄ ████▀ ▀█████ ▀███▀ ████▀ ██▄▄▄ ▀█████ ██████ ██ │
|
|
@@ -194,12 +233,12 @@ Below is the rendering used when the persistent interface is not available — a
|
|
|
194
233
|
piped host, `SEEDCODE_NO_TUI=1`, or a console that cannot draw it:
|
|
195
234
|
|
|
196
235
|
```text
|
|
197
|
-
╭─ Seed Code CLI
|
|
236
|
+
╭─ Seed Code CLI v9.1.1 ───────────────────────────────────────────────────────────────────────╮
|
|
198
237
|
│ ▄█████ ▄▄▄▄▄ ▄▄▄▄▄ ▄▄▄▄ ▄█████ ▄▄▄ ▄▄▄▄ ▄▄▄▄▄ ▄█████ ██ ██ │
|
|
199
238
|
│ ▀▀▀▄▄▄ ██▄▄ ██▄▄ ██▀██ ██ ██▀██ ██▀██ ██▄▄ ██ ██ ██ │
|
|
200
239
|
│ █████▀ ██▄▄▄ ██▄▄▄ ████▀ ▀█████ ▀███▀ ████▀ ██▄▄▄ ▀█████ ██████ ██ │
|
|
201
240
|
│ │
|
|
202
|
-
│ Seed Code CLI
|
|
241
|
+
│ Seed Code CLI v9.1.1 │
|
|
203
242
|
│ Plant ideas. Grow code. │
|
|
204
243
|
│ Provider OpenRouter │
|
|
205
244
|
│ Model cohere/north-mini-code:free │
|
|
@@ -232,14 +271,18 @@ own status, and its own credential slot. It resolves its credential itself,
|
|
|
232
271
|
in this order:
|
|
233
272
|
|
|
234
273
|
1. a key stored in Default's own slot (advanced/manual use);
|
|
235
|
-
2. the embedded Seed Code release credential
|
|
274
|
+
2. the embedded Seed Code release credential — carried by the Windows
|
|
275
|
+
standalone EXE and the Setup installer only. The wheel and sdist
|
|
276
|
+
deliberately never carry it: the build refuses to package the generated
|
|
277
|
+
credential module, so a `pip install` is always a credential-free build;
|
|
236
278
|
3. `OPENROUTER_API_KEY` / `SEEDCODE_DEFAULT_API_KEY` in the environment.
|
|
237
279
|
|
|
238
280
|
It never reads or writes another provider's configuration, and no other
|
|
239
281
|
provider inherits Default's credential. If a build carries no built-in
|
|
240
|
-
credential (a source checkout
|
|
241
|
-
of failing with an authentication error — pick OpenRouter and add your
|
|
242
|
-
key.
|
|
282
|
+
credential (a source checkout or a `pip install`), Default says so plainly
|
|
283
|
+
instead of failing with an authentication error — pick OpenRouter and add your
|
|
284
|
+
own key. On the Windows EXE and Setup installer the credential is present, so
|
|
285
|
+
a fresh install is usable on the Default provider immediately.
|
|
243
286
|
|
|
244
287
|
### Your own API key
|
|
245
288
|
|
|
@@ -265,7 +308,7 @@ configuration.
|
|
|
265
308
|
|
|
266
309
|
| Provider | API key | Best for |
|
|
267
310
|
| --- | --- | --- |
|
|
268
|
-
| **Default** | not required | Working immediately on a
|
|
311
|
+
| **Default** | not required | Working immediately on a Windows EXE/Setup install (`cohere/north-mini-code:free`) |
|
|
269
312
|
| [OpenRouter](https://openrouter.ai) | required | A broad catalogue of free and paid models |
|
|
270
313
|
| FreeModel Claude | required | Claude-family models through FreeModel |
|
|
271
314
|
| FreeModel Codex | required | GPT/Codex models through FreeModel |
|
|
@@ -296,6 +339,82 @@ Permission modes (view/set with `/permission`):
|
|
|
296
339
|
| `desktop` | Add desktop automation capability after confirmation |
|
|
297
340
|
| `full_system` | Allow broader computer and filesystem actions after confirmation |
|
|
298
341
|
|
|
342
|
+
### Permission scopes
|
|
343
|
+
|
|
344
|
+
The permission panel is a bounded TUI component shown between the conversation
|
|
345
|
+
and the composer, inside the same application (never a nested prompt):
|
|
346
|
+
|
|
347
|
+
```text
|
|
348
|
+
╭─ Agent Action ───────────────────────────────────────────────╮
|
|
349
|
+
│ Agent wants to run: │
|
|
350
|
+
│ npm install │
|
|
351
|
+
│ Reason: Run command │
|
|
352
|
+
│ ❯ Allow Once approve this action only │
|
|
353
|
+
│ Always Allow this action type, this session │
|
|
354
|
+
│ Allow All every action type, this session │
|
|
355
|
+
│ Deny block this action │
|
|
356
|
+
│ Enter allow · a allow session · A allow all · d deny │
|
|
357
|
+
╰──────────────────────────────────────────────────────────────╯
|
|
358
|
+
```
|
|
359
|
+
|
|
360
|
+
- **Allow Once** approves the single action.
|
|
361
|
+
- **Always Allow** approves that action type until you exit.
|
|
362
|
+
- **Allow All** approves every action type until you exit.
|
|
363
|
+
|
|
364
|
+
Both broader scopes are in-memory session grants: they are never written to
|
|
365
|
+
`config.json`, and closing Seed Code clears them. Only the agent turn waits —
|
|
366
|
+
the event loop, the header and the composer stay live while you decide.
|
|
367
|
+
Harmless read operations (reading project files, listing directories, searching
|
|
368
|
+
sources, inspecting structure) do not prompt; consequential actions do.
|
|
369
|
+
|
|
370
|
+
## Intent and capability selection
|
|
371
|
+
|
|
372
|
+
Before a turn runs, Seed Code classifies it — deterministically, without calling
|
|
373
|
+
the model:
|
|
374
|
+
|
|
375
|
+
| Intent | Example | What it may reach for |
|
|
376
|
+
| --- | --- | --- |
|
|
377
|
+
| conversation | "How do I fix the provider switching bug?" | nothing; it answers |
|
|
378
|
+
| research | "What changed in the latest Node.js release?" | web search and fetch |
|
|
379
|
+
| coding | "Fix the provider switching bug." | project files, terminal |
|
|
380
|
+
| computer | "Play this song on YouTube." | browser/desktop, web |
|
|
381
|
+
|
|
382
|
+
The classification decides which tools are advertised (the **minimum-tool
|
|
383
|
+
principle**), whether project context is loaded, and whether the workspace and
|
|
384
|
+
desktop capabilities are available at all. Two consequences matter in practice:
|
|
385
|
+
|
|
386
|
+
- **No unnecessary file access.** A question never causes your project to be
|
|
387
|
+
read; the project index and workspace context are only loaded for a turn that
|
|
388
|
+
is actually about the project.
|
|
389
|
+
- **No unnecessary escalation.** A research question is answered in Chat Mode —
|
|
390
|
+
it does not turn into an agent task.
|
|
391
|
+
|
|
392
|
+
When a Chat Mode request is one that executes something, that single turn is
|
|
393
|
+
handed to the agent engine and control is handed back afterwards:
|
|
394
|
+
|
|
395
|
+
```text
|
|
396
|
+
You > Fix the provider switching bug in src/providers.py
|
|
397
|
+
|
|
398
|
+
AI > [Agent assist - the request asks for a change to the project]
|
|
399
|
+
··· the agent inspects, edits and verifies ···
|
|
400
|
+
AI > [Temporary agent task finished - back to Chat Mode]
|
|
401
|
+
```
|
|
402
|
+
|
|
403
|
+
## Internet access
|
|
404
|
+
|
|
405
|
+
Seed Code can retrieve current external information when a turn's intent needs
|
|
406
|
+
it, in **both** modes:
|
|
407
|
+
|
|
408
|
+
- **Chat Mode** retrieves sources before answering and shows its progress
|
|
409
|
+
(`[Accessing internet...]`, `[Reading relevant sources...]`).
|
|
410
|
+
- **Agent Mode** exposes `web_search` and `web_fetch` as read-only tools to
|
|
411
|
+
research and computer turns only. A coding turn never sees them.
|
|
412
|
+
|
|
413
|
+
Retrieval is keyless (no search API key is required or asked for), the retrieved
|
|
414
|
+
text is attributed by URL and capped to a character budget before it reaches the
|
|
415
|
+
prompt, and every failure path degrades to "no results" instead of an error.
|
|
416
|
+
`SEEDCODE_DISABLE_INTERNET=1` disables the capability for a session.
|
|
417
|
+
|
|
299
418
|
## Workspace coding (part of Agent Mode)
|
|
300
419
|
|
|
301
420
|
Agent Mode is a real coding agent for the current project. Your working
|
|
@@ -412,7 +531,7 @@ sequential console Agent Mode additionally shows the plan as a checklist. Both
|
|
|
412
531
|
reflect what the agent really did:
|
|
413
532
|
|
|
414
533
|
```text
|
|
415
|
-
╭─ SEEDCODE
|
|
534
|
+
╭─ SEEDCODE 9.1.1 • AGENT MODE ───────────────╮
|
|
416
535
|
│ ● RUNNING Task 3/8 Build authentication │
|
|
417
536
|
│ ████████████░░░░ 72% • 4m 32s • 18 calls │
|
|
418
537
|
│ → Running: pytest tests/auth │
|
|
@@ -653,21 +772,21 @@ stage fails loudly on a version mismatch, so a stale binary can never ship.
|
|
|
653
772
|
|
|
654
773
|
Details: [`scripts/windows/README.md`](scripts/windows/README.md).
|
|
655
774
|
|
|
656
|
-
### Release artifacts (
|
|
775
|
+
### Release artifacts (v9.1.1)
|
|
657
776
|
|
|
658
|
-
Release: [
|
|
777
|
+
Release: [v9.1.1](https://github.com/Alshahriar-07/seedcode-cli/releases/tag/v9.1.1)
|
|
659
778
|
|
|
660
779
|
| Artifact | Purpose |
|
|
661
780
|
| --- | --- |
|
|
662
|
-
| `SeedCode-CLI-Setup-
|
|
663
|
-
| `SeedCode-CLI-
|
|
664
|
-
| `seedcode_cli-
|
|
665
|
-
| `seedcode_cli-
|
|
781
|
+
| `SeedCode-CLI-Setup-9.1.1.exe` | Windows installer (Inno Setup) |
|
|
782
|
+
| `SeedCode-CLI-9.1.1-windows-x64.exe` | Standalone Windows EXE — downloaded by the Windows IRM installer |
|
|
783
|
+
| `seedcode_cli-9.1.1-py3-none-any.whl` | Python wheel — downloaded by the Linux IRM installer |
|
|
784
|
+
| `seedcode_cli-9.1.1.tar.gz` | Python source distribution |
|
|
666
785
|
| `SHA256SUMS.txt` | SHA256 checksums; verified by both installers |
|
|
667
786
|
|
|
668
|
-
Built artifacts are collected in `dist/release/
|
|
787
|
+
Built artifacts are collected in `dist/release/9.1.1/` during a release
|
|
669
788
|
build. Publishing (GitHub Release) is a separate step; the remote installers
|
|
670
|
-
read the release named `
|
|
789
|
+
read the release named `v9.1.1`.
|
|
671
790
|
|
|
672
791
|
### The remote installers
|
|
673
792
|
|
|
@@ -689,8 +808,9 @@ read the release named `v8.2.5`.
|
|
|
689
808
|
Run `/provider`. Default needs a built-in credential (release builds have
|
|
690
809
|
one); OpenRouter/FreeModel/AeroLink need your own key.
|
|
691
810
|
- **Default says the built-in connection is unavailable** — this build has no
|
|
692
|
-
embedded credential.
|
|
693
|
-
`
|
|
811
|
+
embedded credential. The Windows EXE and Setup installer carry one; the
|
|
812
|
+
wheel and sdist deliberately do not. Run `/provider` and choose OpenRouter,
|
|
813
|
+
or set `OPENROUTER_API_KEY` (or `SEEDCODE_DEFAULT_API_KEY`).
|
|
694
814
|
- **401/403 errors** — your key is invalid or lacks access; `/apikey` to
|
|
695
815
|
replace it, `/doctor` for diagnostics.
|
|
696
816
|
- **402 errors** — the model needs credits; `/model` and pick a free model
|
|
@@ -712,6 +832,13 @@ read the release named `v8.2.5`.
|
|
|
712
832
|
- Keys are shown masked (`sk-or-••••••••`) or not at all — never in full,
|
|
713
833
|
never in logs, never in error messages, never in a release artifact.
|
|
714
834
|
- Computer actions pass permission checks, verification, and retry limits.
|
|
835
|
+
- Internet retrieval is keyless, URL-attributed, character-budgeted, and
|
|
836
|
+
disableable with `SEEDCODE_DISABLE_INTERNET=1`; it never caches retrieved
|
|
837
|
+
pages to disk.
|
|
838
|
+
- Permission scope grants (Allow Session / Allow All) are in-memory only and are
|
|
839
|
+
never persisted to `config.json`.
|
|
840
|
+
- The built-in Default credential's state is reported as available / missing /
|
|
841
|
+
invalid / unavailable — never as a value.
|
|
715
842
|
- `.seedcode/` memory refuses secret-looking fields at write time.
|
|
716
843
|
- The release build consumes the local `.env` only during packaging; the
|
|
717
844
|
secret never enters source control, logs, manifests, or package metadata.
|
|
@@ -16,7 +16,7 @@ Releases:
|
|
|
16
16
|
A compatibility launcher retained for users who already manage tooling through
|
|
17
17
|
npm. It is a thin wrapper around the official release: on Windows it downloads
|
|
18
18
|
the official `SeedCode-CLI-<version>-windows-x64.exe` for this package's
|
|
19
|
-
version (currently **
|
|
19
|
+
version (currently **9.1.1**) from the GitHub release, verifies its SHA256
|
|
20
20
|
against the release's `SHA256SUMS.txt`, caches it under `~/.seedcode/npm/`,
|
|
21
21
|
and runs it — Python is never required. On Linux and macOS it defers to the
|
|
22
22
|
official installer rather than shipping a binary.
|
|
@@ -93,10 +93,21 @@ path = "seedcode/__init__.py"
|
|
|
93
93
|
path = "scripts/pyproject_build_hook.py"
|
|
94
94
|
require-runtime-dependencies = false
|
|
95
95
|
|
|
96
|
+
# Pin Core Metadata 2.4 rather than letting hatchling emit its 2.5 default.
|
|
97
|
+
# Everything this project publishes is expressible in 2.4 (PEP 639's
|
|
98
|
+
# License-Expression / License-File landed in 2.4; only PEP 794's Import-Name /
|
|
99
|
+
# Import-Namespace need 2.5, and this distribution declares neither), while
|
|
100
|
+
# twine 6.x still *hard-caps* the metadata versions it accepts at 2.4 - it
|
|
101
|
+
# monkeypatches packaging._VALID_METADATA_VERSIONS to drop 2.5. The release
|
|
102
|
+
# workflow runs `python -m twine check dist/*` as a publish gate, so a 2.5
|
|
103
|
+
# wheel would fail its own release. 2.4 is the newest version the whole
|
|
104
|
+
# toolchain round-trips.
|
|
96
105
|
[tool.hatch.build.targets.wheel]
|
|
97
106
|
packages = ["seedcode"]
|
|
107
|
+
core-metadata-version = "2.4"
|
|
98
108
|
|
|
99
109
|
[tool.hatch.build.targets.sdist]
|
|
100
110
|
# The build hook ships in the sdist: pip rebuilds the wheel from the
|
|
101
111
|
# extracted sdist, and hatchling must be able to load the hook there.
|
|
102
112
|
include = ["seedcode", "scripts/pyproject_build_hook.py", "README.md", "LICENSE"]
|
|
113
|
+
core-metadata-version = "2.4"
|
|
@@ -76,7 +76,7 @@ Python runtime and every dependency inside it.
|
|
|
76
76
|
publishes a verified copy to the repository root as the stable
|
|
77
77
|
**`seedcode-cli-setup.exe`**, and stages the versioned copy for release as
|
|
78
78
|
**`SeedCode-CLI-Setup-<version>.exe`** — the name attached to the GitHub
|
|
79
|
-
release for that version (currently **
|
|
79
|
+
release for that version (currently **9.1.1**), alongside the standalone
|
|
80
80
|
`SeedCode-CLI-<version>-windows-x64.exe` and `SHA256SUMS.txt` (which is what
|
|
81
81
|
the remote installers verify against).
|
|
82
82
|
|