# Two-Way GitHub Sync

> Export your Taskade Genesis app to GitHub with pull requests, and import an exported app repo, public or private, into a workspace.

- Source: https://www.taskade.com/learn/automation/github-sync
- Section: Automation
- Updated: 2026-10-30
- Index of all pages: https://www.taskade.com/learn/llms.txt

## Overview

Connect a Taskade Genesis app to a GitHub repository in both directions. Export writes your app to a repo, and an update to an existing repo opens a pull request for review. Import reads a repo that holds an exported Taskade app and adds its projects, agents, automations, and apps to a workspace.

> **TL;DR:** Open **Export to GitHub** from the **Publish** menu, click **Connect GitHub** once, then create a repo or update one. An update always arrives as a pull request. Import from the workspace **More** menu. Export needs Pro or above. Import works on every plan. Pair with [.tsk export](https://www.taskade.com/learn/genesis/tsk-export) for offline backups.

```mermaid
flowchart LR
  A[Taskade Genesis app] -->|Export| B[Pull request<br/>in GitHub]
  B --> C[Merged in GitHub]
  C -->|Import from GitHub| D[Workspace with projects,<br/>agents, automations, apps]
  style A fill:#2a1225,color:#ff8fa3,stroke:#ff2d60,stroke-width:2px
  style B fill:#0d1a0e,color:#86efac,stroke:#22c55e,stroke-width:1.5px
  style C fill:#1a140a,color:#ffb74d,stroke:#e65100,stroke-width:1.5px
  style D fill:#0d1b2a,color:#7dd3fc,stroke:#38bdf8,stroke-width:1.5px
```

## Before You Start

- **What you need**: A GitHub account, and a Taskade Genesis app for export. Export needs Pro or above.
- **Time**: About five minutes the first time.

## Connect GitHub

Connect once per workspace. Taskade saves your GitHub sign-in as a connection in the workspace, the same kind of connection that automations use.

1. Open **Export to GitHub** (see the next section), or **Import from GitHub** in the workspace **More** menu.
2. Click **Connect GitHub**. The import window labels this button **Connect GitHub account**.
3. Sign in to GitHub in the window that opens.
4. Approve the access request.
5. Go back to Taskade. The connection appears under **GitHub account**.

Taskade uses the repositories that your GitHub account can reach. There is no separate repo picker. To remove the connection, click **Delete connection** in the **Export to GitHub** window, or remove it from **Connections** in the workspace.

## Export Your App to a Repo

Export when you want a teammate to review your app, run checks on it, or keep a copy in GitHub.

1. Open the Taskade Genesis app that you want to export.
2. Click **Publish** in the top bar.
3. Click the **Advanced Settings** icon. You can also open **App settings → Developer → Code**.
4. Click **Export to GitHub**.
5. Choose **Create new repo** or **Update existing**.

For a new repo:

6. Type a **Repository name**.
7. Turn on **Private repository** if you want to keep the repo private.
8. Click **Export**.

For a repo that you already have:

6. Enter the **Repository owner** and the **Repository name**.
7. Click **Create PR**.
8. Open the pull request in GitHub, review it, and merge it when you are ready.

You are done when the new repo, or the new pull request, shows in GitHub. In GitHub, the pull request comes from a new branch whose name starts with `taskade-export-`.

## Import a Repo into a Workspace

Import works with a repo that holds an exported Taskade app, such as a repo that you made with **Export to GitHub**. It does not turn an ordinary code repo into an app.

1. Open the workspace where you want the app.
2. In the workspace header, open the **More** menu and click **Import from GitHub**.
3. Paste the repo address, for example `https://github.com/owner/repo`. To import a branch, paste its `/tree/branch-name` address.
4. Make sure that your GitHub account shows under **GitHub account**.
5. Click **Import**.

Taskade adds the projects, agents, automations, and apps from the repo. A private repo works when your connected GitHub account can read it. A public repo also needs a connected GitHub account.

## Check the Parts That Export

Export writes the parts of the app that the bundle carries. It never writes your secrets.

| Component | In the GitHub export |
| --- | --- |
| App source files | Yes, as readable code files |
| App branding (page title, description, theme colors, share image) | Yes, when you customized it |
| Projects and templates | Yes |
| Agent definitions | Yes |
| Automations | Yes |
| Media files | Yes |
| App secrets | No |
| Custom domain settings | No |

## Review Changes on Each Export

Each export to an existing repo opens a new pull request. It does not add to an earlier one.

- Files outside the folders that Taskade writes, such as a `README` or CI scripts, stay as they are.
- A file that the app no longer has is removed in the pull request.
- Review the diff in GitHub, and resolve any merge conflict there before you merge.

## Use the GitHub trigger

Combine GitHub events with Taskade automations to close the loop.

- Use the GitHub integration triggers: new push, new pull request, new issue, new issue comment, new release, and new star.
- Use the [HTTP Webhook trigger](https://www.taskade.com/learn/automation/webhook-trigger) and point a GitHub repo webhook at it for any other event.
- Pair either trigger with [Branch](https://www.taskade.com/learn/automation/branch-action) and [Loop](https://www.taskade.com/learn/automation/loop-action) to fan out across files, commits, or PR comments.

## Plan availability

Export and import have different plan rules.

| Plan | Export to GitHub | Import from GitHub |
| --- | --- | --- |
| Free, Starter | Not available. The option shows an upgrade badge | Available, with per-item limits |
| Pro, Business, Max, Enterprise | Available | Available, with per-item limits |

Import checks each kind of item against your plan. A Free workspace holds one agent and three apps, and it cannot import automations. Automations that you build yourself run on every plan, Free included. See [Export Apps as .tsk Files](https://www.taskade.com/learn/genesis/tsk-export) for the full list. See the [pricing page](https://www.taskade.com/pricing) for the latest plan matrix.

## Frequently Asked Questions

### Does export change my GitHub repo right away?

Only a new repo. For a repo that you already have, Taskade opens a pull request. Nothing changes in the repo's default branch until you merge it.

### Can I import a private repo?

Yes. Import works when your connected GitHub account can read the repo.

### Does export include my app secrets?

No. Export never writes your secrets or your custom domain settings.

### Related guides

- [HTTP Webhook trigger](https://www.taskade.com/learn/automation/webhook-trigger). Pair GitHub events with custom Taskade automations.
- [Project Export](https://www.taskade.com/learn/automation/project-export). Export project content as Markdown alongside the repo.
- [Structured Output](https://www.taskade.com/learn/automation/structured-output). Parse PR or issue payloads into typed variables.
- [HTTP Request Action](https://www.taskade.com/learn/automation/http-request). Call the GitHub API directly from an automation.
- [.tsk Export](https://www.taskade.com/learn/genesis/tsk-export). Offline app kit backup that complements GitHub sync.
- [GitHub App Export & Import](https://www.taskade.com/learn/genesis/github-export-import). The short version of export and import.
