summaryrefslogtreecommitdiffhomepage
path: root/packages/tui
diff options
context:
space:
mode:
authoradamdottv <[email protected]>2025-07-10 10:19:25 -0500
committeradamdottv <[email protected]>2025-07-10 10:19:25 -0500
commit6603d9a9f0712ca26ec9b373482e119e8aa9fd45 (patch)
treecd91d2743f0dca366b442add52ae0112ae7ed51a /packages/tui
parent5dc1920a4c6340aa27cef6671363e79ed876d49b (diff)
downloadopencode-6603d9a9f0712ca26ec9b373482e119e8aa9fd45.tar.gz
opencode-6603d9a9f0712ca26ec9b373482e119e8aa9fd45.zip
feat: --mode flag passed to tui
Diffstat (limited to 'packages/tui')
-rw-r--r--packages/tui/cmd/opencode/main.go3
-rw-r--r--packages/tui/internal/app/app.go14
2 files changed, 12 insertions, 5 deletions
diff --git a/packages/tui/cmd/opencode/main.go b/packages/tui/cmd/opencode/main.go
index cd827a952..363ade844 100644
--- a/packages/tui/cmd/opencode/main.go
+++ b/packages/tui/cmd/opencode/main.go
@@ -27,6 +27,7 @@ func main() {
var model *string = flag.String("model", "", "model to begin with")
var prompt *string = flag.String("prompt", "", "prompt to begin with")
+ var mode *string = flag.String("mode", "", "mode to begin with")
flag.Parse()
url := os.Getenv("OPENCODE_SERVER")
@@ -68,7 +69,7 @@ func main() {
ctx, cancel := context.WithCancel(context.Background())
defer cancel()
- app_, err := app.New(ctx, version, appInfo, modes, httpClient, model, prompt)
+ app_, err := app.New(ctx, version, appInfo, modes, httpClient, model, prompt, mode)
if err != nil {
panic(err)
}
diff --git a/packages/tui/internal/app/app.go b/packages/tui/internal/app/app.go
index b41bbaeaf..cb54aa940 100644
--- a/packages/tui/internal/app/app.go
+++ b/packages/tui/internal/app/app.go
@@ -39,6 +39,7 @@ type App struct {
Commands commands.CommandRegistry
InitialModel *string
InitialPrompt *string
+ IntitialMode *string
compactCancel context.CancelFunc
}
@@ -70,8 +71,9 @@ func New(
appInfo opencode.App,
modes []opencode.Mode,
httpClient *opencode.Client,
- model *string,
- prompt *string,
+ initialModel *string,
+ initialPrompt *string,
+ initialMode *string,
) (*App, error) {
util.RootPath = appInfo.Path.Root
util.CwdPath = appInfo.Path.Cwd
@@ -106,6 +108,9 @@ func New(
if appState.Mode != "" {
modeName = appState.Mode
}
+ if initialMode != nil && *initialMode != "" {
+ modeName = *initialMode
+ }
for i, m := range modes {
if m.Name == modeName {
modeIndex = i
@@ -154,8 +159,9 @@ func New(
Session: &opencode.Session{},
Messages: []opencode.MessageUnion{},
Commands: commands.LoadFromConfig(configInfo),
- InitialModel: model,
- InitialPrompt: prompt,
+ InitialModel: initialModel,
+ InitialPrompt: initialPrompt,
+ IntitialMode: initialMode,
}
return app, nil