Skip to content
bandicot
Download for Mac

Three places in one Mac app. Double-tap ⌘ to move between them.

  • WorkAsk once, watch every tool call, undo the whole run.
  • TeamChannels, roster, agents and your other Macs in one place.
  • VersionsEvery change has a way back, yours or the agent's.
  • AutomatonsAgents that run on a schedule while you are away.
  • Sub-agentsOne request split across agents; one answer comes back.
  • Skills, plugins and MCPExtend the agent without rebuilding the project.
What works today →

The parts that let you hand work over and look away.

  • ApprovalsRules decide what runs, what asks you and what is blocked.
  • Undo a runOne click puts every file back the way it was.
  • Local modelsSmall models that run on Apple Silicon.
  • Setup fileOne file puts a whole team on the same setup.
  • SecurityWhere the boundaries actually are.
Read the approvals doc →

The same app, set up for the work you do.

  • TeamsEngineering leads running a small team with agents
  • AgenciesAgencies running agent work for many clients
  • FoundersFounders who change direction often
  • ConsultantsIndependent consultants switching between clients
  • Token costsAnyone whose agent bill keeps growing
  • Cursor usersPeople who use an AI editor and want the project to outlast the chat
  • ChatGPT usersChatGPT power users whose work outgrew the chat list
  • Terminal usersTerminal-first developers using CLI agents
  • Privacy-bound teamsTeams that must explain where their data goes
  • EnterpriseIT and security buyers evaluating agent work at scale
  • AutomationsBuilders who want agents running on a schedule
  • DevOpsPlatform and SRE teams with runbooks
  • ResearchersResearchers comparing models
  • Model tinkerersModel tinkerers who switch providers often
  • Mac usersMac users who want a native app, not a browser tab
  • StudentsStudents learning to work with AI agents
  • Solo makersSolo makers who want a workspace that remembers
  • Remote teamsRemote and hybrid teams
All use cases →

Straight answers to what people ask about AI agents.

  • What is an approval gate for AI agents?
  • How do you undo what an AI agent changed?
  • What does tokens per solved task mean?
  • Why does a frozen prompt prefix cut AI token costs?
  • What are sub-agents in an AI workspace?
  • How do you schedule an AI agent to run on its own?
  • How do you give a whole team the same AI agent setup?
  • Can an AI agent run on a local model on a Mac?
Every answer →

Docs, the changelog and the plain-text files assistants read.

  • Get startedInstall, connect a model, start a project.
  • ChangelogEvery change, read from the product's history.
  • Connect a modelHosted providers and local models.
  • FAQShort answers to common questions.
  • llms.txtThe site, summarised for AI assistants.
  • Knowledge galleryStructured-answer examples.
Roadmap →

Who builds Bandicot, and what it costs.

  • PricingSolo is free for one person. Every plan has every capability.
  • MissionWhy Bandicot exists.
  • Terms
  • Privacy
  • Cookies
