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.
Files changed (32) hide show
  1. {augint_shell-0.75.0 → augint_shell-0.76.0}/PKG-INFO +9 -7
  2. {augint_shell-0.75.0 → augint_shell-0.76.0}/README.md +8 -6
  3. {augint_shell-0.75.0 → augint_shell-0.76.0}/pyproject.toml +1 -1
  4. {augint_shell-0.75.0 → augint_shell-0.76.0}/src/ai_shell/__init__.py +1 -1
  5. {augint_shell-0.75.0 → augint_shell-0.76.0}/src/ai_shell/cli/commands/tools.py +7 -53
  6. {augint_shell-0.75.0 → augint_shell-0.76.0}/src/ai_shell/config.py +0 -31
  7. {augint_shell-0.75.0 → augint_shell-0.76.0}/src/ai_shell/defaults.py +1 -1
  8. {augint_shell-0.75.0 → augint_shell-0.76.0}/src/ai_shell/templates/ai-shell.toml +11 -54
  9. {augint_shell-0.75.0 → augint_shell-0.76.0}/src/ai_shell/templates/ai-shell.yaml +23 -63
  10. augint_shell-0.75.0/src/ai_shell/templates/aider/aider.conf.yml +0 -26
  11. augint_shell-0.75.0/src/ai_shell/templates/aider/aiderignore +0 -22
  12. augint_shell-0.75.0/src/ai_shell/templates/codex/config.toml +0 -30
  13. augint_shell-0.75.0/src/ai_shell/templates/opencode/opencode.json +0 -82
  14. {augint_shell-0.75.0 → augint_shell-0.76.0}/src/ai_shell/cli/__init__.py +0 -0
  15. {augint_shell-0.75.0 → augint_shell-0.76.0}/src/ai_shell/cli/__main__.py +0 -0
  16. {augint_shell-0.75.0 → augint_shell-0.76.0}/src/ai_shell/cli/commands/__init__.py +0 -0
  17. {augint_shell-0.75.0 → augint_shell-0.76.0}/src/ai_shell/cli/commands/llm.py +0 -0
  18. {augint_shell-0.75.0 → augint_shell-0.76.0}/src/ai_shell/cli/commands/manage.py +0 -0
  19. {augint_shell-0.75.0 → augint_shell-0.76.0}/src/ai_shell/container.py +0 -0
  20. {augint_shell-0.75.0 → augint_shell-0.76.0}/src/ai_shell/exceptions.py +0 -0
  21. {augint_shell-0.75.0 → augint_shell-0.76.0}/src/ai_shell/gpu.py +0 -0
  22. {augint_shell-0.75.0 → augint_shell-0.76.0}/src/ai_shell/interactive.py +0 -0
  23. {augint_shell-0.75.0 → augint_shell-0.76.0}/src/ai_shell/local_chrome.py +0 -0
  24. {augint_shell-0.75.0 → augint_shell-0.76.0}/src/ai_shell/scaffold.py +0 -0
  25. {augint_shell-0.75.0 → augint_shell-0.76.0}/src/ai_shell/selector.py +0 -0
  26. {augint_shell-0.75.0 → augint_shell-0.76.0}/src/ai_shell/templates/__init__.py +0 -0
  27. {augint_shell-0.75.0 → augint_shell-0.76.0}/src/ai_shell/templates/aider/__init__.py +0 -0
  28. {augint_shell-0.75.0 → augint_shell-0.76.0}/src/ai_shell/templates/claude/__init__.py +0 -0
  29. {augint_shell-0.75.0 → augint_shell-0.76.0}/src/ai_shell/templates/claude/settings.json +0 -0
  30. {augint_shell-0.75.0 → augint_shell-0.76.0}/src/ai_shell/templates/codex/__init__.py +0 -0
  31. {augint_shell-0.75.0 → augint_shell-0.76.0}/src/ai_shell/templates/opencode/__init__.py +0 -0
  32. {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.75.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.5:27b"
109
- fallback_model = "qwen3-coder-next"
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, model provider — NOT for repo-shape detection |
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.5:27b"
96
- fallback_model = "qwen3-coder-next"
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, model provider — NOT for repo-shape detection |
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
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "augint-shell"
3
- version = "0.75.0"
3
+ version = "0.76.0"
4
4
  description = "Launch AI coding tools and local LLMs in Docker containers"
5
5
  authors = [{name = "svange"}]
6
6
  readme = "README.md"
@@ -1,6 +1,6 @@
1
1
  """augint-shell (ai-shell) - Launch AI coding tools and local LLMs in Docker containers."""
2
2
 
3
- __version__ = "0.75.0"
3
+ __version__ = "0.76.0"
4
4
 
5
5
  __all__ = [
6
6
  "__version__",
@@ -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 or config.codex_provider == "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.codex_profile,
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 or config.opencode_provider == "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
- cmd = ["aider", "--model", config.aider_model]
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} ({config.aider_model}) in {name}...[/bold]")
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-next"
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 (Claude Code, opencode) when their provider is set to "aws".
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
- # [opencode] - opencode settings
56
- # =============================================================================
57
- # provider: API backend for opencode.
58
- # "local" - Local Ollama LLM instance (default)
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
- # To select which model opencode uses, set primary_model here and update the
131
- # `model` field in .opencode/opencode.json to `ollama/<primary_model>`.
132
- # To configure additional selectable models in opencode, add entries under
133
- # the `provider.ollama.models` key in that file.
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 (Claude Code, opencode) when their provider is set to "aws".
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
- # opencode - opencode settings
56
- # =============================================================================
57
- # provider: API backend for opencode.
58
- # "local" - Local Ollama LLM instance (default)
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
- # To select which model opencode uses, set primary_model here and update the
135
- # `model` field in .opencode/opencode.json to `ollama/<primary_model>`.
136
- # To configure additional selectable models in opencode, add entries under
137
- # the `provider.ollama.models` key in that file.
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 ~5 GiB Dolphin 3.0 (uncensored Llama 3.1 8B)
150
- # llama3.1:8b ~5 GiB Meta Llama 3.1 8B instruct
151
- # llama3.1:8b-instruct-q4_k_m ~5 GiB Q4_K_M quantized
152
- # llama3.2:latest ~2 GiB Meta Llama 3.2 3B (fast/small)
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 ~19 GiB Q4_K_M top coding quality on 4090
157
- # qwen3:14b-q4_k_m ~9 GiB Q4_K_M fast coder with good accuracy
158
- # qwen3:32b-q4_k_m ~19 GiB Q4_K_M best local coding on 4090
159
- # qwen3-coder-next custom 80B MoE loaded via custom Modelfile
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-next
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
- }