seedcode-cli 6.2.0__tar.gz → 7.1.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.
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/.gitignore +3 -1
- seedcode_cli-7.1.0/PKG-INFO +653 -0
- seedcode_cli-7.1.0/README.md +606 -0
- seedcode_cli-7.1.0/npm/README.md +33 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/scripts/windows/README.md +11 -8
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/__init__.py +5 -2
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/_default_key_template.py +5 -1
- seedcode_cli-7.1.0/seedcode/app.py +1094 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/branding.py +6 -1
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/cli.py +11 -3
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/codemode.py +48 -8
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/commands/__init__.py +22 -2
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/commands/about.py +10 -1
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/commands/agent.py +9 -3
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/commands/assist.py +4 -2
- seedcode_cli-7.1.0/seedcode/commands/chat.py +46 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/commands/codemode.py +13 -3
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/commands/desktop.py +2 -1
- seedcode_cli-7.1.0/seedcode/commands/mode.py +52 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/commands/provider.py +52 -16
- seedcode_cli-7.1.0/seedcode/commands/session.py +137 -0
- seedcode_cli-7.1.0/seedcode/commands/status.py +138 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/computer/browser.py +15 -2
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/computer/browser_engine.py +23 -3
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/computer/controller.py +16 -3
- seedcode_cli-7.1.0/seedcode/computer/lifecycle_guard.py +173 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/computer/windows.py +13 -1
- seedcode_cli-7.1.0/seedcode/config/__init__.py +26 -0
- seedcode_cli-7.1.0/seedcode/config/defaults.py +49 -0
- seedcode_cli-7.1.0/seedcode/config/manager.py +244 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/core/agent.py +269 -21
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/core/chat.py +33 -3
- seedcode_cli-7.1.0/seedcode/core/http.py +171 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/core/models.py +83 -15
- seedcode_cli-7.1.0/seedcode/core/providers/__init__.py +85 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/core/providers/base.py +24 -2
- seedcode_cli-7.1.0/seedcode/core/providers/default.py +157 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/core/providers/ollama.py +9 -1
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/core/providers/openrouter.py +80 -29
- seedcode_cli-7.1.0/seedcode/core/session.py +967 -0
- seedcode_cli-7.1.0/seedcode/core/tasks.py +902 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/default_api.py +54 -3
- seedcode_cli-7.1.0/seedcode/defaults.py +41 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/tools/base.py +11 -1
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/tools/filesystem.py +13 -3
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/tools/terminal.py +34 -6
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/tools/textio.py +10 -2
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/ui/__init__.py +110 -15
- seedcode_cli-7.1.0/seedcode/ui/codemode_header.py +348 -0
- seedcode_cli-7.1.0/seedcode/ui/dashboard.py +423 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/ui/layout.py +39 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/ui/menu.py +4 -0
- seedcode_cli-7.1.0/seedcode/ui/reference.py +46 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/ui/renderer.py +23 -4
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/ui/selector.py +24 -0
- seedcode_cli-7.1.0/seedcode/ui/session_view.py +280 -0
- seedcode_cli-7.1.0/seedcode/ui/tasks.py +698 -0
- seedcode_cli-7.1.0/seedcode/utils/terminal_env.py +225 -0
- seedcode_cli-7.1.0/seedcode/utils/text.py +107 -0
- seedcode_cli-6.2.0/PKG-INFO +0 -401
- seedcode_cli-6.2.0/README.md +0 -354
- seedcode_cli-6.2.0/npm/README.md +0 -22
- seedcode_cli-6.2.0/seedcode/app.py +0 -546
- seedcode_cli-6.2.0/seedcode/assets/logo.txt +0 -15
- seedcode_cli-6.2.0/seedcode/config/__init__.py +0 -8
- seedcode_cli-6.2.0/seedcode/config/defaults.py +0 -22
- seedcode_cli-6.2.0/seedcode/config/manager.py +0 -88
- seedcode_cli-6.2.0/seedcode/core/http.py +0 -62
- seedcode_cli-6.2.0/seedcode/core/providers/__init__.py +0 -58
- seedcode_cli-6.2.0/seedcode/ui/banner.py +0 -78
- seedcode_cli-6.2.0/seedcode/ui/dashboard.py +0 -358
- seedcode_cli-6.2.0/seedcode/ui/logo.py +0 -134
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/LICENSE +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/npm/LICENSE +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/pyproject.toml +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/scripts/pyproject_build_hook.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/__main__.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/apps/__init__.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/apps/discovery.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/apps/installer.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/apps/launcher.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/apps/verifier.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/assets/logo.png +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/codemode_state.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/commands/clear.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/commands/doctor.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/commands/help.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/commands/history.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/commands/palette.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/commands/theme.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/computer/__init__.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/computer/browser_cdp.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/computer/browser_extract.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/computer/browser_popups.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/computer/browser_selenium.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/computer/browser_skills.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/computer/catalog.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/computer/dispatcher.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/computer/dpi.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/computer/engine.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/computer/keyboard.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/computer/logbook.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/computer/mouse.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/computer/ocr.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/computer/operator_skills.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/computer/permissions.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/computer/recovery.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/computer/registry.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/computer/resolver.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/computer/screen.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/computer/screen_state.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/computer/selfguard.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/computer/semantic.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/computer/skills.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/computer/state.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/computer/verifier.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/computer/vision.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/core/__init__.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/core/client.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/core/errors.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/core/identity.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/core/identity_store.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/core/lifecycle.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/core/limits.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/core/project.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/core/providers/aerolink.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/core/providers/freemodel.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/core/streaming.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/memory/__init__.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/memory/manager.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/memory/storage.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/memory/store.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/tools/__init__.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/tools/desktop.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/tools/git.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/tools/patch.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/tools/permissions.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/tools/search.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/ui/badges.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/ui/dialog.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/ui/fuzzy.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/ui/palette.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/ui/progress.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/ui/prompts.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/ui/searchbox.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/ui/statusbar.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/ui/textbox.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/ui/theme.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/ui/tree.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/utils/__init__.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/utils/helpers.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-7.1.0}/seedcode/utils/logger.py +0 -0
|
@@ -0,0 +1,653 @@
|
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
|
+
Name: seedcode-cli
|
|
3
|
+
Version: 7.1.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. v7.1.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
|
+
— behind a structured startup dashboard that carries the brand, the live
|
|
59
|
+
session state and the task flow, with no ASCII logo.
|
|
60
|
+
|
|
61
|
+
- **Works out of the box:** the shipped provider is **Default** — Seed Code's
|
|
62
|
+
own built-in connection. It needs **no API key** and ships pointed at
|
|
63
|
+
`cohere/north-mini-code:free`, so a fresh installation can work
|
|
64
|
+
immediately. Bring your own key at any time with `/provider` → OpenRouter,
|
|
65
|
+
FreeModel or AeroLink.
|
|
66
|
+
- **Structured dashboard:** the brand on the left, identity (`Seed Code |
|
|
67
|
+
Eagox Studio`), the tagline and the live provider, model, mode and status on
|
|
68
|
+
the right, behind a responsive bordered panel — and no ASCII logo anywhere.
|
|
69
|
+
- **Step-by-step tasks:** Code, Assist and Agent Mode show a live task flow
|
|
70
|
+
(analyze → inspect → plan → implement → test → verify) that reflects what
|
|
71
|
+
the agent really did, and hands the prompt back when the task ends.
|
|
72
|
+
- **Version:** 7.1.0 (`seedcode --version`)
|
|
73
|
+
|
|
74
|
+
## Installation
|
|
75
|
+
|
|
76
|
+
Seed Code CLI is distributed through the official IRM installer system and
|
|
77
|
+
[GitHub Releases](https://github.com/Alshahriar-07/seedcode-cli/releases).
|
|
78
|
+
The installers download the official release artifact for your platform,
|
|
79
|
+
verify its SHA256 against the release's `SHA256SUMS.txt`, and then verify the
|
|
80
|
+
installed command.
|
|
81
|
+
|
|
82
|
+
### Windows
|
|
83
|
+
|
|
84
|
+
PowerShell 5.1 or newer:
|
|
85
|
+
|
|
86
|
+
```powershell
|
|
87
|
+
irm https://seedcode-cli.vercel.app/install.ps1 | iex
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
Installs for the current user (no administrator rights, no Python) into
|
|
91
|
+
`%LOCALAPPDATA%\Programs\SeedCode`, adds `seedcode` to your user `PATH`, and
|
|
92
|
+
prints the verified version when it finishes.
|
|
93
|
+
|
|
94
|
+
### Linux
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
curl -fsSL https://seedcode-cli.vercel.app/install.sh | bash
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
Installs for the current user. No prebuilt Linux/macOS binary is published in
|
|
101
|
+
this release: `install.sh` installs the official Python wheel from the same
|
|
102
|
+
release with `pip install --user`, so it needs **Python 3.12 or newer (with
|
|
103
|
+
pip)** on the machine. If a prebuilt binary for your platform is ever
|
|
104
|
+
published, it is used directly instead. Either way `install.sh` installs only
|
|
105
|
+
what it can verify against the release's `SHA256SUMS.txt` — a missing
|
|
106
|
+
checksum entry, a mismatching digest, or a host with no SHA256 tool makes it
|
|
107
|
+
stop instead of installing unverified code.
|
|
108
|
+
|
|
109
|
+
### Windows installer (GUI alternative)
|
|
110
|
+
|
|
111
|
+
The release publishes two Windows binaries; both are fully self-contained (no
|
|
112
|
+
Python required) and both run the same CLI:
|
|
113
|
+
|
|
114
|
+
| Download | What it is |
|
|
115
|
+
| --- | --- |
|
|
116
|
+
| `SeedCode-CLI-Setup-7.1.0.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. |
|
|
117
|
+
| `SeedCode-CLI-7.1.0-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. |
|
|
118
|
+
|
|
119
|
+
Both are published on the
|
|
120
|
+
[Releases page](https://github.com/Alshahriar-07/seedcode-cli/releases) with
|
|
121
|
+
their SHA256 in `SHA256SUMS.txt`.
|
|
122
|
+
|
|
123
|
+
After installing by any route:
|
|
124
|
+
|
|
125
|
+
```bash
|
|
126
|
+
seedcode --version # -> Seed Code CLI 7.1.0
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
> **`seedcode` not recognized?** Open a *new* terminal. `PATH` changes only
|
|
130
|
+
> apply to fresh sessions; the installers verify this before they finish.
|
|
131
|
+
|
|
132
|
+
### From source (development)
|
|
133
|
+
|
|
134
|
+
Requires **Python 3.12 or newer**:
|
|
135
|
+
|
|
136
|
+
```bash
|
|
137
|
+
git clone https://github.com/Alshahriar-07/seedcode-cli.git
|
|
138
|
+
cd seedcode-cli
|
|
139
|
+
python -m pip install -e ".[dev]"
|
|
140
|
+
seedcode
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
## First run
|
|
144
|
+
|
|
145
|
+
```bash
|
|
146
|
+
seedcode
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
You land on the Seed Code dashboard — the structured startup panel: branding
|
|
150
|
+
on the left, a divider, and the live session state on the right. The ASCII
|
|
151
|
+
logo is permanently gone (the brand is plain text); the layout, sections and
|
|
152
|
+
status indicators stay:
|
|
153
|
+
|
|
154
|
+
```text
|
|
155
|
+
╭─ Seed Code CLI v7.1.0 ───────────────────────────────────────────────────────────────────────╮
|
|
156
|
+
│ │
|
|
157
|
+
│ Seed Code │ Seed Code | Eagox Studio │
|
|
158
|
+
│ AI CODING AGENT │ Plant ideas. Grow code. │
|
|
159
|
+
│ │ Provider Default │
|
|
160
|
+
│ │ Model cohere/north-mini-code:free │
|
|
161
|
+
│ │ Mode Chat • ● Ready │
|
|
162
|
+
╰──────────────────────────────────────────────────────────────────────────────────────────────╯
|
|
163
|
+
Commands /help /status /codemode /assist /provider /model
|
|
164
|
+
You >
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
The panel is 96 columns wide on a wide terminal — wide enough that the whole
|
|
168
|
+
`cohere/north-mini-code:free` model name fits without clipping — and kept
|
|
169
|
+
deliberately short (one blank row under the title, then the live rows; no
|
|
170
|
+
padding rows to scroll past). Narrower terminals slide the info section left
|
|
171
|
+
so the whole model name still fits (80 columns shows it in full), then fall
|
|
172
|
+
back to a compact one-row panel, then to plain lines. Consoles that cannot
|
|
173
|
+
draw (or encode) the glyphs get the same layout in ASCII.
|
|
174
|
+
|
|
175
|
+
The `API Key` row appears **only** for providers that actually require a key,
|
|
176
|
+
so Default and Ollama never show one. `cohere/north-mini-code:free` is the
|
|
177
|
+
ships-with default for **Default only**; every other provider keeps its own
|
|
178
|
+
model, and switching providers never copies one model onto another.
|
|
179
|
+
|
|
180
|
+
### Default provider (no API key)
|
|
181
|
+
|
|
182
|
+
**Default** is Seed Code's built-in API connection and the provider the app
|
|
183
|
+
ships with. It is a first-class provider of its own — separate from
|
|
184
|
+
OpenRouter everywhere: its own entry in `/provider`, its own saved model, its
|
|
185
|
+
own status, and its own credential slot. It resolves its credential itself,
|
|
186
|
+
in this order:
|
|
187
|
+
|
|
188
|
+
1. a key stored in Default's own slot (advanced/manual use);
|
|
189
|
+
2. the embedded Seed Code release credential (release artifacts only);
|
|
190
|
+
3. `OPENROUTER_API_KEY` / `SEEDCODE_DEFAULT_API_KEY` in the environment.
|
|
191
|
+
|
|
192
|
+
It never reads or writes another provider's configuration, and no other
|
|
193
|
+
provider inherits Default's credential. If a build carries no built-in
|
|
194
|
+
credential (a source checkout, for example), Default says so plainly instead
|
|
195
|
+
of failing with an authentication error — pick OpenRouter and add your own
|
|
196
|
+
key.
|
|
197
|
+
|
|
198
|
+
### Your own API key
|
|
199
|
+
|
|
200
|
+
Use `/apikey` (view / replace / remove / validate) or set an environment
|
|
201
|
+
variable:
|
|
202
|
+
|
|
203
|
+
```bash
|
|
204
|
+
export OPENROUTER_API_KEY="sk-or-..." # PowerShell: $env:OPENROUTER_API_KEY = "..."
|
|
205
|
+
export FREEMODEL_API_KEY="fe_oa_..."
|
|
206
|
+
export AEROLINK_API_KEY="..."
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
Keys are validated with a real authenticated request before they are saved.
|
|
210
|
+
They are stored per provider in `~/.seedcode/config.json`, never in any
|
|
211
|
+
project directory, and never printed, logged, or included in an error
|
|
212
|
+
message.
|
|
213
|
+
|
|
214
|
+
### Providers
|
|
215
|
+
|
|
216
|
+
Every provider is fully independent: its own API key, model, settings, and
|
|
217
|
+
connection status. Switching providers never touches another one's
|
|
218
|
+
configuration.
|
|
219
|
+
|
|
220
|
+
| Provider | API key | Best for |
|
|
221
|
+
| --- | --- | --- |
|
|
222
|
+
| **Default** | not required | Working immediately on a release install (`cohere/north-mini-code:free`) |
|
|
223
|
+
| [OpenRouter](https://openrouter.ai) | required | A broad catalogue of free and paid models |
|
|
224
|
+
| FreeModel Claude | required | Claude-family models through FreeModel |
|
|
225
|
+
| FreeModel Codex | required | GPT/Codex models through FreeModel |
|
|
226
|
+
| [AeroLink](https://aerolink.lat) | required | Anthropic-compatible gateway access |
|
|
227
|
+
| [Ollama](https://ollama.com) | not required | Local, key-free models |
|
|
228
|
+
|
|
229
|
+
Switch with `/provider` — the picker groups choices by what they need
|
|
230
|
+
(*Built-in · no API key*, *Your own API key*, *Local*) and shows each
|
|
231
|
+
provider's backend, current model, and key state. Pick models with `/model`
|
|
232
|
+
(OpenRouter filters `free` vs `pro` models; FreeModel offers Auto mode).
|
|
233
|
+
|
|
234
|
+
## Assist Mode and permissions
|
|
235
|
+
|
|
236
|
+
Assist Mode lets the model act on your project through the tool engine:
|
|
237
|
+
|
|
238
|
+
```text
|
|
239
|
+
/assist on
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
Permission modes (view/set with `/permission`):
|
|
243
|
+
|
|
244
|
+
| Mode | Behavior |
|
|
245
|
+
| --- | --- |
|
|
246
|
+
| `read_only` | Inspect files, screens, windows, and state without mutations |
|
|
247
|
+
| `workspace` | Allow approved changes inside the active workspace |
|
|
248
|
+
| `desktop` | Add desktop automation capability after confirmation |
|
|
249
|
+
| `full_system` | Allow broader computer and filesystem actions after confirmation |
|
|
250
|
+
|
|
251
|
+
## Code Mode
|
|
252
|
+
|
|
253
|
+
Code Mode is Assist Mode sharpened into a real coding agent for the current
|
|
254
|
+
project. Your working directory becomes the **workspace**:
|
|
255
|
+
|
|
256
|
+
```text
|
|
257
|
+
/codemode on # treat the CWD as the workspace, enable .seedcode memory
|
|
258
|
+
/codemode off # back to the previous mode (memory stays on disk)
|
|
259
|
+
/codemode status # workspace, memory, and index state
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
In Code Mode the agent consults the project index, finds relevant files with
|
|
263
|
+
targeted searches, reads only what it needs, plans, edits, runs a relevant
|
|
264
|
+
command or test, and reports what changed. File operations stay inside the
|
|
265
|
+
workspace root.
|
|
266
|
+
|
|
267
|
+
### Persistent task execution (v7.1.0)
|
|
268
|
+
|
|
269
|
+
Code Mode is a **long-running agent**, not one model call. A request becomes a
|
|
270
|
+
plan (a task graph with dependencies and acceptance criteria), and the session
|
|
271
|
+
runs task after task until each one is *verified*:
|
|
272
|
+
|
|
273
|
+
```text
|
|
274
|
+
Plan (3 tasks) → Task 1 → verify → Task 2 → verify → Task 3 → verify
|
|
275
|
+
→ final verification → project complete
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
- **A response is not completion.** A task is only `COMPLETED` when its
|
|
279
|
+
acceptance criteria are satisfied by real evidence — files that exist, a
|
|
280
|
+
command that ran and exited 0, tests that passed, no unresolved error. A
|
|
281
|
+
model that says “done” while the tests fail is sent back to fix them.
|
|
282
|
+
- **A task is a unit of work, not a model call.** Each task may take many
|
|
283
|
+
model/tool cycles: analyse → inspect → implement → run → fail → fix → re-run
|
|
284
|
+
→ verify.
|
|
285
|
+
- **Limits do not end a task.** An output/context limit continues the task with
|
|
286
|
+
another call; a temporary provider error retries with backoff; a repeated
|
|
287
|
+
identical failure stops with an explicit blocker instead of looping.
|
|
288
|
+
- **State survives.** Every transition is checkpointed to
|
|
289
|
+
`.seedcode/checkpoints/`, so a pause, a crash or an API failure resumes from
|
|
290
|
+
the current task.
|
|
291
|
+
|
|
292
|
+
```text
|
|
293
|
+
/session # the detailed view: session state + one row per task record
|
|
294
|
+
/pause # stop at the next safe boundary, keeping plan + files
|
|
295
|
+
/resume # continue from the checkpoint (current task, not from zero)
|
|
296
|
+
/stop # safely end the autonomous session
|
|
297
|
+
```
|
|
298
|
+
|
|
299
|
+
Ctrl+C stops the session the same way; nothing here closes an application or
|
|
300
|
+
rolls back your files. A stopped session is **not** lost: the CLI says so and
|
|
301
|
+
`/resume` continues from the checkpoint.
|
|
302
|
+
|
|
303
|
+
Every task also keeps its own execution record — files inspected and affected,
|
|
304
|
+
commands run with their outcome, tool calls, test results, errors, retries,
|
|
305
|
+
timestamps and the verification result — and it is stored per task in
|
|
306
|
+
`.seedcode/plan.json`, so a resume continues with the full per-task history.
|
|
307
|
+
`/session` renders that record:
|
|
308
|
+
|
|
309
|
+
```text
|
|
310
|
+
State RUNNING
|
|
311
|
+
Progress 1/3 tasks verified
|
|
312
|
+
Current task 2. Create database
|
|
313
|
+
Action Running pytest tests/db
|
|
314
|
+
Model calls 12
|
|
315
|
+
Tool calls 31
|
|
316
|
+
Tests passed (pytest -q)
|
|
317
|
+
Commands 1/1 ok
|
|
318
|
+
Files changed 1
|
|
319
|
+
Files inspected 2
|
|
320
|
+
Checkpoint saved on pause/stop (see /resume)
|
|
321
|
+
|
|
322
|
+
✓ 1 Setup project verified 2 criteria 1 inspected; 1 file(s); 1/1 cmd ok; tests passed
|
|
323
|
+
● 2 Create database — no tool activity recorded
|
|
324
|
+
○ 3 Add tests — not started
|
|
325
|
+
```
|
|
326
|
+
|
|
327
|
+
`/status` carries the same state in one line
|
|
328
|
+
(`Session RUNNING (1/3 verified) — Task 2`), and a stopped one reports that it
|
|
329
|
+
is resumable. A task row only ever shows what was observed — a task that did
|
|
330
|
+
nothing reads `no tool activity recorded`, never a success.
|
|
331
|
+
|
|
332
|
+
### `.seedcode` project memory
|
|
333
|
+
|
|
334
|
+
Enabling Code Mode creates a `.seedcode/` directory in the project root:
|
|
335
|
+
|
|
336
|
+
```text
|
|
337
|
+
my-project/
|
|
338
|
+
├── .seedcode/
|
|
339
|
+
│ ├── memory/ durable project knowledge (architecture, decisions…)
|
|
340
|
+
│ ├── index/ per-file summaries + a file map (incremental, hashed)
|
|
341
|
+
│ ├── context/ reusable project context (conventions, snippets)
|
|
342
|
+
│ ├── sessions/ compact per-session summaries (never raw transcripts)
|
|
343
|
+
│ ├── checkpoints/ resumable Code Mode session state
|
|
344
|
+
│ ├── plan.json the current task graph
|
|
345
|
+
│ └── config.json safe project configuration
|
|
346
|
+
├── src/
|
|
347
|
+
└── ...
|
|
348
|
+
```
|
|
349
|
+
|
|
350
|
+
- **Incremental indexing** — every indexed file is hashed; only changed files
|
|
351
|
+
are re-summarized on the next run.
|
|
352
|
+
- **Secrets never land here** — writes pass a secret-key filter; API keys,
|
|
353
|
+
tokens, and passwords are rejected at write time.
|
|
354
|
+
- **Not source code** — `.seedcode/` is excluded from workspace search,
|
|
355
|
+
indexing, and the agent's project view.
|
|
356
|
+
|
|
357
|
+
## Task flow (Code / Assist / Agent Mode)
|
|
358
|
+
|
|
359
|
+
Every task in Code Mode, Assist Mode or Agent Mode is shown as a compact live
|
|
360
|
+
flow, and each step changes state only when the work behind it really
|
|
361
|
+
happened. Code Mode shows the protocol header, the plan as a checklist, and a
|
|
362
|
+
single live action line:
|
|
363
|
+
|
|
364
|
+
```text
|
|
365
|
+
╭─ SEEDCODE 7.1.0 • CODE MODE ────────────────╮
|
|
366
|
+
│ ● RUNNING Task 3/8 Build authentication │
|
|
367
|
+
│ ████████████░░░░ 72% • 4m 32s • 18 calls │
|
|
368
|
+
│ → Running: pytest tests/auth │
|
|
369
|
+
╰─────────────────────────────────────────────╯
|
|
370
|
+
✓ Setup project
|
|
371
|
+
✓ Create database
|
|
372
|
+
● Implement authentication
|
|
373
|
+
○ Build dashboard
|
|
374
|
+
○ Add tests
|
|
375
|
+
```
|
|
376
|
+
|
|
377
|
+
The action line is a real phase, not decoration: it shows the tool actually
|
|
378
|
+
running (reading a file, editing one, running a command), and it switches to
|
|
379
|
+
`Verifying acceptance criteria` / `Verifying the project (tests / build)` when
|
|
380
|
+
the session moves into those phases. The panel re-fits itself on every refresh,
|
|
381
|
+
so resizing the terminal mid-session cannot leave a panel wider than the
|
|
382
|
+
screen — it degrades to a single status line when the space runs out.
|
|
383
|
+
|
|
384
|
+
Assist Mode and Agent Mode keep the step-by-step flow:
|
|
385
|
+
|
|
386
|
+
```text
|
|
387
|
+
Task · Code Mode
|
|
388
|
+
Fix authentication persistence
|
|
389
|
+
✓ Analyze project request understood
|
|
390
|
+
✓ Inspect files read_file seedcode/config.py
|
|
391
|
+
✓ Plan implementation I'll patch the persistence layer…
|
|
392
|
+
● Implement changes edit_file seedcode/config.py
|
|
393
|
+
○ Run tests
|
|
394
|
+
○ Verify result
|
|
395
|
+
Working…
|
|
396
|
+
```
|
|
397
|
+
|
|
398
|
+
The five states are `pending`, `running`, `completed`, `failed` and
|
|
399
|
+
`skipped`. A step the task never needed is reported as **skipped** — “Run
|
|
400
|
+
tests” is never marked done unless a recognised test command actually ran, and
|
|
401
|
+
a failing run is shown as failed, showing what failed instead of a passing
|
|
402
|
+
count:
|
|
403
|
+
|
|
404
|
+
```text
|
|
405
|
+
✓ Task completed
|
|
406
|
+
2 file(s) changed: seedcode/config.py, seedcode/providers.py
|
|
407
|
+
Tests: 898 passed — pytest tests -q
|
|
408
|
+
Ready for next task.
|
|
409
|
+
```
|
|
410
|
+
|
|
411
|
+
A whole Code Mode project closes with the evidence that verified it, not a
|
|
412
|
+
restatement of the model's replies:
|
|
413
|
+
|
|
414
|
+
```text
|
|
415
|
+
✓ Project completed — 3/3 tasks verified
|
|
416
|
+
✓ Verification: accepted
|
|
417
|
+
✓ Tests: passed
|
|
418
|
+
✓ Files: 4 affected
|
|
419
|
+
✓ Commands: 7/7 ok
|
|
420
|
+
• Inspected: 12 item(s)
|
|
421
|
+
Ready for next task.
|
|
422
|
+
```
|
|
423
|
+
|
|
424
|
+
```text
|
|
425
|
+
✗ Task failed — tests failed
|
|
426
|
+
1 step(s) failed: Run tests
|
|
427
|
+
Ready for another task.
|
|
428
|
+
```
|
|
429
|
+
|
|
430
|
+
A task never closes the CLI: success, failure and `Ctrl+C` all return to the
|
|
431
|
+
prompt (or the menu) so you can inspect the result, run another task, switch
|
|
432
|
+
mode or provider, or `/exit` yourself. Plain Chat Mode is unaffected — it
|
|
433
|
+
answers with the ordinary spinner.
|
|
434
|
+
|
|
435
|
+
## Terminal execution
|
|
436
|
+
|
|
437
|
+
The agent runs commands through the tool engine's `run_command` tool:
|
|
438
|
+
|
|
439
|
+
- output streams line-by-line **while the command is still running**, so long
|
|
440
|
+
builds and test runs stay visible instead of blocking. The live view is
|
|
441
|
+
compact: the first few lines of each command are echoed, then one summary
|
|
442
|
+
line. The agent and `~/.seedcode/logs/seedcode.log` still receive the full
|
|
443
|
+
output, and failures are never hidden;
|
|
444
|
+
- `stderr` is captured along with `stdout`, in order;
|
|
445
|
+
- the exit code is reported, and a non-zero exit is an explicit failure the
|
|
446
|
+
model can react to;
|
|
447
|
+
- commands have a bounded timeout (default 60s, up to 300s) and a timeout
|
|
448
|
+
kills the whole process tree;
|
|
449
|
+
- `Ctrl+C` cancels the running command — its process tree is terminated — and
|
|
450
|
+
the agent turn continues with the cancellation reported as a failed result;
|
|
451
|
+
- shells: `cmd`, `powershell`, `pwsh`, `bash`, or `auto` (the shell you are
|
|
452
|
+
actually in), on Windows and Linux.
|
|
453
|
+
|
|
454
|
+
## Command reference
|
|
455
|
+
|
|
456
|
+
| Command | Purpose |
|
|
457
|
+
| --- | --- |
|
|
458
|
+
| `/help` | Search available commands |
|
|
459
|
+
| `/provider` | Switch the active AI provider |
|
|
460
|
+
| `/apikey` | Add, replace, remove, or validate a provider key |
|
|
461
|
+
| `/model` | Browse and select the provider's model catalogue |
|
|
462
|
+
| `/mode` | Show or switch the mode: `chat` / `assist` / `code` / `agent` |
|
|
463
|
+
| `/chat` | Switch to plain Chat Mode (`/chat on`) |
|
|
464
|
+
| `/agent` | Enable or disable Assist Mode (alias `/assist`) |
|
|
465
|
+
| `/codemode` | Workspace-aware Code Mode (`on` / `off` / `status`) |
|
|
466
|
+
| `/workspace` | Show the active Code Mode workspace |
|
|
467
|
+
| `/session` | Inspect the Code Mode session: state, evidence, per-task records |
|
|
468
|
+
| `/pause` | Pause the running Code Mode session (state is kept) |
|
|
469
|
+
| `/resume` | Resume a paused session from its checkpoint |
|
|
470
|
+
| `/stop` | Safely stop the running Code Mode session |
|
|
471
|
+
| `/permission` | View or set the Assist permission mode (alias `/permissions`) |
|
|
472
|
+
| `/computer` | Show Computer Engine status and permissions |
|
|
473
|
+
| `/screenshot` | Capture a screenshot |
|
|
474
|
+
| `/windows` | List open windows |
|
|
475
|
+
| `/tools` | List tools available in Assist Mode |
|
|
476
|
+
| `/index` | Show a compact project tree |
|
|
477
|
+
| `/files` | Search project files |
|
|
478
|
+
| `/history` | Browse saved sessions |
|
|
479
|
+
| `/doctor` | Diagnose configuration, network, and provider health |
|
|
480
|
+
| `/theme` | Change the terminal theme |
|
|
481
|
+
| `/shortcuts` | Show keyboard shortcuts |
|
|
482
|
+
| `/reset` | Forget the current conversation context |
|
|
483
|
+
| `/clear` | Clear the screen |
|
|
484
|
+
| `/version` | Show the Seed Code version |
|
|
485
|
+
| `/exit` | Leave the current chat (opens the main menu) |
|
|
486
|
+
|
|
487
|
+
Keyboard shortcuts: `Ctrl+K` command palette, `Ctrl+P` project file search,
|
|
488
|
+
`Ctrl+R` history, `Ctrl+,` settings, `Ctrl+/` shortcut reference,
|
|
489
|
+
`Ctrl+L` clear.
|
|
490
|
+
|
|
491
|
+
All exit paths are clean: `/exit` → menu, menu → Exit, `Ctrl+C` (cancels a
|
|
492
|
+
response or the current line), and `Ctrl+D`/EOF. No traceback appears on
|
|
493
|
+
normal exit.
|
|
494
|
+
|
|
495
|
+
## Desktop control
|
|
496
|
+
|
|
497
|
+
With the `desktop`/`full_system` permission level, Seed Code can inspect
|
|
498
|
+
windows, resolve UI elements semantically (accessibility tree, OCR, and image
|
|
499
|
+
refinement — no brittle coordinates), launch and focus applications, and
|
|
500
|
+
drive keyboard/mouse with per-action verification. Waits are state-based:
|
|
501
|
+
`open_app` polls for real window evidence instead of sleeping, verification
|
|
502
|
+
pauses are short because state is re-read live, and screenshots are taken
|
|
503
|
+
only when information is genuinely needed.
|
|
504
|
+
|
|
505
|
+
**Applications stay open.** When Seed Code opens an application or a browser
|
|
506
|
+
to do something for you ("play *this* song"), the app remains open when the
|
|
507
|
+
task finishes. Closing is only ever done on an explicit request
|
|
508
|
+
(`close_app` / `browser_close`); no teardown, retry, or cleanup path may close
|
|
509
|
+
a window, a browser, or a tab behind your back. Internal cleanup (releasing
|
|
510
|
+
mouse/keyboard control, closing DevTools sockets, dropping cached drivers) is
|
|
511
|
+
unchanged, and Seed Code never closes its own terminal — `/exit` does that.
|
|
512
|
+
|
|
513
|
+
## Configuration and local data
|
|
514
|
+
|
|
515
|
+
```text
|
|
516
|
+
~/.seedcode/
|
|
517
|
+
├── config.json provider and application settings
|
|
518
|
+
├── history/ saved conversation sessions (per provider)
|
|
519
|
+
├── memory/ persistent local memory
|
|
520
|
+
└── logs/ rotating diagnostic logs
|
|
521
|
+
```
|
|
522
|
+
|
|
523
|
+
`config.json` keeps **one isolated entry per provider**:
|
|
524
|
+
|
|
525
|
+
```text
|
|
526
|
+
config.json
|
|
527
|
+
├── active_provider
|
|
528
|
+
├── providers
|
|
529
|
+
│ ├── default { api_key(unused), model }
|
|
530
|
+
│ ├── openrouter { api_key, model }
|
|
531
|
+
│ ├── freemodel_claude { api_key, model }
|
|
532
|
+
│ ├── freemodel_codex { api_key, model }
|
|
533
|
+
│ ├── aerolink { api_key, model }
|
|
534
|
+
│ └── ollama { api_key(unused), model }
|
|
535
|
+
```
|
|
536
|
+
|
|
537
|
+
Switching providers loads that provider's own key and model, and saving one
|
|
538
|
+
provider never overwrites another's. Credentials stay local; environment
|
|
539
|
+
variables take precedence over stored keys. Logs never record API keys or
|
|
540
|
+
message content. `/doctor` checks configuration, connectivity, and provider
|
|
541
|
+
health.
|
|
542
|
+
|
|
543
|
+
## Platform support
|
|
544
|
+
|
|
545
|
+
- **Windows:** full experience — desktop control, one-click installer,
|
|
546
|
+
standalone EXE. Primary platform.
|
|
547
|
+
- **Linux / macOS:** terminal chat, providers, project tools, Code Mode.
|
|
548
|
+
Install with the `install.sh` command above — it installs the official
|
|
549
|
+
Python wheel, so **Python 3.12+ (with pip)** is required. No prebuilt
|
|
550
|
+
Linux/macOS binary is published in this release.
|
|
551
|
+
|
|
552
|
+
## Building from source
|
|
553
|
+
|
|
554
|
+
### Python distributions
|
|
555
|
+
|
|
556
|
+
```bash
|
|
557
|
+
python -m pip install build twine
|
|
558
|
+
python -m build # wheel + sdist, version read from seedcode/__init__.py
|
|
559
|
+
python -m twine check dist/*
|
|
560
|
+
```
|
|
561
|
+
|
|
562
|
+
### Windows EXE + installer
|
|
563
|
+
|
|
564
|
+
```bat
|
|
565
|
+
scripts\windows\build.bat
|
|
566
|
+
```
|
|
567
|
+
|
|
568
|
+
Stage 0 generates the branding assets (icon, wizard art, exe version
|
|
569
|
+
resource). Stage 0b embeds the default API configuration from a local `.env`
|
|
570
|
+
(git-ignored; skipped when absent — never printed or committed). Stage 1
|
|
571
|
+
builds the self-contained `dist\seedcode.exe` with PyInstaller (icon +
|
|
572
|
+
version resource embedded) and verifies it. Stage 2 compiles the Inno Setup
|
|
573
|
+
installer and verifies it. Stage 3 stages everything into
|
|
574
|
+
`dist\release\<version>\` and writes `SHA256SUMS.txt` with real hashes. Every
|
|
575
|
+
stage fails loudly on a version mismatch, so a stale binary can never ship.
|
|
576
|
+
|
|
577
|
+
Details: [`scripts/windows/README.md`](scripts/windows/README.md).
|
|
578
|
+
|
|
579
|
+
### Release artifacts (v7.1.0)
|
|
580
|
+
|
|
581
|
+
Release: [v7.1.0](https://github.com/Alshahriar-07/seedcode-cli/releases/tag/v7.1.0)
|
|
582
|
+
|
|
583
|
+
| Artifact | Purpose |
|
|
584
|
+
| --- | --- |
|
|
585
|
+
| `SeedCode-CLI-Setup-7.1.0.exe` | Windows installer (Inno Setup) |
|
|
586
|
+
| `SeedCode-CLI-7.1.0-windows-x64.exe` | Standalone Windows EXE — downloaded by the Windows IRM installer |
|
|
587
|
+
| `seedcode_cli-7.1.0-py3-none-any.whl` | Python wheel — downloaded by the Linux IRM installer |
|
|
588
|
+
| `seedcode_cli-7.1.0.tar.gz` | Python source distribution |
|
|
589
|
+
| `SHA256SUMS.txt` | SHA256 checksums; verified by both installers |
|
|
590
|
+
|
|
591
|
+
Built artifacts are collected in `dist/release/7.1.0/` during a release
|
|
592
|
+
build. Publishing (GitHub Release) is a separate step; the remote installers
|
|
593
|
+
read the release named `v7.1.0`.
|
|
594
|
+
|
|
595
|
+
### The remote installers
|
|
596
|
+
|
|
597
|
+
[`IRM_INSTALL/`](IRM_INSTALL/) is the source of the scripts served at
|
|
598
|
+
`https://seedcode-cli.vercel.app`:
|
|
599
|
+
|
|
600
|
+
| File | Served at |
|
|
601
|
+
| --- | --- |
|
|
602
|
+
| `install.ps1` | `/install.ps1` (Windows) |
|
|
603
|
+
| `install.sh` | `/install.sh` (Linux) |
|
|
604
|
+
| `RELEASE_INFO.txt` | Official installation summary |
|
|
605
|
+
|
|
606
|
+
## Troubleshooting
|
|
607
|
+
|
|
608
|
+
- **`seedcode` is not recognized** — open a *new* terminal after installing;
|
|
609
|
+
`PATH` changes only apply to fresh sessions. The installer verifies this
|
|
610
|
+
before it finishes.
|
|
611
|
+
- **"Setup needed" on the header** — the active provider is not usable yet.
|
|
612
|
+
Run `/provider`. Default needs a built-in credential (release builds have
|
|
613
|
+
one); OpenRouter/FreeModel/AeroLink need your own key.
|
|
614
|
+
- **Default says the built-in connection is unavailable** — this build has no
|
|
615
|
+
embedded credential. Run `/provider` and choose OpenRouter, or set
|
|
616
|
+
`OPENROUTER_API_KEY`.
|
|
617
|
+
- **401/403 errors** — your key is invalid or lacks access; `/apikey` to
|
|
618
|
+
replace it, `/doctor` for diagnostics.
|
|
619
|
+
- **402 errors** — the model needs credits; `/model` and pick a free model
|
|
620
|
+
(Default ships with `cohere/north-mini-code:free`).
|
|
621
|
+
- **Rate limits (429)** — wait and retry; Seed Code honors the provider's
|
|
622
|
+
`Retry-After` hint. Consider a different provider.
|
|
623
|
+
- **Desktop actions fail** — check `/permission` (desktop requires the
|
|
624
|
+
`desktop` level) and `/computer` for engine status.
|
|
625
|
+
- **Reset everything** — delete `~/.seedcode/` (settings, keys, history);
|
|
626
|
+
`.seedcode/` project memory lives in each project and is separate.
|
|
627
|
+
|
|
628
|
+
## Security model
|
|
629
|
+
|
|
630
|
+
- Credentials stay local and **provider-scoped**. Saving or switching one
|
|
631
|
+
provider never reads or writes another provider's key slot, so a key cannot
|
|
632
|
+
leak between Default, OpenRouter, FreeModel, AeroLink and Ollama.
|
|
633
|
+
- The built-in Default credential is resolved per request and is never copied
|
|
634
|
+
into another provider's stored configuration.
|
|
635
|
+
- Keys are shown masked (`sk-or-••••••••`) or not at all — never in full,
|
|
636
|
+
never in logs, never in error messages, never in a release artifact.
|
|
637
|
+
- Computer actions pass permission checks, verification, and retry limits.
|
|
638
|
+
- `.seedcode/` memory refuses secret-looking fields at write time.
|
|
639
|
+
- The release build consumes the local `.env` only during packaging; the
|
|
640
|
+
secret never enters source control, logs, manifests, or package metadata.
|
|
641
|
+
|
|
642
|
+
Review permissions before enabling Assist Mode — especially in unfamiliar
|
|
643
|
+
projects or with sensitive applications.
|
|
644
|
+
|
|
645
|
+
## Credits
|
|
646
|
+
|
|
647
|
+
- **Created by:** Al Shahriar Sowan — <https://alshahriarsayon.vercel.app/>
|
|
648
|
+
- **Studio:** Eagox Studio — <https://eagoxstudio.vercel.app/>
|
|
649
|
+
- **Contact:** github@eagox.studio
|
|
650
|
+
|
|
651
|
+
## License
|
|
652
|
+
|
|
653
|
+
MIT — see [`LICENSE`](LICENSE).
|