Everything you need to run Bundlle.
From your first project to wiring up GitHub and the AI that moves your tasks — this is the complete guide to working in Bundlle.
Introduction
Bundlle is an AI-native project-management workspace. Connect a GitHub repository to a project and your Kanban tasks move themselves as you push commits and merge pull requests — no more dragging cards to mirror work you've already done.
Everything is organized in a simple hierarchy: workspaces contain projects, projects contain tasks on a board, and your team collaborates through workspace and project membership.
What makes Bundlle different
- Your board updates itself from real git activity — a push or a merge moves the matching task automatically.
- Every AI decision is explained, with a confidence score you can see.
- Your source code never leaves GitHub. Bundlle only reads lightweight signals like branch names and commit messages.
- Changes are realtime — when a task moves, everyone on the board sees it instantly, no refresh.
No GitHub? Still useful.
Quickstart
Go from zero to an automated board in about five minutes.
- 1
Create your account
Sign up and you'll land in workspace setup. Authentication is handled by Clerk — email, or your favourite provider. - 2
Name your workspace
Your workspace is your team's home base. You can invite people later — start solo for now. - 3
Create your first project
Give it a name and you'll get a board with four columns:To Do,In Progress,In Review, andDone. - 4
Add a few tasks
Create cards on the board, then open one to set a priority, assign teammates, or add dependencies. - 5
Connect GitHub
Go toSettings → Integrations, connect your GitHub account, then link a repository to the project. - 6
Push some code
Push to a branch or open a pull request. Bundlle matches the work to a task and moves it for you. - 7
Invite your team
Open theMemberspage and invite teammates by email. They'll get a link to join.
Core concepts
Five ideas cover almost everything in Bundlle.
| Concept | What it is |
|---|---|
| Workspace | Your team's container. Holds projects, members, and settings. You own one and can join others. |
| Project | A body of work inside a workspace, with its own board, team, and (optionally) a linked GitHub repo. |
| Task | A single card on the board, with a status, priority, assignees, dependencies, and comments. |
| Board | The Kanban view of a project's tasks across four status columns. |
| Member | A person in a workspace, with a role that sets what they can do. |
Workspaces
A workspace is the top-level container for your team's work. Every account owns exactly one workspace and can also be a member of any number of others through invitations.
- The active workspace lives in the URL — every view sits under a workspace slug, like
/acme/projectsor/acme/members. - Switch between workspaces you belong to from the switcher in the top-left of the app.
- Each workspace keeps its own projects, members, and settings completely separate from every other.
Note
Projects
Projects organize work inside a workspace. Open one and you'll find a few tabs:
- Board — the Kanban view where tasks live and move.
- Issues — work synced from the linked GitHub repository.
- Insights — a summary of progress you can export to PDF.
- Team — who has access to this project, as a lead or a member.
- Settings — rename, link a repository, or duplicate the project.
You can duplicate a project to reuse its setup, and link exactly one GitHub repository per project to power automation.
Tasks & the board
The board is a four-column Kanban: To Do, In Progress, In Review, and Done. Drag a card between columns to change its status — or let GitHub do it for you.
Inside a task
Open any card to manage:
- Priority — low, medium, or high.
- Assignees — one or more teammates. Cards show stacked avatars for everyone assigned.
- Dependencies — mark a task as blocked by another. When the blocker reaches
Done, the people on the unblocked task get an email. - Comments & activity — a live feed of discussion plus the system events (created, AI moves) for that task.
My Tasks
The My Tasks page gathers every task assigned to you across all projects in the workspace, so you never lose track of what you own.
It's all realtime.
Members & roles
Invite people from the Memberspage. Enter an email, choose a role, and they'll receive a link to join. Invites stay pending until accepted, then flip to active. People sign in (or sign up) with the invited email to accept.
Workspace roles
| Role | What it means |
|---|---|
| Owner | The person who created the workspace. Full control over members, projects, and settings. |
| Admin | Helps run the workspace — manage projects and people. |
| Member | Collaborates on the projects they belong to. |
| Viewer | Read-only access to follow along. |
Project roles
Within a project, members are either a lead or a member. Owners and admins can manage who has access. To remove someone, revoke their membership from the Members page.
Connect a repository
Linking a repo is what turns on Bundlle's automation.
- 1
Connect your GitHub account
Go toSettings → Integrationsand authorize Bundlle. This is a standard GitHub OAuth flow. - 2
Link a repository to a project
Open the project's settings and choose the repo whose activity should drive this board. - 3
That's it
Bundlle registers a webhook for push and pull-request events. From now on, real git activity moves your tasks.
What Bundlle reads
Bundlle reads only the lightweight signal GitHub already produces for every push and pull request:
- Branch names
- Commit messages
- Pull request titles
- Open / merge / close events
- Author username
Your code stays in GitHub.
How AI matching works
When you push code or open and merge a pull request, Bundlle reads the event, asks the AI which open task the work belongs to, and moves that task to the right column. The target status comes from where the work happened:
| GitHub event | Task moves to |
|---|---|
| Push to a feature branch | In Progress |
| Pull request opened | In Review |
| Pull request merged into the default branch | Done |
| Direct push to the default branch | Done |
What it won't do
- Move a task backward — status only ever advances.
- Spend AI effort on events that can't move anything — merge-only pushes, PRs closed without merging, and bot authors are skipped before any AI call.
- Touch a task it isn't confident about (see Confidence tiers below).
Confidence tiers
Every match gets a confidence score from 0 to 100. The score decides what happens next:
| Confidence | What happens |
|---|---|
| 80–100 | Auto-moved. The task moves to its new column immediately. |
| 50–79 | Needs confirmation. Bundlle emails you a one-click yes/no link before moving anything. |
| 0–49 | Skipped. Logged in AI Activity, but nothing moves. |
Every outcome — auto-moved, pending, or skipped — is recorded so you always have a trail.
Email confirmations
When the AI is moderately confident (50–79%), it asks instead of guessing. You get an email with a single-use link:
- Click Yes and the task moves to its suggested column.
- Click No and nothing changes.
- Either way, the decision — and who made it — is recorded in AI Activity.
Note
AI Activity panel
The AI Activity panel is your window into every decision Bundlle makes. It updates live and shows, for each event, the trigger, the confidence score, and a clear reason.
You'll see each entry tagged with its outcome:
- Auto-moved — high confidence, task moved.
- Pending confirmation — waiting on your yes/no email.
- Confirmed / Declined — how someone answered a confirmation.
- Skipped — low confidence, nothing moved.
- Flagged for review — a linked issue was closed while its task wasn't done.
Nothing is hidden.
MCP server
Every workspace ships its own MCP (Model Context Protocol) server, so AI tools like Claude Code, Cursor and claude.ai can read the board and act on it — list tasks, create and move them, comment, and see why the AI moved things. One URL per workspace, found in Settings → Integrations → MCP server:
https://app.bundlle.com/api/workspaces/YOUR_WORKSPACE/mcpConnect a client
- 1
Claude Code
Run the add command in your project's terminal, then use/mcpto sign in when the browser opens. - 2
Cursor
Paste the ready-made snippet from the settings page into.cursor/mcp.jsonand approve the sign-in prompt. - 3
claude.ai / Claude desktop
OpenSettings → Connectors → Add custom connectorand paste the workspace MCP URL.
claude mcp add --transport http bundlle \
https://app.bundlle.com/api/workspaces/YOUR_WORKSPACE/mcpNote
What connected tools can do
| Tool | What it does |
|---|---|
get_workspace | Workspace overview: projects, members, your role. |
list_projects | Projects with open/done task counts. |
list_tasks | A project's board, filterable by status, priority or assignee. |
get_task | Full task detail: description, comments, blockers, files. |
my_tasks | Everything assigned to you, grouped by status. |
search_tasks | Search tasks across the workspace. |
get_ai_activity | Why the AI moved tasks: matches, confidence, evidence. |
create_task | Add a task with assignees, priority and deadline. |
update_task | Edit title, description, priority or deadline. |
move_task | Move a task across board columns. |
assign_task | Change who a task is assigned to. |
comment_on_task | Comment on a task; @mentions notify members. |
add_dependency | Mark a task as blocked by another. |
Access & scope
- The connection acts as you — never as a super-user.
- Owners and admins see the whole workspace; members see the projects they belong to; viewers connect read-only.
- Each URL is scoped to exactly one workspace. Other workspaces have their own URL on their own settings page.
It closes the loop.
Incoming status webhook
Beyond GitHub, any tool — a CI job, a GitHub Action, a deploy script — can move a task by calling your project's webhook. Each project has a unique URL with its own token, shown on the board header.
The request
Send a POST with the token in the query string (or an x-webhook-token header) and a JSON body naming the task and its new status:
curl -X POST \
"https://app.bundlle.com/api/projects/PROJECT_ID/webhook?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "status": "done", "taskTitle": "Fix login redirect" }'Body fields
| Field | Required | Notes |
|---|---|---|
status | Yes | One of todo, inProgress, inReview, done — friendly aliases accepted (see below). |
taskId | One of these | The exact id of the task to move. |
taskTitle | One of these | A case-insensitive task title, matched within the project. |
Status aliases
You don't have to know Bundlle's exact enum — common words map automatically:
| Send any of these | Resolves to |
|---|---|
| todo, backlog, to-do | todo |
| inProgress, in progress, doing, started | inProgress |
| inReview, in review, review | inReview |
| done, complete, completed, closed, merged | done |
Inside a GitHub Action, that looks like:
- name: Move task to In Review
run: |
curl -X POST "${{ secrets.BUNDLLE_WEBHOOK_URL }}" \
-H "Content-Type: application/json" \
-d "{\"status\":\"inReview\",\"taskTitle\":\"${{ github.event.pull_request.title }}\"}"Keep your token secret.
Notifications & inbox
The Inbox collects everything that needs your attention in one place:
- Workspace and project invitations
- Tasks assigned to you
- Comments and mentions on tasks you follow
- A dependency you were waiting on reaching Done
- AI matches waiting for your confirmation
Important events are also sent by email. Manage which emails you receive in Settings → Account.
Account settings
Find your personal settings under Settings → Account:
- Update your display name.
- Choose which notifications reach your email.
- Leave a workspace you no longer need to be part of.
The Integrations tab is where you connect or disconnect your GitHub account.
Security & privacy
Bundlle is built on a simple rule: read only what it needs, store only what matters, and explain every decision. In short:
- Your source code never leaves GitHub.
- Every workspace's data is isolated at the database level, enforced independently of the app.
- Incoming GitHub webhooks are verified by signature before anything is read.
- Authentication and sessions are handled by Clerk.
- AI confirmation links are single-use and time-limited.
For the full breakdown — data minimisation, access control, and responsible disclosure — read the Security page.
Statuses & priorities
Task statuses
| Column | Value | When work lands here |
|---|---|---|
| To Do | todo | Planned but not started. New tasks begin here. |
| In Progress | inProgress | Someone pushed to a feature branch for this task. |
| In Review | inReview | A pull request for the work was opened. |
| Done | done | The PR merged, or work was pushed to the default branch. |
Priorities
| Priority | Value |
|---|---|
| Low | low |
| Medium | medium |
| High | high |
Troubleshooting & FAQ
My task didn't move after I pushed
Walk through this checklist:
- Is the repository linked to the project in its settings?
- Is there an open task the commit could reasonably match? The AI only moves open tasks.
- Was confidence below 50%? Check the AI Activity panel — a skipped match is logged there with its reason.
- Was it a merge-only push, a PR closed without merging, or a bot author? Those are intentionally skipped.
I didn't get a confirmation email
Confirmation emails only go out for matches scoring 50–79%. Check your spam folder, and remember the link expires after 48 hours.
An invite isn't working
The invitee must sign in or sign up with the exact email you invited. You can re-send a pending invite from the Members page.
Can I use Bundlle without GitHub?
Absolutely. It works as a standalone Kanban board — the GitHub and AI features are optional extras.