GitHub Integration
Fleet's GitHub integration lets you browse repositories, issues, and pull requests from within the Fleet dashboard and create agent sessions directly from them. The issue or PR — including its description, labels, and comments — is injected as context into the session's initial prompt, giving the agent full awareness of the task.
Connecting GitHub
Fleet supports two authentication methods. Both are configured from the Settings page.
OAuth Device Flow (Recommended)
- Open Settings and find the GitHub integration card
- Click Connect with GitHub
- A verification URL and a one-time code are displayed
- Open the URL in your browser, enter the code, and authorize Weave Agent Fleet
- The connection completes automatically — no need to copy tokens


TIP
The OAuth device flow is the recommended method. It uses short-lived tokens and avoids manually creating or storing a Personal Access Token.
Personal Access Token (Advanced)
If you prefer using a PAT:
- Open Settings and find the GitHub integration card
- Expand Advanced: Use Personal Access Token
- Paste your token (
ghp_...) - Optionally click Test Connection to verify the token works
- Click Connect
The token needs repo scope for private repositories. For public repositories, no special scopes are required.
WARNING
Your token is stored locally in ~/.weave/integrations.json and is only sent to the GitHub API via the Fleet server — it never leaves your machine.
Browsing Repositories, Issues, and Pull Requests
Once connected, the Integrations page shows the GitHub browser.
- Navigate to the Integrations page from the sidebar
- Select a repository from the repository dropdown
- Switch between the Issues and Pull Requests tabs

Each issue and PR row shows the title, number, labels, and state. Click a row to expand it and see the full description and comments.
Creating a Session from an Issue or PR
The core workflow: turn any issue or pull request into an agent session with full context.
- Browse to the issue or PR you want to work on
- Click the Create Session button on the row
- A dialog opens pre-filled with the issue/PR title
- Choose an isolation strategy —
worktreerecommended for most tasks - Select a project directory — the directory where the agent will work
- Adjust the title if needed
- Click Create Session

The session is created and opens automatically. The issue or PR context — including description, labels, state, and comments — is formatted as a structured markdown prompt and sent to the agent as its first message.

What Gets Injected
The context prompt sent to the agent includes:
| Source | Fields Included |
|---|---|
| Issue | Title, URL, repository, state, labels, description, and all comments |
| Pull Request | Title, URL, repository, branch (head → base), state, draft status, diff stats (+/- lines, files changed), labels, description, and all comments |
This gives the agent everything it needs to start working without requiring you to copy-paste issue details into the prompt manually.
Via API
You can also create context-aware sessions programmatically by including a context field in the session creation payload:
curl -X POST http://localhost:3000/api/sessions \
-H "Content-Type: application/json" \
-d '{
"directory": "/home/dev/my-project",
"title": "Fix login bug",
"isolationStrategy": "worktree",
"context": {
"type": "github-issue",
"url": "https://github.com/owner/repo/issues/42",
"title": "Login fails on Safari",
"body": "# Login fails on Safari\n\nUsers report that...",
"metadata": {
"owner": "owner",
"repo": "repo",
"number": 42,
"state": "open",
"labels": [{ "name": "bug" }]
}
}
}'URL-Based Context Resolution
Fleet can also resolve context automatically from a GitHub URL. If an integration's resolveContext function recognizes the URL, it fetches the issue or PR details (including comments) from the GitHub API and builds the context automatically. This is used internally by the browser UI.
Supported URL patterns:
https://github.com/:owner/:repo/issues/:numberhttps://github.com/:owner/:repo/pull/:number
Disconnecting
To disconnect GitHub, open Settings, find the GitHub card, and click Disconnect. This removes the stored token from ~/.weave/integrations.json. Existing sessions that were created with GitHub context are not affected — the context was injected at creation time.
