augint-shell 0.75.0__tar.gz → 0.76.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.
- {augint_shell-0.75.0 → augint_shell-0.76.0}/PKG-INFO +9 -7
- {augint_shell-0.75.0 → augint_shell-0.76.0}/README.md +8 -6
- {augint_shell-0.75.0 → augint_shell-0.76.0}/pyproject.toml +1 -1
- {augint_shell-0.75.0 → augint_shell-0.76.0}/src/ai_shell/__init__.py +1 -1
- {augint_shell-0.75.0 → augint_shell-0.76.0}/src/ai_shell/cli/commands/tools.py +7 -53
- {augint_shell-0.75.0 → augint_shell-0.76.0}/src/ai_shell/config.py +0 -31
- {augint_shell-0.75.0 → augint_shell-0.76.0}/src/ai_shell/defaults.py +1 -1
- {augint_shell-0.75.0 → augint_shell-0.76.0}/src/ai_shell/templates/ai-shell.toml +11 -54
- {augint_shell-0.75.0 → augint_shell-0.76.0}/src/ai_shell/templates/ai-shell.yaml +23 -63
- augint_shell-0.75.0/src/ai_shell/templates/aider/aider.conf.yml +0 -26
- augint_shell-0.75.0/src/ai_shell/templates/aider/aiderignore +0 -22
- augint_shell-0.75.0/src/ai_shell/templates/codex/config.toml +0 -30
- augint_shell-0.75.0/src/ai_shell/templates/opencode/opencode.json +0 -82
- {augint_shell-0.75.0 → augint_shell-0.76.0}/src/ai_shell/cli/__init__.py +0 -0
- {augint_shell-0.75.0 → augint_shell-0.76.0}/src/ai_shell/cli/__main__.py +0 -0
- {augint_shell-0.75.0 → augint_shell-0.76.0}/src/ai_shell/cli/commands/__init__.py +0 -0
- {augint_shell-0.75.0 → augint_shell-0.76.0}/src/ai_shell/cli/commands/llm.py +0 -0
- {augint_shell-0.75.0 → augint_shell-0.76.0}/src/ai_shell/cli/commands/manage.py +0 -0
- {augint_shell-0.75.0 → augint_shell-0.76.0}/src/ai_shell/container.py +0 -0
- {augint_shell-0.75.0 → augint_shell-0.76.0}/src/ai_shell/exceptions.py +0 -0
- {augint_shell-0.75.0 → augint_shell-0.76.0}/src/ai_shell/gpu.py +0 -0
- {augint_shell-0.75.0 → augint_shell-0.76.0}/src/ai_shell/interactive.py +0 -0
- {augint_shell-0.75.0 → augint_shell-0.76.0}/src/ai_shell/local_chrome.py +0 -0
- {augint_shell-0.75.0 → augint_shell-0.76.0}/src/ai_shell/scaffold.py +0 -0
- {augint_shell-0.75.0 → augint_shell-0.76.0}/src/ai_shell/selector.py +0 -0
- {augint_shell-0.75.0 → augint_shell-0.76.0}/src/ai_shell/templates/__init__.py +0 -0
- {augint_shell-0.75.0 → augint_shell-0.76.0}/src/ai_shell/templates/aider/__init__.py +0 -0
- {augint_shell-0.75.0 → augint_shell-0.76.0}/src/ai_shell/templates/claude/__init__.py +0 -0
- {augint_shell-0.75.0 → augint_shell-0.76.0}/src/ai_shell/templates/claude/settings.json +0 -0
- {augint_shell-0.75.0 → augint_shell-0.76.0}/src/ai_shell/templates/codex/__init__.py +0 -0
- {augint_shell-0.75.0 → augint_shell-0.76.0}/src/ai_shell/templates/opencode/__init__.py +0 -0
- {augint_shell-0.75.0 → augint_shell-0.76.0}/src/ai_shell/tmux.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: augint-shell
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.76.0
|
|
4
4
|
Summary: Launch AI coding tools and local LLMs in Docker containers
|
|
5
5
|
Author: svange
|
|
6
6
|
Requires-Dist: docker>=7.0.0
|
|
@@ -105,18 +105,20 @@ image_tag = "latest"
|
|
|
105
105
|
extra_env = { MY_VAR = "value" }
|
|
106
106
|
|
|
107
107
|
[llm]
|
|
108
|
-
primary_model = "qwen3
|
|
109
|
-
fallback_model = "qwen3
|
|
108
|
+
primary_model = "qwen3-coder:32b-a3b-q4_K_M"
|
|
109
|
+
fallback_model = "qwen3.5:27b"
|
|
110
110
|
context_size = 32768
|
|
111
111
|
ollama_port = 11434
|
|
112
112
|
webui_port = 3000
|
|
113
|
-
|
|
114
|
-
[aider]
|
|
115
|
-
model = "ollama_chat/qwen3.5:27b"
|
|
116
113
|
```
|
|
117
114
|
|
|
118
115
|
Global config at `~/.config/ai-shell/config.toml` is also supported.
|
|
119
116
|
|
|
117
|
+
`ai-shell` does not manage tool-specific config files for Codex, OpenCode, or
|
|
118
|
+
Aider. Use `augint-opencodex` or the tools' native config files for those, and
|
|
119
|
+
use `ai-shell` for container/runtime settings such as AWS profiles, local LLM
|
|
120
|
+
ports, and Claude options.
|
|
121
|
+
|
|
120
122
|
## How It Works
|
|
121
123
|
|
|
122
124
|
- Pulls a pre-built Docker image from Docker Hub (`svange/augint-shell`)
|
|
@@ -212,7 +214,7 @@ change in augint-shell — downstream tools read the canon at runtime.
|
|
|
212
214
|
| Standardization orchestration (single-repo) | augint-shell | `/ai-standardize-repo` |
|
|
213
215
|
| Standardization orchestration (workspace) | augint-shell | `/ai-workspace-standardize` |
|
|
214
216
|
| Workspace bulk verify | augint-shell skill layer | `/ai-workspace-standardize --verify` loops over children calling `ai-tools standardize <child-path> --verify --json` |
|
|
215
|
-
| AI agent configuration | augint-shell (`.ai-shell.toml`) | container settings
|
|
217
|
+
| AI agent configuration | augint-shell (`.ai-shell.toml`) | container/runtime settings only — NOT tool-specific Codex/OpenCode/Aider config |
|
|
216
218
|
|
|
217
219
|
### Canonical gate vocabulary
|
|
218
220
|
|
|
@@ -92,18 +92,20 @@ image_tag = "latest"
|
|
|
92
92
|
extra_env = { MY_VAR = "value" }
|
|
93
93
|
|
|
94
94
|
[llm]
|
|
95
|
-
primary_model = "qwen3
|
|
96
|
-
fallback_model = "qwen3
|
|
95
|
+
primary_model = "qwen3-coder:32b-a3b-q4_K_M"
|
|
96
|
+
fallback_model = "qwen3.5:27b"
|
|
97
97
|
context_size = 32768
|
|
98
98
|
ollama_port = 11434
|
|
99
99
|
webui_port = 3000
|
|
100
|
-
|
|
101
|
-
[aider]
|
|
102
|
-
model = "ollama_chat/qwen3.5:27b"
|
|
103
100
|
```
|
|
104
101
|
|
|
105
102
|
Global config at `~/.config/ai-shell/config.toml` is also supported.
|
|
106
103
|
|
|
104
|
+
`ai-shell` does not manage tool-specific config files for Codex, OpenCode, or
|
|
105
|
+
Aider. Use `augint-opencodex` or the tools' native config files for those, and
|
|
106
|
+
use `ai-shell` for container/runtime settings such as AWS profiles, local LLM
|
|
107
|
+
ports, and Claude options.
|
|
108
|
+
|
|
107
109
|
## How It Works
|
|
108
110
|
|
|
109
111
|
- Pulls a pre-built Docker image from Docker Hub (`svange/augint-shell`)
|
|
@@ -199,7 +201,7 @@ change in augint-shell — downstream tools read the canon at runtime.
|
|
|
199
201
|
| Standardization orchestration (single-repo) | augint-shell | `/ai-standardize-repo` |
|
|
200
202
|
| Standardization orchestration (workspace) | augint-shell | `/ai-workspace-standardize` |
|
|
201
203
|
| Workspace bulk verify | augint-shell skill layer | `/ai-workspace-standardize --verify` loops over children calling `ai-tools standardize <child-path> --verify --json` |
|
|
202
|
-
| AI agent configuration | augint-shell (`.ai-shell.toml`) | container settings
|
|
204
|
+
| AI agent configuration | augint-shell (`.ai-shell.toml`) | container/runtime settings only — NOT tool-specific Codex/OpenCode/Aider config |
|
|
203
205
|
|
|
204
206
|
### Canonical gate vocabulary
|
|
205
207
|
|
|
@@ -106,44 +106,6 @@ def _setup_worktree(container_name: str, container_project_dir: str, name: str)
|
|
|
106
106
|
return worktree_abs
|
|
107
107
|
|
|
108
108
|
|
|
109
|
-
def _inject_codex_api_key(container_name: str, api_key: str) -> None:
|
|
110
|
-
"""Write the configured API key into ~/.codex/auth.json inside the container.
|
|
111
|
-
|
|
112
|
-
Codex reads credentials from auth.json rather than the OPENAI_API_KEY env var,
|
|
113
|
-
so the env var alone has no effect. This patches auth.json in-place before
|
|
114
|
-
launch. Because ~/.codex/ is bind-mounted from the host, this also updates
|
|
115
|
-
the host file — effectively switching the active OpenAI account.
|
|
116
|
-
|
|
117
|
-
The key is passed via a dedicated env var to avoid any shell-escaping issues.
|
|
118
|
-
"""
|
|
119
|
-
# Use python3 inside the container: read OPENAI_API_KEY from env and write to auth.json.
|
|
120
|
-
# auth_mode is set to "apikey" to tell codex not to use SSO tokens.
|
|
121
|
-
python_cmd = (
|
|
122
|
-
"import json, os; "
|
|
123
|
-
"p = os.path.expanduser('~/.codex/auth.json'); "
|
|
124
|
-
"d = json.loads(open(p).read()) if os.path.exists(p) else {}; "
|
|
125
|
-
"d['auth_mode'] = 'apikey'; "
|
|
126
|
-
"d['OPENAI_API_KEY'] = os.environ['_CODEX_INJECT_KEY']; "
|
|
127
|
-
"open(p, 'w').write(json.dumps(d))"
|
|
128
|
-
)
|
|
129
|
-
args = [
|
|
130
|
-
"docker",
|
|
131
|
-
"exec",
|
|
132
|
-
"-e",
|
|
133
|
-
f"_CODEX_INJECT_KEY={api_key}",
|
|
134
|
-
container_name,
|
|
135
|
-
"python3",
|
|
136
|
-
"-c",
|
|
137
|
-
python_cmd,
|
|
138
|
-
]
|
|
139
|
-
logger.debug("codex api key inject: docker exec %s python3 -c ...", container_name)
|
|
140
|
-
result = subprocess.run(args, capture_output=True, text=True, timeout=10)
|
|
141
|
-
if result.returncode != 0:
|
|
142
|
-
raise click.ClickException(
|
|
143
|
-
f"Failed to inject codex api_key into ~/.codex/auth.json:\n {result.stderr.strip()}"
|
|
144
|
-
)
|
|
145
|
-
|
|
146
|
-
|
|
147
109
|
def _inject_mcp_config(
|
|
148
110
|
container_name: str,
|
|
149
111
|
host_path: str,
|
|
@@ -1124,24 +1086,16 @@ def codex(
|
|
|
1124
1086
|
extra_args,
|
|
1125
1087
|
):
|
|
1126
1088
|
"""Launch Codex in the dev container."""
|
|
1127
|
-
# Load config first to check provider setting
|
|
1128
1089
|
project = ctx.obj.get("project") if ctx.obj else None
|
|
1129
1090
|
config = load_config(project_override=project, project_dir=Path.cwd())
|
|
1130
|
-
use_bedrock = use_aws
|
|
1091
|
+
use_bedrock = use_aws
|
|
1131
1092
|
|
|
1132
1093
|
manager, name, exec_env, config = _get_manager(
|
|
1133
1094
|
ctx,
|
|
1134
1095
|
bedrock=use_bedrock,
|
|
1135
|
-
bedrock_profile=cli_profile or config.
|
|
1096
|
+
bedrock_profile=cli_profile or config.bedrock_profile,
|
|
1136
1097
|
)
|
|
1137
1098
|
|
|
1138
|
-
# Inject API key into ~/.codex/auth.json if configured.
|
|
1139
|
-
# Codex reads auth from auth.json (not the OPENAI_API_KEY env var), so we patch
|
|
1140
|
-
# auth.json directly. This also updates the bind-mounted host file, effectively
|
|
1141
|
-
# switching the active OpenAI account for the duration of the session.
|
|
1142
|
-
if config.codex_openai_api_key:
|
|
1143
|
-
_inject_codex_api_key(name, config.codex_openai_api_key)
|
|
1144
|
-
|
|
1145
1099
|
if use_bedrock:
|
|
1146
1100
|
profile_label = exec_env.get("AWS_PROFILE", "default")
|
|
1147
1101
|
region_label = exec_env.get("AWS_REGION", "us-east-1")
|
|
@@ -1177,15 +1131,14 @@ def opencode(
|
|
|
1177
1131
|
cli_profile,
|
|
1178
1132
|
):
|
|
1179
1133
|
"""Launch opencode in the dev container."""
|
|
1180
|
-
# Load config first to check provider setting
|
|
1181
1134
|
project = ctx.obj.get("project") if ctx.obj else None
|
|
1182
1135
|
config = load_config(project_override=project, project_dir=Path.cwd())
|
|
1183
|
-
use_bedrock = use_aws
|
|
1136
|
+
use_bedrock = use_aws
|
|
1184
1137
|
|
|
1185
1138
|
manager, name, exec_env, config = _get_manager(
|
|
1186
1139
|
ctx,
|
|
1187
1140
|
bedrock=use_bedrock,
|
|
1188
|
-
bedrock_profile=cli_profile or
|
|
1141
|
+
bedrock_profile=cli_profile or config.bedrock_profile,
|
|
1189
1142
|
)
|
|
1190
1143
|
|
|
1191
1144
|
if use_bedrock:
|
|
@@ -1214,7 +1167,8 @@ def opencode(
|
|
|
1214
1167
|
def aider(ctx, safe, extra_args):
|
|
1215
1168
|
"""Launch aider with local LLM in the dev container."""
|
|
1216
1169
|
manager, name, exec_env, config = _get_manager(ctx)
|
|
1217
|
-
|
|
1170
|
+
aider_model = f"ollama_chat/{config.primary_model}"
|
|
1171
|
+
cmd = ["aider", "--model", aider_model]
|
|
1218
1172
|
if not safe:
|
|
1219
1173
|
cmd.append("--yes-always")
|
|
1220
1174
|
cmd.extend(["--restore-chat-history", *extra_args])
|
|
@@ -1224,7 +1178,7 @@ def aider(ctx, safe, extra_args):
|
|
|
1224
1178
|
manager.ensure_tool_fresh(name, "aider")
|
|
1225
1179
|
|
|
1226
1180
|
mode_label = " (safe mode)" if safe else ""
|
|
1227
|
-
console.print(f"[bold]Launching aider{mode_label} ({
|
|
1181
|
+
console.print(f"[bold]Launching aider{mode_label} ({aider_model}) in {name}...[/bold]")
|
|
1228
1182
|
manager.exec_interactive(name, cmd, extra_env=exec_env)
|
|
1229
1183
|
|
|
1230
1184
|
|
|
@@ -51,9 +51,6 @@ class AiShellConfig:
|
|
|
51
51
|
ollama_port: int = DEFAULT_OLLAMA_PORT
|
|
52
52
|
webui_port: int = DEFAULT_WEBUI_PORT
|
|
53
53
|
|
|
54
|
-
# Aider
|
|
55
|
-
aider_model: str = f"ollama_chat/{DEFAULT_PRIMARY_MODEL}"
|
|
56
|
-
|
|
57
54
|
# Extra configuration
|
|
58
55
|
extra_env: dict[str, str] = field(default_factory=dict)
|
|
59
56
|
extra_volumes: list[str] = field(default_factory=list)
|
|
@@ -71,10 +68,6 @@ class AiShellConfig:
|
|
|
71
68
|
|
|
72
69
|
# Per-tool provider
|
|
73
70
|
claude_provider: str = "" # "anthropic" (default) or "aws"
|
|
74
|
-
opencode_provider: str = "" # "local" (default, Ollama) or "aws" (Bedrock)
|
|
75
|
-
codex_provider: str = "" # "openai" (default) or "aws" (Bedrock)
|
|
76
|
-
codex_openai_api_key: str = "" # OpenAI API key (if set, overrides mounted SSO auth)
|
|
77
|
-
codex_profile: str = "" # AWS profile for Bedrock auth (when provider = "aws")
|
|
78
71
|
|
|
79
72
|
@property
|
|
80
73
|
def full_image(self) -> str:
|
|
@@ -188,11 +181,6 @@ def _apply_config(config: AiShellConfig, path: Path) -> None:
|
|
|
188
181
|
if "webui_port" in llm:
|
|
189
182
|
config.webui_port = int(llm["webui_port"])
|
|
190
183
|
|
|
191
|
-
# [aider] section
|
|
192
|
-
aider = data.get("aider", {})
|
|
193
|
-
if "model" in aider:
|
|
194
|
-
config.aider_model = aider["model"]
|
|
195
|
-
|
|
196
184
|
# [aws] section
|
|
197
185
|
aws = data.get("aws", {})
|
|
198
186
|
if "ai_profile" in aws:
|
|
@@ -213,20 +201,6 @@ def _apply_config(config: AiShellConfig, path: Path) -> None:
|
|
|
213
201
|
if "skip_updates" in container:
|
|
214
202
|
config.skip_updates = bool(container["skip_updates"])
|
|
215
203
|
|
|
216
|
-
# [opencode] section
|
|
217
|
-
opencode_sec = data.get("opencode", {})
|
|
218
|
-
if "provider" in opencode_sec:
|
|
219
|
-
config.opencode_provider = opencode_sec["provider"]
|
|
220
|
-
|
|
221
|
-
# [codex] section
|
|
222
|
-
codex_sec = data.get("codex", {})
|
|
223
|
-
if "provider" in codex_sec:
|
|
224
|
-
config.codex_provider = codex_sec["provider"]
|
|
225
|
-
if "openai_api_key" in codex_sec:
|
|
226
|
-
config.codex_openai_api_key = codex_sec["openai_api_key"]
|
|
227
|
-
if "profile" in codex_sec:
|
|
228
|
-
config.codex_profile = codex_sec["profile"]
|
|
229
|
-
|
|
230
204
|
|
|
231
205
|
def _apply_env_vars(config: AiShellConfig) -> None:
|
|
232
206
|
"""Apply AI_SHELL_* environment variable overrides."""
|
|
@@ -239,15 +213,10 @@ def _apply_env_vars(config: AiShellConfig) -> None:
|
|
|
239
213
|
"AI_SHELL_CONTEXT_SIZE": ("context_size", int),
|
|
240
214
|
"AI_SHELL_OLLAMA_PORT": ("ollama_port", int),
|
|
241
215
|
"AI_SHELL_WEBUI_PORT": ("webui_port", int),
|
|
242
|
-
"AI_SHELL_AIDER_MODEL": ("aider_model", str),
|
|
243
216
|
"AI_SHELL_AI_PROFILE": ("ai_profile", str),
|
|
244
217
|
"AI_SHELL_AWS_REGION": ("aws_region", str),
|
|
245
218
|
"AI_SHELL_BEDROCK_PROFILE": ("bedrock_profile", str),
|
|
246
219
|
"AI_SHELL_CLAUDE_PROVIDER": ("claude_provider", str),
|
|
247
|
-
"AI_SHELL_OPENCODE_PROVIDER": ("opencode_provider", str),
|
|
248
|
-
"AI_SHELL_CODEX_PROVIDER": ("codex_provider", str),
|
|
249
|
-
"AI_SHELL_CODEX_OPENAI_API_KEY": ("codex_openai_api_key", str),
|
|
250
|
-
"AI_SHELL_CODEX_PROFILE": ("codex_profile", str),
|
|
251
220
|
"AI_SHELL_LOCAL_CHROME": ("local_chrome", bool),
|
|
252
221
|
"AI_SHELL_PINNED_IMAGE": ("pinned_image", bool),
|
|
253
222
|
"AI_SHELL_SKIP_UPDATES": ("skip_updates", bool),
|
|
@@ -53,7 +53,7 @@ WEBUI_DATA_VOLUME = "augint-shell-webui-data"
|
|
|
53
53
|
# =============================================================================
|
|
54
54
|
OLLAMA_IMAGE = "ollama/ollama"
|
|
55
55
|
WEBUI_IMAGE = "ghcr.io/open-webui/open-webui:main"
|
|
56
|
-
DEFAULT_PRIMARY_MODEL = "qwen3-coder-
|
|
56
|
+
DEFAULT_PRIMARY_MODEL = "qwen3-coder:32b-a3b-q4_K_M"
|
|
57
57
|
DEFAULT_FALLBACK_MODEL = "qwen3.5:27b"
|
|
58
58
|
DEFAULT_CONTEXT_SIZE = 32768
|
|
59
59
|
DEFAULT_OLLAMA_PORT = 11434
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
#
|
|
17
17
|
# bedrock_profile: AWS profile for Bedrock LLM API calls. Often a different
|
|
18
18
|
# account than ai_profile. Overrides AWS_PROFILE specifically for AI tool
|
|
19
|
-
# processes
|
|
19
|
+
# processes launched with `--aws`.
|
|
20
20
|
# Override with env var: AI_SHELL_BEDROCK_PROFILE
|
|
21
21
|
# Override per-session with: --profile <name> on the CLI
|
|
22
22
|
#
|
|
@@ -51,47 +51,11 @@
|
|
|
51
51
|
# [claude]
|
|
52
52
|
# provider = "aws"
|
|
53
53
|
|
|
54
|
-
#
|
|
55
|
-
#
|
|
56
|
-
#
|
|
57
|
-
#
|
|
58
|
-
#
|
|
59
|
-
# "aws" - Amazon Bedrock (uses bedrock_profile from [aws] section)
|
|
60
|
-
#
|
|
61
|
-
# When provider = "aws", use opencode's model picker to select a Bedrock model.
|
|
62
|
-
# Pre-configured models: Claude Sonnet 4, Opus 4, Haiku 4.
|
|
63
|
-
# Quick switch with CLI: ai-shell opencode --aws
|
|
64
|
-
# Override per-session: ai-shell opencode --aws --profile <name>
|
|
65
|
-
#
|
|
66
|
-
# Override with env var: AI_SHELL_OPENCODE_PROVIDER
|
|
67
|
-
#
|
|
68
|
-
# [opencode]
|
|
69
|
-
# provider = "local"
|
|
70
|
-
|
|
71
|
-
# =============================================================================
|
|
72
|
-
# [codex] - Codex settings
|
|
73
|
-
# =============================================================================
|
|
74
|
-
# provider: API backend for Codex.
|
|
75
|
-
# "openai" - OpenAI API (default, uses mounted ~/.codex credentials or api_key)
|
|
76
|
-
# "aws" - Amazon Bedrock (uses profile from this section or [aws] bedrock_profile)
|
|
77
|
-
#
|
|
78
|
-
# openai_api_key: OpenAI API key. If set, overrides mounted SSO auth and patches
|
|
79
|
-
# ~/.codex/auth.json before launch. Useful for switching between OpenAI organizations.
|
|
80
|
-
# Override with env var: AI_SHELL_CODEX_OPENAI_API_KEY
|
|
81
|
-
#
|
|
82
|
-
# profile: AWS profile for Bedrock auth (when provider = "aws").
|
|
83
|
-
# Falls back to bedrock_profile from [aws] section if not set.
|
|
84
|
-
# Override with env var: AI_SHELL_CODEX_PROFILE
|
|
85
|
-
#
|
|
86
|
-
# Quick switch with CLI: ai-shell codex --aws
|
|
87
|
-
# Override per-session: ai-shell codex --aws --profile <name>
|
|
88
|
-
#
|
|
89
|
-
# Override with env var: AI_SHELL_CODEX_PROVIDER
|
|
90
|
-
#
|
|
91
|
-
# [codex]
|
|
92
|
-
# provider = "openai"
|
|
93
|
-
# openai_api_key = "sk-proj-..."
|
|
94
|
-
# profile = "my-bedrock-account"
|
|
54
|
+
# Codex runtime note:
|
|
55
|
+
# ai-shell does not manage Codex's own config file, but `ai-shell codex --aws`
|
|
56
|
+
# launches Codex with Bedrock by injecting `CLAUDE_CODE_USE_BEDROCK=1` and
|
|
57
|
+
# setting `AWS_PROFILE` to `aws.bedrock_profile` (or `--profile` if passed).
|
|
58
|
+
# Local-LLM Codex configuration is not managed in this file.
|
|
95
59
|
|
|
96
60
|
# =============================================================================
|
|
97
61
|
# [container] - Docker container settings
|
|
@@ -127,10 +91,11 @@
|
|
|
127
91
|
# ai-shell llm shell # opens a bash shell inside the Ollama container
|
|
128
92
|
# ollama pull <model> # then run any ollama command directly
|
|
129
93
|
#
|
|
130
|
-
#
|
|
131
|
-
#
|
|
132
|
-
#
|
|
133
|
-
#
|
|
94
|
+
# ai-shell only manages the local LLM endpoint and generic runtime settings.
|
|
95
|
+
# Tool-specific config files for Codex, OpenCode, and Aider should be managed
|
|
96
|
+
# separately, for example via augint-opencodex.
|
|
97
|
+
# Keep tool-specific provider, model, auth, and permission settings out of this
|
|
98
|
+
# file. Put those in the generated tool config files instead.
|
|
134
99
|
#
|
|
135
100
|
# ─── RTX 4090 model guide (24 GiB VRAM) ─────────────────────────────────────
|
|
136
101
|
#
|
|
@@ -231,11 +196,3 @@
|
|
|
231
196
|
# primary_model = "huihui_ai/qwen3.5-abliterated:9b-OmniCoder"
|
|
232
197
|
# fallback_model = "qwen2.5-coder:14b-instruct"
|
|
233
198
|
# context_size = 32768
|
|
234
|
-
|
|
235
|
-
# =============================================================================
|
|
236
|
-
# [aider] - Aider settings
|
|
237
|
-
# =============================================================================
|
|
238
|
-
# model: LLM model string (default: ollama_chat/<primary_model>)
|
|
239
|
-
#
|
|
240
|
-
# [aider]
|
|
241
|
-
# model = "ollama_chat/qwen3-coder-next"
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
#
|
|
17
17
|
# bedrock_profile: AWS profile for Bedrock LLM API calls. Often a different
|
|
18
18
|
# account than ai_profile. Overrides AWS_PROFILE specifically for AI tool
|
|
19
|
-
# processes
|
|
19
|
+
# processes launched with `--aws`.
|
|
20
20
|
# Override with env var: AI_SHELL_BEDROCK_PROFILE
|
|
21
21
|
# Override per-session with: --profile <name> on the CLI
|
|
22
22
|
#
|
|
@@ -51,47 +51,11 @@
|
|
|
51
51
|
# claude:
|
|
52
52
|
# provider: aws
|
|
53
53
|
|
|
54
|
-
#
|
|
55
|
-
#
|
|
56
|
-
#
|
|
57
|
-
#
|
|
58
|
-
#
|
|
59
|
-
# "aws" - Amazon Bedrock (uses bedrock_profile from aws section)
|
|
60
|
-
#
|
|
61
|
-
# When provider is "aws", use opencode's model picker to select a Bedrock model.
|
|
62
|
-
# Pre-configured models: Claude Sonnet 4, Opus 4, Haiku 4.
|
|
63
|
-
# Quick switch with CLI: ai-shell opencode --aws
|
|
64
|
-
# Override per-session: ai-shell opencode --aws --profile <name>
|
|
65
|
-
#
|
|
66
|
-
# Override with env var: AI_SHELL_OPENCODE_PROVIDER
|
|
67
|
-
#
|
|
68
|
-
# opencode:
|
|
69
|
-
# provider: local
|
|
70
|
-
|
|
71
|
-
# =============================================================================
|
|
72
|
-
# codex - Codex settings
|
|
73
|
-
# =============================================================================
|
|
74
|
-
# provider: API backend for Codex.
|
|
75
|
-
# "openai" - OpenAI API (default, uses mounted ~/.codex credentials or api_key)
|
|
76
|
-
# "aws" - Amazon Bedrock (uses profile from this section or aws.bedrock_profile)
|
|
77
|
-
#
|
|
78
|
-
# openai_api_key: OpenAI API key. If set, overrides mounted SSO auth and patches
|
|
79
|
-
# ~/.codex/auth.json before launch. Useful for switching between OpenAI organizations.
|
|
80
|
-
# Override with env var: AI_SHELL_CODEX_OPENAI_API_KEY
|
|
81
|
-
#
|
|
82
|
-
# profile: AWS profile for Bedrock auth (when provider is "aws").
|
|
83
|
-
# Falls back to bedrock_profile from aws section if not set.
|
|
84
|
-
# Override with env var: AI_SHELL_CODEX_PROFILE
|
|
85
|
-
#
|
|
86
|
-
# Quick switch with CLI: ai-shell codex --aws
|
|
87
|
-
# Override per-session: ai-shell codex --aws --profile <name>
|
|
88
|
-
#
|
|
89
|
-
# Override with env var: AI_SHELL_CODEX_PROVIDER
|
|
90
|
-
#
|
|
91
|
-
# codex:
|
|
92
|
-
# provider: openai
|
|
93
|
-
# openai_api_key: sk-proj-...
|
|
94
|
-
# profile: my-bedrock-account
|
|
54
|
+
# Codex runtime note:
|
|
55
|
+
# ai-shell does not manage Codex's own config file, but `ai-shell codex --aws`
|
|
56
|
+
# launches Codex with Bedrock by injecting `CLAUDE_CODE_USE_BEDROCK=1` and
|
|
57
|
+
# setting `AWS_PROFILE` to `aws.bedrock_profile` (or `--profile` if passed).
|
|
58
|
+
# Local-LLM Codex configuration is not managed in this file.
|
|
95
59
|
|
|
96
60
|
# =============================================================================
|
|
97
61
|
# container - Docker container settings
|
|
@@ -131,10 +95,11 @@
|
|
|
131
95
|
# ai-shell llm shell # opens a bash shell inside the Ollama container
|
|
132
96
|
# ollama pull <model> # then run any ollama command directly
|
|
133
97
|
#
|
|
134
|
-
#
|
|
135
|
-
#
|
|
136
|
-
#
|
|
137
|
-
#
|
|
98
|
+
# ai-shell only manages the local LLM endpoint and generic runtime settings.
|
|
99
|
+
# Tool-specific config files for Codex, OpenCode, and Aider should be managed
|
|
100
|
+
# separately, for example via augint-opencodex.
|
|
101
|
+
# Keep tool-specific provider, model, auth, and permission settings out of this
|
|
102
|
+
# file. Put those in the generated tool config files instead.
|
|
138
103
|
#
|
|
139
104
|
# ─── RTX 4090 model guide (24 GiB VRAM) ─────────────────────────────────────
|
|
140
105
|
#
|
|
@@ -146,20 +111,23 @@
|
|
|
146
111
|
#
|
|
147
112
|
# Uncensored / instruction-following variants
|
|
148
113
|
# ────────────────────────────────────────────
|
|
149
|
-
# dolphin3:8b
|
|
150
|
-
# llama3.
|
|
151
|
-
# llama3.1:8b
|
|
152
|
-
# llama3.
|
|
114
|
+
# dolphin3:8b ~5 GiB Dolphin 3.0 (uncensored Llama 3.1 8B)
|
|
115
|
+
# huihui_ai/llama3.3-abliterated ~16 GiB Llama 3.3 70B abliterated (uncensored chat)
|
|
116
|
+
# llama3.1:8b ~5 GiB Meta Llama 3.1 8B instruct
|
|
117
|
+
# llama3.1:8b-instruct-q4_k_m ~5 GiB Q4_K_M quantized
|
|
118
|
+
# llama3.2:latest ~2 GiB Meta Llama 3.2 3B (fast/small)
|
|
153
119
|
#
|
|
154
120
|
# Coding-heavy models
|
|
155
121
|
# ────────────────────
|
|
156
|
-
# qwen2.5-coder:32b-q4_k_m
|
|
157
|
-
# qwen3:14b-q4_k_m
|
|
158
|
-
# qwen3:32b-q4_k_m
|
|
159
|
-
# qwen3-coder-
|
|
122
|
+
# qwen2.5-coder:32b-q4_k_m ~19 GiB Q4_K_M top coding quality on 4090
|
|
123
|
+
# qwen3:14b-q4_k_m ~9 GiB Q4_K_M fast coder with good accuracy
|
|
124
|
+
# qwen3:32b-q4_k_m ~19 GiB Q4_K_M best local coding on 4090
|
|
125
|
+
# qwen3-coder:32b-a3b-q4_K_M ~12-14 GiB Q4_K_M Qwen3-Coder-32B A3B (Mixture-of-Experts)
|
|
160
126
|
#
|
|
161
127
|
# Quick-start pull commands (run inside `ai-shell llm shell`):
|
|
162
128
|
# ollama pull qwen3.5:27b
|
|
129
|
+
# ollama pull qwen3-coder:32b-a3b-q4_K_M
|
|
130
|
+
# ollama pull huihui_ai/llama3.3-abliterated
|
|
163
131
|
# ollama pull dolphin3:8b
|
|
164
132
|
# ollama pull llama3.1:8b
|
|
165
133
|
# ollama pull qwen2.5-coder:32b-q4_k_m
|
|
@@ -188,7 +156,7 @@
|
|
|
188
156
|
# ai-shell llm setup # pulls models + applies context-window config
|
|
189
157
|
#
|
|
190
158
|
# llm:
|
|
191
|
-
# primary_model: qwen3-coder-
|
|
159
|
+
# primary_model: qwen3-coder:32b-a3b-q4_K_M
|
|
192
160
|
# fallback_model: qwen3.5:27b
|
|
193
161
|
# context_size: 32768
|
|
194
162
|
# ollama_port: 11434
|
|
@@ -235,11 +203,3 @@
|
|
|
235
203
|
# primary_model: huihui_ai/qwen3.5-abliterated:9b-OmniCoder
|
|
236
204
|
# fallback_model: qwen2.5-coder:14b-instruct
|
|
237
205
|
# context_size: 32768
|
|
238
|
-
|
|
239
|
-
# =============================================================================
|
|
240
|
-
# aider - Aider settings
|
|
241
|
-
# =============================================================================
|
|
242
|
-
# model: LLM model string (default: ollama_chat/<primary_model>)
|
|
243
|
-
#
|
|
244
|
-
# aider:
|
|
245
|
-
# model: ollama_chat/qwen3-coder-next
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
# Aider configuration
|
|
2
|
-
# See: https://aider.chat/docs/config/aider_conf.html
|
|
3
|
-
# Every CLI flag maps to a YAML key (use dashes, not underscores).
|
|
4
|
-
|
|
5
|
-
# Model selection
|
|
6
|
-
model: ollama_chat/qwen3-coder-next
|
|
7
|
-
# weak-model: ollama_chat/qwen3-coder-next
|
|
8
|
-
|
|
9
|
-
# Auto-accept changes (disable for interactive approval)
|
|
10
|
-
yes-always: true
|
|
11
|
-
|
|
12
|
-
# Restore previous chat on startup
|
|
13
|
-
restore-chat-history: true
|
|
14
|
-
|
|
15
|
-
# Git settings
|
|
16
|
-
auto-commits: true
|
|
17
|
-
# commit-prompt: "Use conventional commits (feat:, fix:, docs:, etc.)"
|
|
18
|
-
|
|
19
|
-
# Lint and test commands (uncomment and customize per project)
|
|
20
|
-
# lint-cmd: "ruff check --fix ."
|
|
21
|
-
# test-cmd: "pytest"
|
|
22
|
-
# auto-test: true
|
|
23
|
-
|
|
24
|
-
# Editor and output
|
|
25
|
-
# dark-mode: true
|
|
26
|
-
# pretty: true
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
# Aider ignore file (gitignore syntax)
|
|
2
|
-
# Files listed here are hidden from aider's context
|
|
3
|
-
|
|
4
|
-
# Secrets and credentials
|
|
5
|
-
.env
|
|
6
|
-
.env.*
|
|
7
|
-
*.pem
|
|
8
|
-
*.key
|
|
9
|
-
credentials.json
|
|
10
|
-
|
|
11
|
-
# Lock files (auto-generated)
|
|
12
|
-
poetry.lock
|
|
13
|
-
package-lock.json
|
|
14
|
-
yarn.lock
|
|
15
|
-
pnpm-lock.yaml
|
|
16
|
-
|
|
17
|
-
# Build artifacts
|
|
18
|
-
dist/
|
|
19
|
-
build/
|
|
20
|
-
__pycache__/
|
|
21
|
-
*.egg-info/
|
|
22
|
-
node_modules/
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
# Codex CLI configuration
|
|
2
|
-
# See: https://developers.openai.com/codex/config-reference
|
|
3
|
-
#
|
|
4
|
-
# All settings below are optional. Codex has sensible defaults.
|
|
5
|
-
# Uncomment and customize as needed.
|
|
6
|
-
|
|
7
|
-
# model = "o4-mini"
|
|
8
|
-
# web_search = "live"
|
|
9
|
-
# approval_policy = "on-request"
|
|
10
|
-
# sandbox = "workspace-write"
|
|
11
|
-
|
|
12
|
-
# Named permissions profile (requires default_permissions at top level)
|
|
13
|
-
# default_permissions = "default"
|
|
14
|
-
#
|
|
15
|
-
# [permissions.default]
|
|
16
|
-
#
|
|
17
|
-
# [permissions.default.filesystem]
|
|
18
|
-
# ":project_roots" = "write"
|
|
19
|
-
# "/tmp" = "write"
|
|
20
|
-
#
|
|
21
|
-
# [permissions.default.network]
|
|
22
|
-
# enabled = true
|
|
23
|
-
# mode = "limited"
|
|
24
|
-
# allowed_domains = ["api.github.com", "github.com", "pypi.org"]
|
|
25
|
-
|
|
26
|
-
# MCP servers
|
|
27
|
-
# [mcp_servers.example]
|
|
28
|
-
# type = "stdio"
|
|
29
|
-
# command = "npx"
|
|
30
|
-
# args = ["-y", "@example/mcp-server"]
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://opencode.ai/config.json",
|
|
3
|
-
"model": "ollama/qwen3-coder-next",
|
|
4
|
-
"provider": {
|
|
5
|
-
"ollama": {
|
|
6
|
-
"npm": "@ai-sdk/openai-compatible",
|
|
7
|
-
"name": "Ollama (Local)",
|
|
8
|
-
"options": {
|
|
9
|
-
"baseURL": "http://host.docker.internal:11434/v1"
|
|
10
|
-
},
|
|
11
|
-
"models": {
|
|
12
|
-
"qwen3-coder-next": {
|
|
13
|
-
"name": "Qwen3 Coder Next 80B MoE (Local)"
|
|
14
|
-
},
|
|
15
|
-
"qwen3.5:27b": {
|
|
16
|
-
"name": "Qwen 3.5 27B – General Chat (Local)"
|
|
17
|
-
},
|
|
18
|
-
"qwen3.5:32b-q4_k_m": {
|
|
19
|
-
"name": "Qwen 3.5 32B Q4_K_M – General Chat (Local, 4090)"
|
|
20
|
-
},
|
|
21
|
-
"qwen3:32b-q4_k_m": {
|
|
22
|
-
"name": "Qwen3 32B Q4_K_M – Coding (Local, 4090)"
|
|
23
|
-
},
|
|
24
|
-
"qwen3:14b-q4_k_m": {
|
|
25
|
-
"name": "Qwen3 14B Q4_K_M – Coding Fast (Local)"
|
|
26
|
-
},
|
|
27
|
-
"qwen2.5-coder:32b-q4_k_m": {
|
|
28
|
-
"name": "Qwen2.5 Coder 32B Q4_K_M – Coding (Local, 4090)"
|
|
29
|
-
},
|
|
30
|
-
"llama3.1:8b": {
|
|
31
|
-
"name": "Llama 3.1 8B – General (Local)"
|
|
32
|
-
},
|
|
33
|
-
"dolphin3:8b": {
|
|
34
|
-
"name": "Dolphin 3.0 8B – Uncensored Llama 3.1 (Local)"
|
|
35
|
-
},
|
|
36
|
-
"qwen3.5:9b": {
|
|
37
|
-
"name": "Qwen 3.5 9B – Chat (Local, 5070 Ti)"
|
|
38
|
-
},
|
|
39
|
-
"huihui_ai/qwen3.5-abliterated:9b": {
|
|
40
|
-
"name": "Qwen 3.5 9B Abliterated – Uncensored Chat (Local, 5070 Ti)"
|
|
41
|
-
},
|
|
42
|
-
"qwen2.5-coder:14b-instruct": {
|
|
43
|
-
"name": "Qwen2.5 Coder 14B – Coding (Local, 5070 Ti)"
|
|
44
|
-
},
|
|
45
|
-
"huihui_ai/qwen3.5-abliterated:9b-OmniCoder": {
|
|
46
|
-
"name": "Qwen 3.5 9B OmniCoder – Uncensored Coding (Local, 5070 Ti)"
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
},
|
|
50
|
-
"amazon-bedrock": {
|
|
51
|
-
"options": {
|
|
52
|
-
"region": "{env:AWS_REGION}",
|
|
53
|
-
"profile": "{env:AWS_PROFILE}"
|
|
54
|
-
},
|
|
55
|
-
"models": {
|
|
56
|
-
"anthropic.claude-sonnet-4-20250514-v1:0": {
|
|
57
|
-
"name": "Claude Sonnet 4 (Bedrock)"
|
|
58
|
-
},
|
|
59
|
-
"anthropic.claude-opus-4-20250514-v1:0": {
|
|
60
|
-
"name": "Claude Opus 4 (Bedrock)"
|
|
61
|
-
},
|
|
62
|
-
"anthropic.claude-haiku-4-5-20251001-v1:0": {
|
|
63
|
-
"name": "Claude Haiku 4.5 (Bedrock)"
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
},
|
|
68
|
-
"instructions": [],
|
|
69
|
-
"permission": {
|
|
70
|
-
"read": "allow",
|
|
71
|
-
"edit": "allow",
|
|
72
|
-
"glob": "allow",
|
|
73
|
-
"grep": "allow",
|
|
74
|
-
"list": "allow",
|
|
75
|
-
"bash": "allow",
|
|
76
|
-
"skill": "allow",
|
|
77
|
-
"webfetch": "allow",
|
|
78
|
-
"websearch": "allow",
|
|
79
|
-
"external_directory": "ask",
|
|
80
|
-
"doom_loop": "ask"
|
|
81
|
-
}
|
|
82
|
-
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|