seedcode-cli 6.2.0__tar.gz → 6.2.5__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-6.2.5}/.gitignore +3 -1
- seedcode_cli-6.2.5/PKG-INFO +457 -0
- seedcode_cli-6.2.5/README.md +410 -0
- seedcode_cli-6.2.5/npm/README.md +28 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/scripts/windows/README.md +10 -8
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/__init__.py +1 -1
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/_default_key_template.py +5 -1
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/app.py +129 -17
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/branding.py +6 -1
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/cli.py +11 -3
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/commands/__init__.py +4 -2
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/commands/agent.py +7 -2
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/commands/assist.py +2 -1
- seedcode_cli-6.2.5/seedcode/commands/chat.py +46 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/commands/codemode.py +3 -2
- seedcode_cli-6.2.5/seedcode/commands/mode.py +50 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/commands/provider.py +52 -16
- seedcode_cli-6.2.5/seedcode/commands/status.py +95 -0
- seedcode_cli-6.2.5/seedcode/config/__init__.py +26 -0
- seedcode_cli-6.2.5/seedcode/config/defaults.py +49 -0
- seedcode_cli-6.2.5/seedcode/config/manager.py +244 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/core/agent.py +30 -2
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/core/chat.py +33 -3
- seedcode_cli-6.2.5/seedcode/core/http.py +171 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/core/models.py +46 -14
- seedcode_cli-6.2.5/seedcode/core/providers/__init__.py +85 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/core/providers/base.py +24 -2
- seedcode_cli-6.2.5/seedcode/core/providers/default.py +157 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/core/providers/ollama.py +9 -1
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/core/providers/openrouter.py +80 -29
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/default_api.py +54 -3
- seedcode_cli-6.2.5/seedcode/defaults.py +37 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/tools/terminal.py +30 -5
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/ui/__init__.py +16 -3
- seedcode_cli-6.2.5/seedcode/ui/dashboard.py +165 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/ui/menu.py +4 -0
- seedcode_cli-6.2.5/seedcode/ui/reference.py +46 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/ui/selector.py +24 -0
- seedcode_cli-6.2.5/seedcode/utils/terminal_env.py +225 -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/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-6.2.5}/LICENSE +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/npm/LICENSE +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/pyproject.toml +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/scripts/pyproject_build_hook.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/__main__.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/apps/__init__.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/apps/discovery.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/apps/installer.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/apps/launcher.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/apps/verifier.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/assets/logo.png +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/assets/logo.txt +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/codemode.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/codemode_state.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/commands/about.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/commands/clear.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/commands/desktop.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/commands/doctor.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/commands/help.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/commands/history.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/commands/palette.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/commands/theme.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/computer/__init__.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/computer/browser.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/computer/browser_cdp.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/computer/browser_engine.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/computer/browser_extract.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/computer/browser_popups.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/computer/browser_selenium.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/computer/browser_skills.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/computer/catalog.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/computer/controller.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/computer/dispatcher.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/computer/dpi.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/computer/engine.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/computer/keyboard.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/computer/logbook.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/computer/mouse.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/computer/ocr.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/computer/operator_skills.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/computer/permissions.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/computer/recovery.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/computer/registry.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/computer/resolver.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/computer/screen.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/computer/screen_state.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/computer/selfguard.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/computer/semantic.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/computer/skills.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/computer/state.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/computer/verifier.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/computer/vision.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/computer/windows.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/core/__init__.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/core/client.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/core/errors.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/core/identity.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/core/identity_store.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/core/lifecycle.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/core/limits.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/core/project.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/core/providers/aerolink.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/core/providers/freemodel.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/core/streaming.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/memory/__init__.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/memory/manager.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/memory/storage.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/memory/store.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/tools/__init__.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/tools/base.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/tools/desktop.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/tools/filesystem.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/tools/git.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/tools/patch.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/tools/permissions.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/tools/search.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/tools/textio.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/ui/badges.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/ui/dialog.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/ui/fuzzy.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/ui/layout.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/ui/palette.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/ui/progress.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/ui/prompts.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/ui/renderer.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/ui/searchbox.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/ui/statusbar.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/ui/textbox.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/ui/theme.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/ui/tree.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/utils/__init__.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/utils/helpers.py +0 -0
- {seedcode_cli-6.2.0 → seedcode_cli-6.2.5}/seedcode/utils/logger.py +0 -0
|
@@ -0,0 +1,457 @@
|
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
|
+
Name: seedcode-cli
|
|
3
|
+
Version: 6.2.5
|
|
4
|
+
Summary: Seed Code — a premium terminal-based AI coding assistant. Plant ideas. Grow code.
|
|
5
|
+
Project-URL: Homepage, https://github.com/Alshahriar-07/seedcode-cli
|
|
6
|
+
Project-URL: Repository, https://github.com/Alshahriar-07/seedcode-cli
|
|
7
|
+
Project-URL: Documentation, https://github.com/Alshahriar-07/seedcode-cli#readme
|
|
8
|
+
Project-URL: Issues, https://github.com/Alshahriar-07/seedcode-cli/issues
|
|
9
|
+
Project-URL: Changelog, https://github.com/Alshahriar-07/seedcode-cli/releases
|
|
10
|
+
Author-email: Al Shahriar Sowan <github@eagox.studio>
|
|
11
|
+
License-Expression: MIT
|
|
12
|
+
License-File: LICENSE
|
|
13
|
+
Keywords: agent,ai,chat,cli,coding-assistant,ollama,seedcode,terminal
|
|
14
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
15
|
+
Classifier: Environment :: Console
|
|
16
|
+
Classifier: Intended Audience :: Developers
|
|
17
|
+
Classifier: Operating System :: OS Independent
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
20
|
+
Classifier: Topic :: Software Development
|
|
21
|
+
Classifier: Topic :: Terminals
|
|
22
|
+
Requires-Python: >=3.12
|
|
23
|
+
Requires-Dist: httpx>=0.27.0
|
|
24
|
+
Requires-Dist: openai>=1.40.0
|
|
25
|
+
Requires-Dist: prompt-toolkit>=3.0.43
|
|
26
|
+
Requires-Dist: pydantic>=2.6.0
|
|
27
|
+
Requires-Dist: rich>=13.7.0
|
|
28
|
+
Provides-Extra: browser
|
|
29
|
+
Requires-Dist: selenium>=4.18.0; extra == 'browser'
|
|
30
|
+
Requires-Dist: webdriver-manager>=4.0.1; extra == 'browser'
|
|
31
|
+
Provides-Extra: desktop
|
|
32
|
+
Requires-Dist: mss>=9.0.1; extra == 'desktop'
|
|
33
|
+
Requires-Dist: opencv-python>=4.9.0; extra == 'desktop'
|
|
34
|
+
Requires-Dist: pillow>=10.0.0; extra == 'desktop'
|
|
35
|
+
Requires-Dist: psutil>=5.9.0; extra == 'desktop'
|
|
36
|
+
Requires-Dist: pyautogui>=0.9.54; extra == 'desktop'
|
|
37
|
+
Requires-Dist: pygetwindow>=0.0.9; extra == 'desktop'
|
|
38
|
+
Requires-Dist: pytesseract>=0.3.10; extra == 'desktop'
|
|
39
|
+
Requires-Dist: uiautomation>=2.0.18; (sys_platform == 'win32') and extra == 'desktop'
|
|
40
|
+
Provides-Extra: dev
|
|
41
|
+
Requires-Dist: pytest-mock>=3.12.0; extra == 'dev'
|
|
42
|
+
Requires-Dist: pytest>=8.0.0; extra == 'dev'
|
|
43
|
+
Provides-Extra: vision
|
|
44
|
+
Requires-Dist: opencv-python>=4.9.0; extra == 'vision'
|
|
45
|
+
Requires-Dist: pytesseract>=0.3.10; extra == 'vision'
|
|
46
|
+
Description-Content-Type: text/markdown
|
|
47
|
+
|
|
48
|
+
# Seed Code CLI
|
|
49
|
+
|
|
50
|
+
**Seed Code — Eagox Studio**
|
|
51
|
+
|
|
52
|
+
> ### Faster. Smaller. Smarter. Workspace-aware.
|
|
53
|
+
> *Plant ideas. Grow code.*
|
|
54
|
+
|
|
55
|
+
Seed Code is a premium terminal-based AI coding assistant. v6.2.5 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 compact, minimal startup header.
|
|
59
|
+
|
|
60
|
+
- **Works out of the box:** the shipped provider is **Default** — Seed Code's
|
|
61
|
+
own built-in connection. It needs **no API key**, so a fresh installation
|
|
62
|
+
can chat immediately. Bring your own key at any time with `/provider` →
|
|
63
|
+
OpenRouter, FreeModel or AeroLink.
|
|
64
|
+
- **Version:** 6.2.5 (`seedcode --version`)
|
|
65
|
+
|
|
66
|
+
## Installation
|
|
67
|
+
|
|
68
|
+
Seed Code CLI is distributed through the official IRM installer system and
|
|
69
|
+
[GitHub Releases](https://github.com/Alshahriar-07/seedcode-cli/releases).
|
|
70
|
+
The installers download the official release artifact for your platform,
|
|
71
|
+
verify its SHA256 against the release's `SHA256SUMS.txt`, and then verify the
|
|
72
|
+
installed command.
|
|
73
|
+
|
|
74
|
+
### Windows
|
|
75
|
+
|
|
76
|
+
PowerShell 5.1 or newer:
|
|
77
|
+
|
|
78
|
+
```powershell
|
|
79
|
+
irm https://seedcode-cli.vercel.app/install.ps1 | iex
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
Installs for the current user (no administrator rights, no Python) into
|
|
83
|
+
`%LOCALAPPDATA%\Programs\SeedCode`, adds `seedcode` to your user `PATH`, and
|
|
84
|
+
prints the verified version when it finishes.
|
|
85
|
+
|
|
86
|
+
### Linux
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
curl -fsSL https://seedcode-cli.vercel.app/install.sh | bash
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
Installs for the current user. When a prebuilt binary is published for your
|
|
93
|
+
platform it is used directly; otherwise the official wheel from the same
|
|
94
|
+
release is installed with pip.
|
|
95
|
+
|
|
96
|
+
### Windows installer (GUI alternative)
|
|
97
|
+
|
|
98
|
+
If you prefer a graphical installer, download
|
|
99
|
+
`SeedCode-CLI-Setup-6.2.5.exe` from the
|
|
100
|
+
[Releases page](https://github.com/Alshahriar-07/seedcode-cli/releases). It
|
|
101
|
+
packages a fully self-contained `seedcode.exe` (no Python needed), installs
|
|
102
|
+
to Program Files, adds Seed Code to the system `PATH`, creates a Start Menu
|
|
103
|
+
shortcut with an optional desktop shortcut, verifies the installation before
|
|
104
|
+
reporting success, and ships a clean uninstaller that never deletes your
|
|
105
|
+
project data silently.
|
|
106
|
+
|
|
107
|
+
After installing by any route:
|
|
108
|
+
|
|
109
|
+
```bash
|
|
110
|
+
seedcode --version # -> Seed Code CLI 6.2.5
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
> **`seedcode` not recognized?** Open a *new* terminal. `PATH` changes only
|
|
114
|
+
> apply to fresh sessions; the installers verify this before they finish.
|
|
115
|
+
|
|
116
|
+
### From source (development)
|
|
117
|
+
|
|
118
|
+
Requires **Python 3.12 or newer**:
|
|
119
|
+
|
|
120
|
+
```bash
|
|
121
|
+
git clone https://github.com/Alshahriar-07/seedcode-cli.git
|
|
122
|
+
cd seedcode-cli
|
|
123
|
+
python -m pip install -e ".[dev]"
|
|
124
|
+
seedcode
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
## First run
|
|
128
|
+
|
|
129
|
+
```bash
|
|
130
|
+
seedcode
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
You land on a compact, borderless startup header — provider, model, mode and
|
|
134
|
+
status, with no ASCII logo and no box art — and the chat prompt appears
|
|
135
|
+
immediately:
|
|
136
|
+
|
|
137
|
+
```text
|
|
138
|
+
Seed Code CLI v6.2.5
|
|
139
|
+
Provider Default
|
|
140
|
+
Model nvidia/nemotron-3-super-120b-a12b:free
|
|
141
|
+
Mode Chat
|
|
142
|
+
Status ● Ready
|
|
143
|
+
Commands /help /status /codemode /assist /provider /model
|
|
144
|
+
You >
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
The `API Key` row appears **only** for providers that actually require a key,
|
|
148
|
+
so Default and Ollama never show one.
|
|
149
|
+
|
|
150
|
+
### Default provider (no API key)
|
|
151
|
+
|
|
152
|
+
**Default** is Seed Code's built-in API connection and the provider the app
|
|
153
|
+
ships with. It is a first-class provider of its own — separate from
|
|
154
|
+
OpenRouter everywhere: its own entry in `/provider`, its own saved model, its
|
|
155
|
+
own status, and its own credential slot. It resolves its credential itself,
|
|
156
|
+
in this order:
|
|
157
|
+
|
|
158
|
+
1. a key stored in Default's own slot (advanced/manual use);
|
|
159
|
+
2. the embedded Seed Code release credential (release artifacts only);
|
|
160
|
+
3. `OPENROUTER_API_KEY` / `SEEDCODE_DEFAULT_API_KEY` in the environment.
|
|
161
|
+
|
|
162
|
+
It never reads or writes another provider's configuration, and no other
|
|
163
|
+
provider inherits Default's credential. If a build carries no built-in
|
|
164
|
+
credential (a source checkout, for example), Default says so plainly instead
|
|
165
|
+
of failing with an authentication error — pick OpenRouter and add your own
|
|
166
|
+
key.
|
|
167
|
+
|
|
168
|
+
### Your own API key
|
|
169
|
+
|
|
170
|
+
Use `/apikey` (view / replace / remove / validate) or set an environment
|
|
171
|
+
variable:
|
|
172
|
+
|
|
173
|
+
```bash
|
|
174
|
+
export OPENROUTER_API_KEY="sk-or-..." # PowerShell: $env:OPENROUTER_API_KEY = "..."
|
|
175
|
+
export FREEMODEL_API_KEY="fe_oa_..."
|
|
176
|
+
export AEROLINK_API_KEY="..."
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
Keys are validated with a real authenticated request before they are saved.
|
|
180
|
+
They are stored per provider in `~/.seedcode/config.json`, never in any
|
|
181
|
+
project directory, and never printed, logged, or included in an error
|
|
182
|
+
message.
|
|
183
|
+
|
|
184
|
+
### Providers
|
|
185
|
+
|
|
186
|
+
Every provider is fully independent: its own API key, model, settings, and
|
|
187
|
+
connection status. Switching providers never touches another one's
|
|
188
|
+
configuration.
|
|
189
|
+
|
|
190
|
+
| Provider | API key | Best for |
|
|
191
|
+
| --- | --- | --- |
|
|
192
|
+
| **Default** | not required | Chatting immediately on a release install |
|
|
193
|
+
| [OpenRouter](https://openrouter.ai) | required | A broad catalogue of free and paid models |
|
|
194
|
+
| FreeModel Claude | required | Claude-family models through FreeModel |
|
|
195
|
+
| FreeModel Codex | required | GPT/Codex models through FreeModel |
|
|
196
|
+
| [AeroLink](https://aerolink.lat) | required | Anthropic-compatible gateway access |
|
|
197
|
+
| [Ollama](https://ollama.com) | not required | Local, key-free models |
|
|
198
|
+
|
|
199
|
+
Switch with `/provider` — the picker groups choices by what they need
|
|
200
|
+
(*Built-in · no API key*, *Your own API key*, *Local*) and shows each
|
|
201
|
+
provider's backend, current model, and key state. Pick models with `/model`
|
|
202
|
+
(OpenRouter filters `free` vs `pro` models; FreeModel offers Auto mode).
|
|
203
|
+
|
|
204
|
+
## Assist Mode and permissions
|
|
205
|
+
|
|
206
|
+
Assist Mode lets the model act on your project through the tool engine:
|
|
207
|
+
|
|
208
|
+
```text
|
|
209
|
+
/assist on
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
Permission modes (view/set with `/permission`):
|
|
213
|
+
|
|
214
|
+
| Mode | Behavior |
|
|
215
|
+
| --- | --- |
|
|
216
|
+
| `read_only` | Inspect files, screens, windows, and state without mutations |
|
|
217
|
+
| `workspace` | Allow approved changes inside the active workspace |
|
|
218
|
+
| `desktop` | Add desktop automation capability after confirmation |
|
|
219
|
+
| `full_system` | Allow broader computer and filesystem actions after confirmation |
|
|
220
|
+
|
|
221
|
+
## Code Mode
|
|
222
|
+
|
|
223
|
+
Code Mode is Assist Mode sharpened into a real coding agent for the current
|
|
224
|
+
project. Your working directory becomes the **workspace**:
|
|
225
|
+
|
|
226
|
+
```text
|
|
227
|
+
/codemode on # treat the CWD as the workspace, enable .seedcode memory
|
|
228
|
+
/codemode off # back to the previous mode (memory stays on disk)
|
|
229
|
+
/codemode status # workspace, memory, and index state
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
In Code Mode the agent consults the project index, finds relevant files with
|
|
233
|
+
targeted searches, reads only what it needs, plans, edits, runs a relevant
|
|
234
|
+
command or test, and reports what changed. File operations stay inside the
|
|
235
|
+
workspace root.
|
|
236
|
+
|
|
237
|
+
### `.seedcode` project memory
|
|
238
|
+
|
|
239
|
+
Enabling Code Mode creates a `.seedcode/` directory in the project root:
|
|
240
|
+
|
|
241
|
+
```text
|
|
242
|
+
my-project/
|
|
243
|
+
├── .seedcode/
|
|
244
|
+
│ ├── memory/ durable project knowledge (architecture, decisions…)
|
|
245
|
+
│ ├── index/ per-file summaries + a file map (incremental, hashed)
|
|
246
|
+
│ ├── context/ reusable project context (conventions, snippets)
|
|
247
|
+
│ ├── sessions/ compact per-session summaries (never raw transcripts)
|
|
248
|
+
│ └── config.json safe project configuration
|
|
249
|
+
├── src/
|
|
250
|
+
└── ...
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
- **Incremental indexing** — every indexed file is hashed; only changed files
|
|
254
|
+
are re-summarized on the next run.
|
|
255
|
+
- **Secrets never land here** — writes pass a secret-key filter; API keys,
|
|
256
|
+
tokens, and passwords are rejected at write time.
|
|
257
|
+
- **Not source code** — `.seedcode/` is excluded from workspace search,
|
|
258
|
+
indexing, and the agent's project view.
|
|
259
|
+
|
|
260
|
+
## Terminal execution
|
|
261
|
+
|
|
262
|
+
The agent runs commands through the tool engine's `run_command` tool:
|
|
263
|
+
|
|
264
|
+
- output streams line-by-line **while the command is still running**, so long
|
|
265
|
+
builds and test runs stay visible instead of blocking;
|
|
266
|
+
- `stderr` is captured along with `stdout`, in order;
|
|
267
|
+
- the exit code is reported, and a non-zero exit is an explicit failure the
|
|
268
|
+
model can react to;
|
|
269
|
+
- commands have a bounded timeout (default 60s, up to 300s) and a timeout
|
|
270
|
+
kills the whole process tree;
|
|
271
|
+
- `Ctrl+C` cancels the running command — its process tree is terminated — and
|
|
272
|
+
the agent turn continues with the cancellation reported as a failed result;
|
|
273
|
+
- shells: `cmd`, `powershell`, `pwsh`, `bash`, or `auto` (the shell you are
|
|
274
|
+
actually in), on Windows and Linux.
|
|
275
|
+
|
|
276
|
+
## Command reference
|
|
277
|
+
|
|
278
|
+
| Command | Purpose |
|
|
279
|
+
| --- | --- |
|
|
280
|
+
| `/help` | Search available commands |
|
|
281
|
+
| `/provider` | Switch the active AI provider |
|
|
282
|
+
| `/apikey` | Add, replace, remove, or validate a provider key |
|
|
283
|
+
| `/model` | Browse and select the provider's model catalogue |
|
|
284
|
+
| `/mode` | Show or switch the mode: `chat` / `assist` / `code` / `agent` |
|
|
285
|
+
| `/chat` | Switch to plain Chat Mode (`/chat on`) |
|
|
286
|
+
| `/agent` | Enable or disable Assist Mode (alias `/assist`) |
|
|
287
|
+
| `/codemode` | Workspace-aware Code Mode (`on` / `off` / `status`) |
|
|
288
|
+
| `/workspace` | Show the active Code Mode workspace |
|
|
289
|
+
| `/permission` | View or set the Assist permission mode (alias `/permissions`) |
|
|
290
|
+
| `/computer` | Show Computer Engine status and permissions |
|
|
291
|
+
| `/screenshot` | Capture a screenshot |
|
|
292
|
+
| `/windows` | List open windows |
|
|
293
|
+
| `/tools` | List tools available in Assist Mode |
|
|
294
|
+
| `/index` | Show a compact project tree |
|
|
295
|
+
| `/files` | Search project files |
|
|
296
|
+
| `/history` | Browse saved sessions |
|
|
297
|
+
| `/doctor` | Diagnose configuration, network, and provider health |
|
|
298
|
+
| `/theme` | Change the terminal theme |
|
|
299
|
+
| `/shortcuts` | Show keyboard shortcuts |
|
|
300
|
+
| `/reset` | Forget the current conversation context |
|
|
301
|
+
| `/clear` | Clear the screen |
|
|
302
|
+
| `/version` | Show the Seed Code version |
|
|
303
|
+
| `/exit` | Leave the current chat (opens the main menu) |
|
|
304
|
+
|
|
305
|
+
Keyboard shortcuts: `Ctrl+K` command palette, `Ctrl+P` project file search,
|
|
306
|
+
`Ctrl+R` history, `Ctrl+,` settings, `Ctrl+/` shortcut reference,
|
|
307
|
+
`Ctrl+L` clear.
|
|
308
|
+
|
|
309
|
+
All exit paths are clean: `/exit` → menu, menu → Exit, `Ctrl+C` (cancels a
|
|
310
|
+
response or the current line), and `Ctrl+D`/EOF. No traceback appears on
|
|
311
|
+
normal exit.
|
|
312
|
+
|
|
313
|
+
## Desktop control
|
|
314
|
+
|
|
315
|
+
With the `desktop`/`full_system` permission level, Seed Code can inspect
|
|
316
|
+
windows, resolve UI elements semantically (accessibility tree, OCR, and image
|
|
317
|
+
refinement — no brittle coordinates), launch and focus applications, and
|
|
318
|
+
drive keyboard/mouse with per-action verification. Waits are state-based:
|
|
319
|
+
`open_app` polls for real window evidence instead of sleeping, verification
|
|
320
|
+
pauses are short because state is re-read live, and screenshots are taken
|
|
321
|
+
only when information is genuinely needed.
|
|
322
|
+
|
|
323
|
+
## Configuration and local data
|
|
324
|
+
|
|
325
|
+
```text
|
|
326
|
+
~/.seedcode/
|
|
327
|
+
├── config.json provider and application settings
|
|
328
|
+
├── history/ saved conversation sessions (per provider)
|
|
329
|
+
├── memory/ persistent local memory
|
|
330
|
+
└── logs/ rotating diagnostic logs
|
|
331
|
+
```
|
|
332
|
+
|
|
333
|
+
`config.json` keeps **one isolated entry per provider**:
|
|
334
|
+
|
|
335
|
+
```text
|
|
336
|
+
config.json
|
|
337
|
+
├── active_provider
|
|
338
|
+
├── providers
|
|
339
|
+
│ ├── default { api_key(unused), model }
|
|
340
|
+
│ ├── openrouter { api_key, model }
|
|
341
|
+
│ ├── freemodel_claude { api_key, model }
|
|
342
|
+
│ ├── freemodel_codex { api_key, model }
|
|
343
|
+
│ ├── aerolink { api_key, model }
|
|
344
|
+
│ └── ollama { api_key(unused), model }
|
|
345
|
+
```
|
|
346
|
+
|
|
347
|
+
Switching providers loads that provider's own key and model, and saving one
|
|
348
|
+
provider never overwrites another's. Credentials stay local; environment
|
|
349
|
+
variables take precedence over stored keys. Logs never record API keys or
|
|
350
|
+
message content. `/doctor` checks configuration, connectivity, and provider
|
|
351
|
+
health.
|
|
352
|
+
|
|
353
|
+
## Platform support
|
|
354
|
+
|
|
355
|
+
- **Windows:** full experience — desktop control, one-click installer,
|
|
356
|
+
standalone EXE. Primary platform.
|
|
357
|
+
- **Linux / macOS:** terminal chat, providers, project tools, Code Mode.
|
|
358
|
+
Install with the `install.sh` command above.
|
|
359
|
+
|
|
360
|
+
## Building from source
|
|
361
|
+
|
|
362
|
+
### Python distributions
|
|
363
|
+
|
|
364
|
+
```bash
|
|
365
|
+
python -m pip install build twine
|
|
366
|
+
python -m build # wheel + sdist, version read from seedcode/__init__.py
|
|
367
|
+
python -m twine check dist/*
|
|
368
|
+
```
|
|
369
|
+
|
|
370
|
+
### Windows EXE + installer
|
|
371
|
+
|
|
372
|
+
```bat
|
|
373
|
+
scripts\windows\build.bat
|
|
374
|
+
```
|
|
375
|
+
|
|
376
|
+
Stage 0 generates the branding assets (icon, wizard art, exe version
|
|
377
|
+
resource). Stage 0b embeds the default API configuration from a local `.env`
|
|
378
|
+
(git-ignored; skipped when absent — never printed or committed). Stage 1
|
|
379
|
+
builds the self-contained `dist\seedcode.exe` with PyInstaller (icon +
|
|
380
|
+
version resource embedded) and verifies it. Stage 2 compiles the Inno Setup
|
|
381
|
+
installer and verifies it. Stage 3 stages everything into
|
|
382
|
+
`dist\release\<version>\` and writes `SHA256SUMS.txt` with real hashes. Every
|
|
383
|
+
stage fails loudly on a version mismatch, so a stale binary can never ship.
|
|
384
|
+
|
|
385
|
+
Details: [`scripts/windows/README.md`](scripts/windows/README.md).
|
|
386
|
+
|
|
387
|
+
### Release artifacts (v6.2.5)
|
|
388
|
+
|
|
389
|
+
| Artifact | Purpose |
|
|
390
|
+
| --- | --- |
|
|
391
|
+
| `SeedCode-CLI-Setup-6.2.5.exe` | Windows installer (Inno Setup) |
|
|
392
|
+
| `SeedCode-CLI-6.2.5-windows-x64.exe` | Standalone Windows EXE — downloaded by the Windows IRM installer |
|
|
393
|
+
| `seedcode_cli-6.2.5-py3-none-any.whl` | Python wheel — downloaded by the Linux IRM installer |
|
|
394
|
+
| `seedcode-cli-6.2.5.tar.gz` | Python source distribution |
|
|
395
|
+
| `SHA256SUMS.txt` | SHA256 checksums; verified by both installers |
|
|
396
|
+
|
|
397
|
+
Built artifacts are collected in `dist/release/6.2.5/` during a release
|
|
398
|
+
build. Publishing (GitHub Release) is a separate step; the remote installers
|
|
399
|
+
read the release named `v6.2.5`.
|
|
400
|
+
|
|
401
|
+
### The remote installers
|
|
402
|
+
|
|
403
|
+
[`IRM_INSTALL/`](IRM_INSTALL/) is the source of the scripts served at
|
|
404
|
+
`https://seedcode-cli.vercel.app`:
|
|
405
|
+
|
|
406
|
+
| File | Served at |
|
|
407
|
+
| --- | --- |
|
|
408
|
+
| `install.ps1` | `/install.ps1` (Windows) |
|
|
409
|
+
| `install.sh` | `/install.sh` (Linux) |
|
|
410
|
+
| `RELEASE_INFO.txt` | Official installation summary |
|
|
411
|
+
|
|
412
|
+
## Troubleshooting
|
|
413
|
+
|
|
414
|
+
- **`seedcode` is not recognized** — open a *new* terminal after installing;
|
|
415
|
+
`PATH` changes only apply to fresh sessions. The installer verifies this
|
|
416
|
+
before it finishes.
|
|
417
|
+
- **"Setup needed" on the header** — the active provider is not usable yet.
|
|
418
|
+
Run `/provider`. Default needs a built-in credential (release builds have
|
|
419
|
+
one); OpenRouter/FreeModel/AeroLink need your own key.
|
|
420
|
+
- **Default says the built-in connection is unavailable** — this build has no
|
|
421
|
+
embedded credential. Run `/provider` and choose OpenRouter, or set
|
|
422
|
+
`OPENROUTER_API_KEY`.
|
|
423
|
+
- **401/403 errors** — your key is invalid or lacks access; `/apikey` to
|
|
424
|
+
replace it, `/doctor` for diagnostics.
|
|
425
|
+
- **402 errors** — the model needs credits; `/model` and pick a free model.
|
|
426
|
+
- **Rate limits (429)** — wait and retry; Seed Code honors the provider's
|
|
427
|
+
`Retry-After` hint. Consider a different provider.
|
|
428
|
+
- **Desktop actions fail** — check `/permission` (desktop requires the
|
|
429
|
+
`desktop` level) and `/computer` for engine status.
|
|
430
|
+
- **Reset everything** — delete `~/.seedcode/` (settings, keys, history);
|
|
431
|
+
`.seedcode/` project memory lives in each project and is separate.
|
|
432
|
+
|
|
433
|
+
## Security model
|
|
434
|
+
|
|
435
|
+
- Credentials stay local and **provider-scoped**. Saving or switching one
|
|
436
|
+
provider never reads or writes another provider's key slot, so a key cannot
|
|
437
|
+
leak between Default, OpenRouter, FreeModel, AeroLink and Ollama.
|
|
438
|
+
- The built-in Default credential is resolved per request and is never copied
|
|
439
|
+
into another provider's stored configuration.
|
|
440
|
+
- Keys are shown masked (`sk-or-••••••••`) or not at all — never in full,
|
|
441
|
+
never in logs, never in error messages, never in a release artifact.
|
|
442
|
+
- Computer actions pass permission checks, verification, and retry limits.
|
|
443
|
+
- `.seedcode/` memory refuses secret-looking fields at write time.
|
|
444
|
+
- The release build consumes the local `.env` only during packaging; the
|
|
445
|
+
secret never enters source control, logs, manifests, or package metadata.
|
|
446
|
+
|
|
447
|
+
Review permissions before enabling Assist Mode — especially in unfamiliar
|
|
448
|
+
projects or with sensitive applications.
|
|
449
|
+
|
|
450
|
+
## Credits
|
|
451
|
+
|
|
452
|
+
- **Created by:** Al Shahriar Sowan
|
|
453
|
+
- **Publisher:** Eagox Studio
|
|
454
|
+
|
|
455
|
+
## License
|
|
456
|
+
|
|
457
|
+
MIT — see [`LICENSE`](LICENSE).
|