Mac (and maybe windows?) app for Goose.
git clone git@github.com:block/goose.git
cd goose/ui/desktop
npm install
npm start
This is an electron forge app, using vite and react.js. gooosed
runs as multi process binaries on each window/tab similar to chrome.
see package.json
:
npm run bundle:default
will give you a Goose.app/zip which is signed/notarized but only if you setup the env vars as per forge.config.ts
(you can empty out the section on osxSign if you don't want to sign it) - this will have all defaults.
npm run bundle:preconfigured
will make a Goose.app/zip signed and notarized, but use the following:
f" process.env.GOOSE_PROVIDER__TYPE = '{os.getenv("GOOSE_BUNDLE_TYPE")}';",
f" process.env.GOOSE_PROVIDER__HOST = '{os.getenv("GOOSE_BUNDLE_HOST")}';",
f" process.env.GOOSE_PROVIDER__MODEL = '{os.getenv("GOOSE_BUNDLE_MODEL")}';"
This allows you to set for example GOOSE_PROVIDER__TYPE to be "databricks" by default if you want (so when people start Goose.app - they will get that out of the box). There is no way to set an api key in that bundling as that would be a terrible idea, so only use providers that can do oauth (like databricks can), otherwise stick to default goose.
Set VITE_START_EMBEDDED_SERVER=yes
to no in .env. Run
cargo run -p goose-serverfrom parent dir.
npm run startwill then run against this. You can try server directly with
./test.sh`