diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 7433f7b20da1..783a010a66a3 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -6,8 +6,8 @@ We welcome Pull Requests for general contributions. If you have a larger new fea
Goose uses [uv][uv] for dependency management, and formats with [ruff][ruff].
Clone goose and make sure you have installed `uv` to get started. When you use
-`uv` below in your local goose directly, it will automatically setup the virtualenv
-and install dependencies.
+`uv` below in your local goose directly, it will automatically setup the virtualenv
+and install dependencies.
We provide a shortcut to standard commands using [just][just] in our `justfile`.
@@ -42,7 +42,7 @@ To run the test suite against your edges, use `pytest`:
uv run pytest tests -m "not integration"
```
-or, as a shortcut,
+or, as a shortcut,
```sh
just test
@@ -76,7 +76,7 @@ This project follows the [Conventional Commits](https://www.conventionalcommits.
[issues]: https://github.com/block-open-source/goose/issues
[goose-plugins]: https://github.com/block-open-source/goose-plugins
[ai-exchange]: https://github.com/block-open-source/goose/tree/main/packages/exchange
-[developer]: src/goose/toolkit/developer.py
+[developer]: https://github.com/block-open-source/goose/blob/dfecf829a83021b697bf2ecc1dbdd57d31727ddd/src/goose/toolkit/developer.py
[uv]: https://docs.astral.sh/uv/
[ruff]: https://docs.astral.sh/ruff/
[just]: https://github.com/casey/just
diff --git a/README.md b/README.md
index 3ec4631e963d..6f980ff76dfd 100644
--- a/README.md
+++ b/README.md
@@ -20,13 +20,13 @@ Goose is your on-machine developer agent, automating engineering tasks seamlessl
-
+
Unique features 🤖 •
- Block Employees on Goose
•
+ Block Employees on Goose
•
Quick start guide 🚀 •
Getting involved! đź‘‹
@@ -71,7 +71,7 @@ Goose is your on-machine developer agent, automating engineering tasks seamlessl
-- M, Software Engineer
-> If anyone was looking for another reason to check it out: I just asked Goose to break a string-array into individual string resources across eleven localizations, and it performed amazingly well and saved me a bunch of time doing it manually or figuring out some way to semi-automate it.
+> If anyone was looking for another reason to check it out: I just asked Goose to break a string-array into individual string resources across eleven localizations, and it performed amazingly well and saved me a bunch of time doing it manually or figuring out some way to semi-automate it.
-- A, Android Engineer
@@ -107,7 +107,7 @@ To install Goose, use `pipx`. First ensure [pipx][pipx] is installed:
brew install pipx
pipx ensurepath
```
-You can also place `.goosehints` in `~/.config/goose/.goosehints` if you like for always loaded hints personal to you.
+You can also place `.goosehints` in `~/.config/goose/.goosehints` if you like for always loaded hints personal to you.
Then install Goose:
@@ -117,7 +117,7 @@ pipx install goose-ai
### Running Goose
-#### Start a session
+#### Start a session
From your terminal, navigate to the directory you'd like to start from and run:
@@ -133,11 +133,11 @@ G❯ type your instructions here exactly as you would tell a developer.
Now you are interacting with Goose in conversational sessions - something like a natural language driven code interpreter. The default toolkit allows Goose to take actions through shell commands and file edits. You can interrupt Goose with `CTRL+D` or `ESC+Enter` at any time to help redirect its efforts.
-#### Exit the session
+#### Exit the session
-If you are looking to exit, use `CTRL+D`, although Goose should help you figure that out if you forget.
+If you are looking to exit, use `CTRL+D`, although Goose should help you figure that out if you forget.
-#### Resume a session
+#### Resume a session
When you exit a session, it will save the history in `~/.config/goose/sessions` directory and you can resume it later on:
@@ -151,10 +151,10 @@ To see more documentation on the CLI commands currently available to Goose check
Learn how to modify your Goose profiles.yaml file to add and remove functionality (toolkits) and providing context to get the most out of Goose in our [Getting Started Guide][getting-started].
-**Want to move out of the terminal and into an IDE?**
+**Want to move out of the terminal and into an IDE?**
-We have some experimental IDE integrations for VSCode and JetBrains IDEs:
-* https://github.com/square/goose-vscode
+We have some experimental IDE integrations for VSCode and JetBrains IDEs:
+* https://github.com/square/goose-vscode
* https://github.com/Kvadratni/goose-intellij
## Getting involved!
diff --git a/docs/guidance/getting-started.md b/docs/guidance/getting-started.md
index eeaf5fed44bf..cac0cf81f26c 100644
--- a/docs/guidance/getting-started.md
+++ b/docs/guidance/getting-started.md
@@ -6,7 +6,7 @@ This page contains two sections that will help you get started with Goose:
2. [Working with Goose](#working-with-goose): how to guide Goose through a task, and how to provide context for Goose to work with.
## Configuring Goose with the `profiles.yaml` file
-On the first run, Goose will detect what LLMs are available from your environment, and generate a configuration file at `~/.config/goose/profiles.yaml`. You can edit those profiles to further configure goose.
+On the first run, Goose will detect what LLMs are available from your environment, and generate a configuration file at `~/.config/goose/profiles.yaml`. You can edit those profiles to further configure goose.
Here’s what the default `profiles.yaml` could look like if Goose detects an OpenAI API key:
@@ -61,7 +61,7 @@ Write all code comments in French
### Toolkits
-Toolkits expand Goose’s capabilities and tailor its functionality to specific development tasks. Toolkits provide Goose with additional contextual information and interactive abilities, allowing for a more comprehensive and efficient workflow.
+Toolkits expand Goose’s capabilities and tailor its functionality to specific development tasks. Toolkits provide Goose with additional contextual information and interactive abilities, allowing for a more comprehensive and efficient workflow.
Here are some out-of-the-box examples:
@@ -84,23 +84,23 @@ Here are some examples:
#### Basic example plan
```md
-Your goal is to refactor this fastapi application to use a sqlite database. Use `pytest -s -v -x` to run the tests when needed.
+Your goal is to refactor this fastapi application to use a sqlite database. Use `pytest -s -v -x` to run the tests when needed.
- Use ripgrep to find the fastapi app and its tests in this directory
- read the files you found
- Add sqlalchemy and alembic as dependencies with poetry
- Run alembic init to set up the basic configuration
- Add sqlite dependency with Poetry
-- Create new module for database code and include sqlalchemy and alembic setup
+- Create new module for database code and include sqlalchemy and alembic setup
- Define an accounts table with SQLAlchemy
-- Implement CRUD operations for accounts table
+- Implement CRUD operations for accounts table
- Update main.py to integrate with SQLite database and use CRUD operation
- Use alembic to create the table
- Use conftest to set up a test database with a new DB URL
- Run existing test suite and ensure all tests pass. Do not edit the test case behavior, instead use tests to find issues.
```
-The starting plan is specified with the tasks. Each list entry is a different step in the plan. This is a pretty detailed set of tasks, but is really just a break-down of the conversation we had in the previous section.
+The starting plan is specified with the tasks. Each list entry is a different step in the plan. This is a pretty detailed set of tasks, but is really just a break-down of the conversation we had in the previous section.
The kickoff message is what gets set as the first user message when goose starts running (with the plan). This message should contain the overall goal of the tasks and could also contain extra context you want to include for this problem. In our case, we are just mentioning the test command we want to use to run the tests.
@@ -137,4 +137,5 @@ goose session start --plan plan.md --args dep=pytest,repo=github
[configuration]: ../configuration.md
[available-toolkits]: ../plugins/available-toolkits.md
-[providers]: ../plugins/providers.md
\ No newline at end of file
+[providers]: ../plugins/providers.md
+[goose-plugins]:https://github.com/block-open-source/goose-plugins
diff --git a/mkdocs.yml b/mkdocs.yml
index 6ec3d13d6d39..df77335eee5c 100644
--- a/mkdocs.yml
+++ b/mkdocs.yml
@@ -4,9 +4,8 @@ site_description: Documentation for Goose
repo_url: https://github.com/block-open-source/goose
repo_name: "block-open-source/goose"
edit_uri: "https://github.com/block-open-source/goose/blob/main/docs/"
-site_url: 'https://block-open-source.github.io/goose/'
+site_url: "https://block-open-source.github.io/goose/"
use_directory_urls: false
-
# theme
theme:
name: material
@@ -39,38 +38,36 @@ theme:
favicon: assets/logo.ico
icon:
logo: assets/logo.ico
-
# plugins
plugins:
- include-markdown
- callouts
- glightbox
- mkdocstrings:
- handlers:
- python:
- setup_commands:
- - "import sys; sys.path.append('src')" # Add src folder to Python path
+ handlers:
+ python:
+ paths: [src]
+ setup_commands:
+ - "import sys; sys.path.append('src')" # Add src folder to Python path
- search:
separator: '[\s\u200b\-_,:!=\[\]()"`/]+|\.(?!\d)|&[lg]t;|(?!\b)(?=[A-Z][a-z])'
- redirects:
redirect_maps:
- - git-committers: # Show git committers
+ - git-committers: # Show git committers
branch: main
- enabled: !ENV [ ENV_PROD, false ]
+ enabled: !ENV [ENV_PROD, false]
repository: block-open-source/goose
- - git-revision-date-localized: # Show git revision date
+ - git-revision-date-localized: # Show git revision date
enable_creation_date: true
- enabled: !ENV [ ENV_PROD, false ]
-
+ enabled: !ENV [ENV_PROD, false]
extra:
annotate:
json:
- .s2
- social: [ ]
+ social: []
analytics:
provider: google
property: !ENV GOOGLE_ANALYTICS_KEY
-
markdown_extensions:
- abbr
- admonition
@@ -111,27 +108,26 @@ markdown_extensions:
- pymdownx.tilde
- toc:
permalink: true
-
nav:
- Home: index.md
- - 'Installation': installation.md
- - 'Contributing': contributing.md
+ - "Installation": installation.md
+ - "Contributing": contributing.md
- Guidance:
- - 'Getting Started': guidance/getting-started.md
- - 'Quick Tips': guidance/tips.md
- - 'Applications of Goose': guidance/applications.md
- - 'Goose in Action': guidance/goose-in-action.md
+ - "Getting Started": guidance/getting-started.md
+ - "Quick Tips": guidance/tips.md
+ - "Applications of Goose": guidance/applications.md
+ - "Goose in Action": guidance/goose-in-action.md
- Plugins:
- - 'Overview': plugins/plugins.md
- - Toolkits:
- - 'Using Toolkits': plugins/using-toolkits.md
- - 'Creating a New Toolkit': plugins/creating-a-new-toolkit.md
- - 'Available Toolkits': plugins/available-toolkits.md
- - CLI Commands:
- - 'Available CLI Commands': plugins/cli.md
- - Providers:
- - 'Available Providers': plugins/providers.md
+ - "Overview": plugins/plugins.md
+ - Toolkits:
+ - "Using Toolkits": plugins/using-toolkits.md
+ - "Creating a New Toolkit": plugins/creating-a-new-toolkit.md
+ - "Available Toolkits": plugins/available-toolkits.md
+ - CLI Commands:
+ - "Available CLI Commands": plugins/cli.md
+ - Providers:
+ - "Available Providers": plugins/providers.md
- Advanced:
- Configuration: configuration.md
- - 'Reference':
- - 'API Docs': reference/index.md
+ - "Reference":
+ - "API Docs": reference/index.md
diff --git a/src/goose/cli/session.py b/src/goose/cli/session.py
index 2d8c27f9f0b4..16b3cab6c907 100644
--- a/src/goose/cli/session.py
+++ b/src/goose/cli/session.py
@@ -181,11 +181,7 @@ def run(self) -> None:
self._log_cost()
def reply(self) -> None:
- """Reply to the last user message, calling tools as needed
-
- Args:
- text (str): The text input from the user.
- """
+ """Reply to the last user message, calling tools as needed"""
self.status_indicator.update("responding")
response = self.exchange.generate()