-
Notifications
You must be signed in to change notification settings - Fork 604
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: Support mcp setup on CLI #636
Conversation
Desktop App for this PRThe following build is available for testing: The app is signed and notarized for macOS. After downloading, unzip the file and drag the Goose.app to your Applications folder. This link is provided by nightly.link and will work even if you're not logged into GitHub. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm! going through the config workflow is nice
let selected = | ||
cliclack::multiselect("enable systems: (use \"space\" to toggle and \"enter\" to submit)") | ||
.items( | ||
&system_status | ||
.iter() | ||
.map(|(name, _)| (name, name.as_str(), "")) | ||
.collect::<Vec<_>>(), | ||
) | ||
.initial_values(enabled_systems) | ||
.interact()?; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
fixing! just missed an option on the multiselect
let config = Config::load().unwrap_or_else(|_| { | ||
println!("No configuration found. Please run 'goose configure' first."); | ||
process::exit(1); | ||
}); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we want to distinguish between "no config" vs "invalid" config?
I made my config file invalid yaml and just got
No configuration found. Please run 'goose configure' first.
)] | ||
profile: Option<String>, | ||
model: Option<String>, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
should we remove the --provider
and --model
options? currently, if someone runs:
./target/debug/goose configure --provider openai --model gpt-4o
./target/debug/goose session
No configuration found. Please run 'goose configure' first.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oh good point. I do want to support these options for e.g. automations, but i need to remove the check for config if they are set
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I will have to revisit this though in a followup PR where we introduce system management for automations, so right now the file is still required for systems
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
sounds good
This includes a refactor of the config and configuration CLI to support the systems, and because they make config more complex we simplified other aspects like removing profiles. Instead hopefully the commands make it easy to change things on the fly. There are now environment and CLI overrides for everything but systems. We can implement those in a followup pr (e.g. a list of which named systems we should run with)
0afde15
to
e90f66d
Compare
This includes a refactor of the config and configuration CLI to support the systems, and because they make config more complex we simplified other aspects like removing profiles. Instead hopefully the commands make it easy to change things on the fly.
There are now environment and CLI overrides for everything but systems. We can implement those in a followup pr (e.g. a list of which named systems we should run with)