Your Own Agent App

Tool-belt series · GitHub Copilot · Agents

You already own the engine.
Build your own box around it.

BridgeMind One is an "agent super app" — named AI teammates that work on a schedule while you sleep. It costs money. You can build the same shape yourself, locally, on the Copilot licence work already gave you.

The whole thing in one line

GitHub ships the Copilot SDK — the exact same agent brain that runs inside the Copilot app you use every day — as a library you can npm install. Your licence pays for it. Nobody needs to approve anything.

01

What you're building

Caveman version. Read the five lines, skip the rest if you want.

You build this
Your app
Agents, schedules, a review inbox
One npm install
Copilot SDK
Planning, tools, file edits, MCP
Already yours
Copilot runtime
Signs in as you. Uses your quota.
The nice surpriseThe SDK is not a lesser API. GitHub docs are explicit that it exposes the same agentic runtime that powers the Copilot app. You're not rebuilding the brain — you're rebuilding the steering wheel.
02

Why bother — you already have Copilot

Fair question. Here's the honest gap.

03

How — four moves

Each one is small. Stop after any of them and you still have something useful.

  1. Get the engine on your machine

    Installs to your user profile. No admin rights, no ticket.

    npm install -g @github/copilot
  2. Prove it runs headless

    This is the whole trick. -p means "answer and exit" — which means a script can call it. If this prints something, you're done proving anything.

    copilot -p "Reply with exactly: engine online"
  3. Wrap it in your own app

    Now you get real agents — each with its own brief, its own tool list, its own MCP servers. The SDK auto-delegates to whichever one fits the job.

    npm install @github/copilot-sdk
  4. Put it on a timer

    Windows Task Scheduler runs your script at 6am. Script writes a markdown file into an inbox folder. You read the inbox with coffee. That's a "routine." That's the feature people pay for.

The only three conceptsAgent = a name + a brief + a tool list (one JSON blob).  Routine = a schedule that fires one agent.  Inbox = a folder of markdown you read later. Build those three and you have cloned the product.
The one real limitEvery run spends premium requests from your monthly quota, same as chatting. A routine that fires hourly will eat it. Start daily, not hourly — and keep the work-code question in mind: can and should are different, and your employer's policy on where its source goes is a separate conversation from whether this runs.
04

Prompts — paste these into the Copilot app

Don't hand-write any of this. Open the Copilot app in an empty folder and feed it these in order. Each builds on the last.

01

Build the skeleton

Set up a new Node.js project in this folder called "crew".

Use the official GitHub Copilot SDK (npm package @github/copilot-sdk).
Read its docs first if you need to — I want current API, not guessed API.

What I want:
- An agents/ folder where each agent is one JSON file:
  name, displayName, description, tools, prompt.
- A src/run.js that takes an agent name and a task string,
  loads that JSON, creates a session with it as a customAgent,
  and streams the output to the console.
- Auth should use my existing signed-in Copilot session. Do not
  ask me for an API key.
- A README with the exact command to run one agent.

Keep it small. No web framework, no database, no TypeScript build step.
Plain JS files I can read in one sitting.
02

Hire your first teammate

Create my first agent JSON in agents/.

Name: morning-scout
Job: every morning, look at the repos and folders I list in a config
file, and write me a short brief on what changed since yesterday —
what moved, what broke, what's waiting on me.

Rules for the brief:
- Under 300 words. I will actually read it, so respect that.
- Lead with anything that blocks me. Bury the routine stuff.
- Plain English. No bullet salad, no "I hope this helps".
- If nothing happened, say "nothing happened" and stop. Do not pad.

Give it read-only tools only — it should never edit or commit anything.
Then show me the one command to test it right now.
03

Put it on a routine

Now add routines.

- routines.json: a list of { agent, schedule, task, enabled }.
- src/routine.js: run one routine and write its output to
  inbox/YYYY-MM-DD--<agent>.md with a timestamp header.
- Errors go into the same file under a "FAILED" heading —
  I want a silent failure to be visibly loud, not missing.
- A .cmd file I can point Windows Task Scheduler at, plus the
  exact clicks to schedule it for 6:30am on weekdays.

Do not build a daemon or a background service. A scheduled task
that runs, writes a file, and exits is exactly what I want.
04

Give it a face

Last piece: a single-file local dashboard, dashboard.html.

- Lists every markdown file in inbox/, newest first.
- Click one, read it rendered, mark it done (done state in localStorage).
- Shows my agents from agents/ and when each last ran.
- One "run now" button per agent is fine if it's easy; skip it if
  it needs a server. A plain read-only page is genuinely enough.

No React, no build step, no CDN frameworks. One HTML file I can
double-click. Match the plain, light, text-first look of my other pages.
The prompting rule that mattersTell it what to refuse, not just what to do. "Under 300 words." "Do not pad." "Skip it if it needs a server." Agents drift toward doing more; the constraints are what keep the output something you'll actually read on a Tuesday.