docs: add goose-mobile (#3315)

Co-authored-by: Rizel Scarlett <rizel@squareup.com>
This commit is contained in:
Jordan Bergero
2025-07-10 21:01:27 +02:00
committed by GitHub
parent 7e4a98d4b6
commit 21f9cf7c2f
8 changed files with 132 additions and 24 deletions
@@ -0,0 +1,8 @@
{
"label": "Experimental",
"position": 7,
"link": {
"type": "doc",
"id": "experimental/index"
}
}
@@ -0,0 +1,46 @@
---
title: Goose Mobile
sidebar_position: 2
sidebar_label: Goose Mobile
---
Goose Mobile is an experimental project inspired by the Goose application, designed to automate tasks on Android devices. It acts as an open agent that can run on your phone, providing maximal automation of everyday tasks.
![Goose Mobile Screenshot](https://github.com/user-attachments/assets/af9d7d83-54f4-4ace-ad66-9e19f86c8fb9)
## Overview
Goose Mobile is an interpretation of [Goose](https://github.com/block/goose) for Android, allowing for end-to-end task automation. It can function as a home screen replacement or react to notifications, executing pre-defined rules on your behalf.
:::caution
Goose Mobile is an experimental project that requires deep access to your device. Use at your own risk.
:::
## Key Features
- **Automation**: Automate multi-step tasks using installed apps.
- **Notification Handling**: Respond to incoming notifications based on set rules.
- **Extensibility**: Discover and use extensions from other apps to perform background tasks.
## Getting Started
Goose Mobile is a research project and not intended for production use. It's recommended to try it on a spare Android phone or an emulator.
### Installation Options
- **Pre-built APK**: Quickly install via [Firebase distribution link](https://appdistribution.firebase.google.com/pub/i/3f111ea732d5f7f6).
- **Build from Source**: For developers, instructions are available in the [Goose Mobile repository](https://github.com/block/goose-mobile).
## Extending Goose Mobile
Goose Mobile supports extensions via the "mobile MCP" system, allowing it to use tools from other apps without switching contexts. For example, it can use a weather extension to quickly fetch weather information.
Example extension code and setup can be found in the repository's [README](https://github.com/block/goose-mobile).
## Contribution and Development
We welcome contributions to Goose Mobile. For more information, see the [Contributing Guide](https://github.com/block/goose-mobile/blob/main/CONTRIBUTING.md).
## Further Information
For detailed instructions, scenarios, and development setup, please refer to the [Goose Mobile repository](https://github.com/block/goose-mobile).
+70
View File
@@ -0,0 +1,70 @@
---
title: Experimental
hide_title: true
description: Experimental and radically unstable, but lot's of fun.
---
import Card from '@site/src/components/Card';
import styles from '@site/src/components/Card/styles.module.css';
<h1 className={styles.pageTitle}>Experimental</h1>
<p className={styles.pageDescription}>
Goose is an open source project that is constantly being improved and expanded upon. These experimental features and projects are still in development and may not be fully stable or ready for production use, but they showcase exciting possibilities for the future of AI automation.
</p>
:::note
The list of experimental features may change as Goose development progresses. Some features may be promoted to stable features, while others might be modified or removed. This section will be updated with specific experimental features as they become available.
:::
<div className={styles.categorySection}>
<h2 className={styles.categoryTitle}>🧪 Experimental Features</h2>
<div className={styles.cardGrid}>
<Card
title="Ollama Tool Shim"
description="Enable tool calling capabilities for language models that don't natively support tool calling (like DeepSeek) using an experimental local interpreter model setup."
link="/docs/experimental/ollama"
/>
<Card
title="Goose Mobile"
description="An experimental Android automation app that acts as an open agent running on your phone, providing maximal automation of everyday tasks."
link="/docs/experimental/goose-mobile"
/>
</div>
</div>
<div className={styles.categorySection}>
<h2 className={styles.categoryTitle}>📝 Featured Blog Posts</h2>
<div className={styles.cardGrid}>
<Card
title="Finetuning Toolshim Models for Tool Calling"
description="Addressing performance limitations in models without native tool calling support through dedicated toolshim model development."
link="/blog/2025/04/11/finetuning-toolshim"
/>
<Card
title="AI, But Make It Local With Goose and Ollama"
description="Learn how to integrate Goose with Ollama for a fully local AI experience, including structured outputs and tool calling capabilities."
link="/blog/2025/03/14/goose-ollama"
/>
<Card
title="Community-Inspired Benchmarking: The Goose Vibe Check"
description="See how open source AI models measure up in our first Goose agent benchmark tests, including toolshim performance analysis."
link="/blog/2025/03/31/goose-benchmark"
/>
</div>
</div>
<div className={styles.categorySection}>
<h2 className={styles.categoryTitle}>💬 Feedback & Support</h2>
<div className={styles.cardGrid}>
<Card
title="GitHub Issues"
description="Report bugs, request features, or contribute to the development of experimental features."
link="https://github.com/block/goose/issues"
/>
<Card
title="Discord Community"
description="Join our community to discuss experimental features, share feedback, and connect with other users."
link="https://discord.gg/block-opensource"
/>
</div>
</div>
+44
View File
@@ -0,0 +1,44 @@
---
title: Ollama Tool Shim
sidebar_position: 1
sidebar_label: Ollama Tool Shim
---
The Ollama tool shim is an experimental feature that enables tool calling capabilities for language models that don't natively support tool calling (like DeepSeek). It works by instructing the primary model to output json for intended tool usage, the interpretive model uses ollama structured outputs to translate the primary model's message into valid json, and then that json is translated into valid tool calls to be invoked.
#### How to use the Ollama Tool Shim
1. Make sure you have [Ollama](https://ollama.com/download) installed and running
2. The default interpreter model is `mistral-nemo`, if you want to proceed with this, you have to pull it from ollama server by running:
```bash
ollama pull mistral-nemo
```
3. If you want to use a different model, make sure to pull it first from the Ollama server. Then override the default interpreter model using the `GOOSE_TOOLSHIM_OLLAMA_MODEL` environment variable. For example, to use the `llama3.2` model, run:
```bash
ollama pull llama3.2
```
Then,
```bash
GOOSE_TOOLSHIM_OLLAMA_MODEL=llama3.2
```
4. For optimal performance, run the Ollama server with an increased context length:
```bash
OLLAMA_CONTEXT_LENGTH=32768 ollama serve
```
5. Enable the tool shim by setting the `GOOSE_TOOLSHIM` environment variable:
```bash
GOOSE_TOOLSHIM=1
```
Start a new Goose session with your tool shim preferences:
```bash
GOOSE_TOOLSHIM=1 GOOSE_TOOLSHIM_OLLAMA_MODEL=llama3.2 cargo run --bin goose session
```