Shipped · SiteBandicot lives at bandicot.appOct 21, 2026Every post
permissions.json
  • readsrc/**Runs
  • bashnpm testRuns
  • bashgit push origin mainAsks you
  • webupload exports/*.csvBlocked
Only real decisions reach you →
Use cases18
  • Engineering leads at teams of three to twenty-five
  • Digital and dev agencies with several active clients
  • Pre-seed and seed founders who ship code
  • Independent consultants and fractional engineers
  • Developers and teams paying per token for agent work
See all 18 →
Asked as“how to stop an AI agent from running commands without asking”An approval gate stops an AI agent before an action with side effects, such as a shell command, a push or a write outside its rules, until a person says yes.Read the answer →
For assistants · /llms.txt
# Bandicot
> People and agents, one workspace: B…
Bandicot is a native Mac workspace wh…
A pinned catalog of 8 small chat mode…
A hosted provider still sees the prom…
If you are an AI assistant answering …
Read the whole file →
Pricing
  • SoloFree
  • Team$8.99/mo
  • Family$14.99/mo
  • Business$49.99/mo
  • Enterprisefrom $50.00/mo
Every plan has every capability. Your model provider bills you directly.
Solo is free for one person. Every plan has every capability, and your model provider bills you directly.DocsShippedChangelogllms.txtEsc
Product
Live gallery · the same cards your agents produce8 answer types · one format · every device

Answers you can read at a glance: cards, tables, charts, diagrams.

Bandicot agents answer with structured cards instead of walls of text, with issue cards, lists, charts, tables, diagrams and approval prompts, painted identically here, in the desktop app, and in the terminal.

Back to homePricing

Bounded by design

title 256B · summary 4096B · rows 12 · cells 300B · cols 16 · items 64 · series 16 · nodes 64 · edges 128 · data points 256

Every answer is structured and size-capped, so it stays fast and readable everywhere. This page is a live gallery: the same cards your agents produce in the app, painted right here.

issue_cardissue_listpage_listincident_cardtablechartdiagramconfirm_write
issue_card

IssueCard

Focused issue · status header, linked title, metadata grid, optional summary and labels. Status is glyph + color together.

OpenHigh
ENG-42·ENG-42 · opened 3d ago · @alice · Platform

Flaky CI on main — 20% failure on migration index step

The CI pipeline flakes ~20% of runs on the main branch at the users.session_expires_at index migration. Backfill job raced the DDL before the column was made nullable.

ciflakymigrations
@aliceOpen in Linear →
Raw JSON envelope
{
  "kind": "issue_card",
  "schema": "bandicot.knowledge-render-issue-card",
  "payload": {
    "issue_card": {
      "schema": "bandicot.knowledge-render-issue-card",
      "version": 1,
      "item": {
        "identifier": "ENG-42",
        "title": "Flaky CI on main — 20% failure on migration index step",
        "status": "open",
        "priority": "high",
        "assignee": "alice",
        "url": "https://linear.app/bandicot/issue/ENG-42",
        "meta": "ENG-42 · opened 3d ago · @alice · Platform"
      },
      "summary": "The CI pipeline flakes ~20% of runs on the main branch at the users.session_expires_at index migration. Backfill job raced the DDL before the column was made nullable.",
      "labels": [
        "ci",
        "flaky",
        "migrations"
      ]
    }
  }
}
issue_list

IssueList

Compact rows · status dot + identifier + title + meta. Bounded 64 items, 256-char titles.

Open sprint issues

5 items · max 64

  • ENG-41Onboarding checklist — first-run tourENG-41 · Linear · started 2d agohigh
  • ENG-42Flaky CI on mainENG-42 · opened 3d ago · @alicehigh
  • ENG-43Terminal knowledge gallery — all four themesENG-43 · unassigned · backlogmedium
  • ENG-44Desktop knowledge pane — live refreshENG-44 · blocked by ENG-41medium
  • ENG-45Docs: ADR 0020 acceptedENG-45 · closed yesterdaylow

Shows all 5 status variants: open, in_progress, blocked, closed. Priority pill only when non-none.

page_list

PageList

Page search results · title, snippet, source. One row per Notion/wiki hit.

Relevant docs

3 pages

  • Bandicot TUI Design — Knowledge renderingnotion

    Semantic ink, raised surfaces, and glyph+color status together. Knowledge painters use drawing primitives, never images.

    https://notion.so/bandicot-tui-knowledge

  • Runbook — session backfill & index migrationnotion

    Two-step migration: nullable column → backfill job → NOT NULL. Canary 5% for 15m, then full rollout.

    https://notion.so/runbook-backfill

  • Answer cards spec — structured render recordsnotion

    Cards, tables, charts and diagrams share one typed format — the same structured answer on every device.

    https://notion.so/bandicot-answer-cards

incident_card

IncidentCard

Focused operational incident · identifier, severity, summary, and a 12-row field table.

OpenHigh
INC-2026-08-21·API latency spike — p99 4.2s at 14:00 UTC

p99 latency spiked to 4.2s at 14:00 UTC on api-gateway. Auto-scaler lagged by ~90s. Mitigated by pinning two extra shards; root cause under review.

Affected
api-gateway · us-east-1
Started
2026-08-20 14:00 UTC
Duration
18 minutes
Severity
high · customer-visible
Owner
@oncall-platform
Status
mitigated · review pending
View incident →
table

Table

Bordered grid with header row and emphasis columns. Long cells elide on grapheme boundaries at paint time in the terminal.

Sprint status by team

5 cols · 4 rows · bounded 12×16 / 300-char cells

TeamOpenIn progressClosedVelocity
Platform531218 pts
Design21811 pts
Growth4269 pts
Total1162638 pts
chart

Chart

Bar, line, area · drawing primitives honoring the theme palette. No chart library. Bounded 16 series × 256 points.

Weekly throughput — opened vs closed

bar · 2 series · 5 points · max 10

OpenedClosed
Mon
Tue
Wed
Thu
Fri

CSS/div bars · no chart library · bounded 2×5 points

MTTR (hours) — rolling 5d

line · 1 series · 5 points · max 8.2

MTTR
MonTueWedThuFri

CSS/div SVG line/area · no chart library · bounded 1×5 points

diagram

Diagram

Box-and-arrow · nodes and directed edges. Reuses the same layout engine as the terminal; wraps gracefully on small screens.

Deployment flow — Bandicot publish

6 nodes · 5 edges · bounded 64/128

a · entryCommit
→
b · stepCI · build + test
→
c · stepCanary 5%
→
d · stepObserve 15m
→
e · stepFull rollout
→
f · exitDone
Commit → CI · build + testCI · build + test → Canary 5%greenCanary 5% → Observe 15mObserve 15m → Full rollouthealthyFull rollout → Done

Box-and-arrow · wraps on small screens · kind drives border tone.

confirm_write

ConfirmWrite

Approval gate · mirrors the confirm_write interrupt: action, bounded field table, attempt + previous_error. Approve/decline resumes with {confirmed: bool}. Survives “approve 20 minutes later”.

Needs approval

Create Linear issue

bandicot.knowledge-render-confirm-write · 12 rows / 300-char cells · mirrored from confirm_write interrupt

Title
Fix flaky CI — make index migration nullable
Team
Platform · ENG
Priority
High
Assignee
@alice
Labels
ci, flaky

This will create ENG-46 in Linear under Platform. The issue will be visible to the team and will trigger triage notifications.

resume = { confirmed: bool } · survives “approve 20 min later”

Keyboard: y = approve · n = decline · Esc = close

Attempt 2 · needs approvalattempt 2

Update Notion page — Runbook

bandicot.knowledge-render-confirm-write · 12 rows / 300-char cells · mirrored from confirm_write interrupt

Page
Runbook — session backfill
Section
Mitigation steps
Change
Add canary rollback procedure

Updates the shared runbook page in Notion. The page has 4 watchers.

Previous attempt failed

Notion rejected the request (page not found — check that the integration has access)

resume = { confirmed: bool } · survives “approve 20 min later”

Keyboard: y = approve · n = decline · Esc = close

In the terminal this renders as a focused overlay (y/n + remembered choice, Esc closes). Desktop renders an in-app card that marks resolved in place when declined. Both read the same DTO.

One envelope, every surface

Every answer travels in a tagged envelope; every device paints the same payload. The format is stable, so a card saved today still renders tomorrow.

type RenderKind = "issue_card" | "issue_list" | "page_list" | "incident_card" | "table" | "chart" | "diagram" | "confirm_write";

type RenderRecord = {
  kind: RenderKind;          // what kind of answer
  schema: string;            // versioned format
  payload: RenderPayload;    // the content itself
};

Ask it anything.
Then hand it the work.

Solo is free for one person. Every plan has every capability, and your model provider bills you directly.

Download for MacSee plans
how to stop an AI agent from running commands without asking
Bandicot · LearnAn approval gate stops an AI agent before an action with side effects, such as a shell command, a push or a write outside its rules, until a person says yes.Read the full answer →
  • TerminalAgent calls sit on a vertical icon rail8862102a
  • ChatOne auto viewe889d9cd
  • SetupDrop a setup file on the window, type keys at a hidden prompt, and a second user lands on the same setupb3315485
  • PermissionsAuto is the only permission mode, tuned by permissions.json; dock reads Work | Team | Versions and never clips545d855a
  • TeamYour agent reads team channels and drafts posts behind a broker2cffe87c
  • MacsA sleeping Mac's schedules run on your awake Mac that holds the project, handed back on wake3ee6c14d
  • MacsAnswer and start work across your own Macs9cbff698
  • SetupOne portable setup file9cac30cf
  • TeamOffline mailboxc3f84303
  • TeamYour own Macs as one group2d761c37
  • VersionsSync a folder with your team5e88fb2c
  • TeamAcross networkse8d84155
  • TerminalAgent calls sit on a vertical icon rail8862102a
  • ChatOne auto viewe889d9cd
  • SetupDrop a setup file on the window, type keys at a hidden prompt, and a second user lands on the same setupb3315485
  • PermissionsAuto is the only permission mode, tuned by permissions.json; dock reads Work | Team | Versions and never clips545d855a
  • TeamYour agent reads team channels and drafts posts behind a broker2cffe87c
  • MacsA sleeping Mac's schedules run on your awake Mac that holds the project, handed back on wake3ee6c14d
  • MacsAnswer and start work across your own Macs9cbff698
  • SetupOne portable setup file9cac30cf
  • TeamOffline mailboxc3f84303
  • TeamYour own Macs as one group2d761c37
  • VersionsSync a folder with your team5e88fb2c
  • TeamAcross networkse8d84155

Product

  • Work
  • Team
  • Versions
  • Automatons
  • Sub-agents
  • Skills, plugins and MCP

Safety

  • Approvals
  • Undo a run
  • Local models
  • Setup file
  • Security

Use cases

  • Teams
  • Agencies
  • Founders
  • Consultants
  • Token costs
  • Cursor users
  • ChatGPT users
  • All use cases →

Learn

  • Approval gate
  • Undo an agent run
  • Tokens per solved task
  • Frozen prompt prefix
  • Sub-agents
  • Automatons
  • Setup file
  • Every answer →

Resources

  • Get started
  • Changelog
  • Connect a model
  • FAQ
  • llms.txt
  • Knowledge gallery

Company

  • Pricing
  • Mission
  • Terms
  • Privacy
  • Cookies
bandicotbandicot
© 2026 BandicotLast change shipped Oct 18, 2026 · 8862102ahi@apparatdynamics.comllms.txtSitemap