> ## Documentation Index
> Fetch the complete documentation index at: https://docs.laneapp.co/llms.txt
> Use this file to discover all available pages before exploring further.

# GitHub

> Connect a GitHub repository so Lane can search and read your code while answering questions and drafting Plans.

The GitHub integration gives Lane read-only access to a repository of your choice. Lane can search across the codebase, read specific files, and ground its answers in what's actually in your code — useful when you need to know whether something already exists, how it works today, or want a Plan that reflects reality instead of memory.

Lane only reads. It never opens issues, PRs, or commits.

## Overview

Once connected, you can ask [Lane](/agent) questions like:

* "Is the new pricing tier already wired up in the codebase?"
* "How does our webhook handler work today?"
* "Find every place where we call the LemonSqueezy API."

It's especially useful for **non-engineers** who'd otherwise need to ping engineering for answers that live in the code, and for **engineering-facing Plans** that need to reflect what's actually in the repo.

## Connect

1. Go to **Settings → Integrations → GitHub**.
2. Click **Connect** and authorize the **Lane GitHub App**, selecting which repositories it can access on GitHub.
3. Back in Lane, pick a default **Organization**, **Repository**, and **Branch** — this becomes the scope Lane reads from.

The integration is installed at the GitHub organization level, so anyone in your Lane workspace can use it once a repo is selected.

### Permissions requested

The Lane GitHub App asks for two read-only permissions:

* **Contents: read** — to read file contents.
* **Metadata: read** — to list branches and find files.

No write access of any kind is requested.

## What Lane can do

With GitHub connected, Lane gains four read-only capabilities:

| Capability              | What it does                                  |
| :---------------------- | :-------------------------------------------- |
| **Search code**         | Find files by content across the repo.        |
| **Read file contents**  | Open a specific file at a path.               |
| **List branches**       | See all branches in the repo.                 |
| **Search repositories** | Find repos the Lane GitHub App has access to. |

GitHub's code search is rate-limited (about 30 requests per minute), so Lane favors one broad search over many narrow ones to stay well within it.

## Using the integration

There's no mode to switch on. Once connected, just [ask Lane](/agent) in any chat:

* "Find where the priority score is calculated."
* "Does this codebase handle [Linear](/linear) webhooks?"
* "Summarize what's in `src/auth/` and which files own session handling."

Lane reads the default repo and branch you set in Settings. To work in a different branch or repo, change the default and re-ask.

## Limits and good to know

* **One repo at a time.** Lane reads the repo and branch you've set as default; change it any time.
* **Read-only.** Lane never opens a PR, creates an issue, or commits. For that, use [Cursor](/cursor) — it can build from a Plan and open a PR for you.
* **GitHub rate limits apply.** If you hit them, code search pauses briefly until the bucket refills.
* **Disconnecting.** Disconnect from **Settings → Integrations → GitHub**, or remove the Lane GitHub App from your GitHub organization settings to revoke at the source.

## FAQs

**Q: Can Lane write to my repo?**\
A: No. The integration is read-only — no commits, no PRs, no issues.

**Q: Can I connect more than one repository?**\
A: Lane reads a single default repo and branch. Switch the default in Settings whenever you need to look at a different repo.

**Q: Does it work on private repos?**\
A: Yes, as long as the Lane GitHub App has been granted access to that repo on GitHub.

**Q: Who can see what Lane finds in the repo?**\
A: Only people in your Lane workspace who have access to the chat or Plan where the code was referenced. Lane doesn't expose the repo more broadly than it already is.
