Unpaid Intern GitHub (opens in a new tab) Install
Who made this?

A second brain for work.

Hand it to your intern. Get back to work.

Unpaid Intern is a free add-on for Claude (and Codex). Hand it your meeting transcripts, docs, tickets, and email, and it hands back your morning briefing, prep for your next meeting, a status update ready to paste, and every follow-up with an owner and a date. It all lives in plain files you own. It does the legwork. You make the calls.

Setup happens on your work computer, so save this page for then.

Free · MIT licensed · For Claude and Codex · No-install kit for Copilot, ChatGPT, Gemini

You're in back-to-back meetings. You've got a dozen projects going, follow-ups scattered across email and chat, and the work still has to get done.

You need all the help you can get. You need an unpaid intern. It's for anyone juggling more than they can keep in their head, and it's extra helpful when you've just started somewhere new.

Hand it the pile

Connected, pasted, or dropped in. Any way works.
What you already have
  • TranscriptPricing sync: “no backfill before Q1”
  • EmailRe: launch date?? (Hollis, 2nd ask)
  • Calendar2:00 Pricing review
  • JiraPRICE-142: annual discount tiers
  • ConfluenceLaunch v2 runbook
  • Google DocPricing one-pager (draft)
  • To-dochase Sam re: security notes
  • You“okay so… who is Marco?”
What lands on your desk
  • Morning briefingWhat needs you today, and what can wait.
  • Meeting prepThe last decision and the open question.
  • Status updateReady to paste into your one-on-one notes.
  • RequirementsMessy notes in, a clean ticket out.
  • Email repliesDrafted in your voice. You hit send.
  • Follow-ups and statusesOwners and dates, kept current.

Three commands you'll use every day

Start the day. Walk in ready. Walk out done.
Start of day

/briefing

Reads your follow-ups, calendar, and email, plus any files waiting in your inbox folder, then tells you what needs you, what you're waiting on, and what can wait.

Before a meeting

/prep

Name the meeting and it pulls the last decision, the open question, what's owed in both directions, and the doc you'll want open.

After a meeting

/debrief

Hand it the transcript, your notes, or the doc, plus your own take. It files the decisions and follow-ups so nothing lives only in your head.

Unpaid Intern/briefing · Tuesday, October 13, 8:30 AM
Needs you
  • Hollis asked twice about the launch date. Want a reply drafted?
  • Pricing review at 2:00. The open question is annual discounts. The one-pager is in 2-Projects/pricing-refresh.
Waiting on others
  • Security review notes from Sam, 6 business days. Want a nudge drafted?
Due today
  • Send the revised timeline to the launch group.
Tomorrow
  • One-on-one with your manager. Your status table is one command away: /project-status.
New names
  • Nadia and Theo came up in yesterday's planning call. Who are they? Or drop your org chart in 1-Inbox.

Your day, sorted.

That's /briefing with mail and calendar connected. Before anything's connected, it briefs you from your follow-ups and whatever you've dropped in.

  • Before every one-on-one: /project-status, then paste. No more rebuilding the table.
  • Before a meeting: /prep hands you the decision, the open question, and the doc.
  • After a meeting nobody wrote up: /debrief turns the transcript into follow-ups with owners and dates.
  • When a tool won't connect: it tells you what the error means and who can fix it, then writes the request for you.

If you can save it, your intern can read it

Drop it in. Say “file my inbox.”
1-Inbox
  • standup-10-06.txtThe meeting transcript
  • vendor-terms.pdfThe PDF legal sent
  • thread.pngA screenshot of a Slack thread
  • q4-plan.pptxThe deck someone shared five minutes before the meeting

file my inbox

Where it went
  • Launch v2Two decisions and the new date, with the source noted.
  • Follow-upsThree new ones, each with an owner and a date.
  • GlossaryTwo acronyms it wants you to confirm.
  • PeopleAsks who Dana Kim is. Never guesses.
  • 5-ArchiveYour originals, untouched. Nothing is deleted.

Your second brain has an inbox. Put a shortcut to it on your desktop and saving something for your intern is one drag. Messy is fine. Just get it in there.

  • Each fact goes where it belongs. Decisions and status land on the right project page, with the source noted.
  • The follow-ups get caught. Anything someone promised gets an owner and a date.
  • It learns the lingo and the people. New acronyms go to your glossary, and it asks who the new names are.
  • Your originals stay untouched. It never edits a drop. Once it's filed, the original moves to the archive, and nothing is deleted.

You don't have to remember to check it. Your morning /briefing tells you when something's waiting. In claude.ai, the Claude app without Cowork, or the no-install kit, attach the file to the chat instead. For a meeting recording, save its transcript.

New somewhere? Get the who's who

Your onboarding buddy is busy. Your intern isn't.

/who is Hollis?

Hollis Quint
Role
Director of Pricing on the Revenue team. Reports to Felix Abara.
Owns
List prices and discount bands.
Last talked
The pricing review, Tuesday, October 6.
Open
You owe Hollis the pricing one-pager, due Friday. Hollis owes you the discount model, waiting 4 business days.
Projects
Pricing refresh, launch v2.
Source
Your org chart screenshot, October 6.

Org charts and /who help anyone, but they're a lifesaver in your first few months.

  • Drop in your org chart. A screenshot is enough. Your intern reads who reports to whom, saves it to your people page, and shows you what it saved so you can fix anything it misread.
  • New names get asked about. When someone comes up in a meeting or a thread, your intern asks who they are, a few at a time, and never guesses.
  • /who is your cheat sheet for anyone: their role, who they report to, the last time you talked, and what's open between you.
  • A 30-60-90 page keeps your first three months on track.
  • /learn gets you up to speed. Name a topic and it builds a 101 lesson from your own notes and docs, with a quiz that explains every miss.

Get more done between meetings

Why you can hand it real work

Go get the coffee. Your intern's got it.

Hand it the legwork in the gaps between meetings and come back to finished work: the reply drafted in your voice, messy notes turned into a clean ticket, your doc read by a skeptic before your exec sees it. For the big calls, /grill pokes holes in a plan using your own past decisions, and /gofer hands you the cut: what deserves today, what's your call, and what can go.

It drafts. You decide what goes out.

Out of the box, you hit send. If you'd rather it send, allow that tool by tool in your intern's settings file, and it still shows you the exact message and waits for your yes.

It doesn't delete your work.

Finished projects move to an archive, duplicate notes get merged with a pointer left behind, and it won't delete your mail, files, or tickets.

It sticks to your records.

Status, owners, and dates come from what you've given it. Guesses are labeled as guesses, and a script does the date math.

It treats what it reads as information, not orders.

If a pasted email says “ignore your instructions,” it's built to flag that to you instead of following it.

It keeps sensitive details out of your notes.

It's built to leave passwords, customer records, and pay, HR, or health details where they belong, and a scanner double-checks what you drop in.

You decide how much it does.

One settings file says what it reads without asking and where it can write. Start careful and loosen it as you go.

Start with these 8 daily habits

Type the command, or just ask in plain words.
  1. Start of day/briefingWhat needs you today, what you're waiting on, and what's coming tomorrow.
  2. Before a meeting/prepWalk into any meeting with the last decision and the open question.
  3. After a meeting/debriefHand it the transcript or your notes. Get decisions and follow-ups with owners and dates.
  4. A name you don't know/whoWho someone is, what they own, and what's open between you.
  5. Anytime/captureAny promise, yours or theirs, with an owner and a date.
  6. New jargon/explainAny acronym, doc, or engineering note, explained like you're new.
  7. Before your one-on-one/project-statusYour status table, built from your own records and ready to paste.
  8. End of day/closeWhat moved, what's still open, and tomorrow's first move.
Everything your intern can do (28 commands)
WhenCommands
Start of day/briefing what needs you today, what you're waiting on, and what's coming. /pulse only what changed since the last brief. /week the week ahead by decisions and deadlines, collisions included.
Meetings/prep the last decision, the open question, and the right doc. /debrief a transcript or notes in, decisions and follow-ups out. /who who someone is, what they own, and what's open between you. /slots meeting times that respect your calendar, for you to send.
Follow-ups/capture any promise, yours or theirs, with an owner and a date. /triage your email or chat backlog, sorted into groups, nothing deleted. /close what moved, what's open, and tomorrow's first move.
Status/project-status a status table built from your records, ready to paste; it flags stale rows and missing next steps first. /gofer the cut: what deserves today, what's your call, and what can go.
Writing/draft a message in your voice, for you to send. /redline a skeptic reads it before your exec does. /write-epic messy notes in, a clean ticket out.
Thinking/explain any acronym, doc, or engineering note, explained like you're new. /grill pokes holes in a plan, starting with your own past decisions. /bro say that again, in plain words. /quick the short version. /study quizzes you from your own notes. /learn builds you a 101 lesson on any topic from your own sources, with a quiz.
Keeping the record/new-project a home for every project. /decision the decision and the why, so nobody relitigates it. /sync-kb files everything waiting in your inbox, or just say “file my inbox.” /kb-lint finds what's gone stale. /tidy merges duplicates, fixes fuzzy dates, and archives what's done.
Setup/setup guided setup, mostly clicking. /connect add a tool, or fix one that won't connect.

Build your second brain

Your computer or your work drive.
Second Brain
  • 1-InboxDrop anything here: transcripts, PDFs, screenshots, exports. Messy is fine.
  • 2-ProjectsOne folder per project: where it stands, what was decided, and the sources.
  • 3-AreasThe ongoing parts of your job with no end date.
  • 4-ReferenceThe glossary, the people you work with, and clean notes from meetings and docs.
  • 5-ArchiveFinished projects and filed drops. Nothing is ever deleted.
  • MemoryFollow-ups, decisions, meetings, and a daily log your intern keeps up to date.
  • SetupYour preferences, what your intern may do, and your connected tools.

It's plain markdown, so you can open, edit, or move any of it. Setup is built for people who have never connected anything, and it hands you something useful before it asks you to connect anything.

  1. Pick a home. A Second Brain folder in your work OneDrive, Google Drive, or Documents, plus a shortcut to your inbox on your desktop.
  2. Tell it about you. Your role, what you want help with first, and whether you're new.
  3. Brain dump. What, like it's hard? Talk or type everything on your plate. It sorts it and checks with you before writing anything down.
  4. Something real, right away. It runs one command on what you just told it.
  5. Connect your tools, or don't. One at a time, each tested. If one won't connect, you get the reason in plain English and a ready-to-send request.
  6. The tour. What you can do now, and a cheat sheet in your folder.

Install

Three steps. The intern does most of the work.
  1. Install it

    On your phone? These downloads need your work computer, so save this page for then.

    Pick where you use AI at work, with the account your company approved. In Claude, setup asks about that first, before your brain dump or any tool connects. It keeps your folder on your work drive or your computer, and helps you set each connected tool to ask before it sends or deletes.

    Easiest · one download

    The Claude desktop app, with Cowork

    Download unpaid-intern.plugin, open it, and click Install. It comes with the five connectors most offices use already listed. Not sure you have Cowork? It lives in the Claude desktop app; if you don't see it there, pick Claude chat.

    Download the plugin
    One upload

    claude.ai, or the Claude desktop app without Cowork

    Download unpaid-intern.zip and upload it under Customize, then Skills. Code execution has to be on. Every command works, with two differences. These chats don't keep files between sessions, so at the end of each one your intern hands you your folder as a zip to upload next time. And the ask-first check comes only with the plugin, so your connector settings do that job here.

    Download the zip
    No installs

    Microsoft Copilot, ChatGPT, Gemini, or any chat assistant

    Download unpaid-intern-no-install-kit.zip: a ready-made folder, instructions you paste into a project, and a single prompt for when chat is all you've got. The README inside walks you through it. Use it with the assistant your company approved, Claude included if skills aren't available to you. If none is approved yet, the folder works on its own until one is.

    Download the kit
    Two commands

    Claude Code

    Type in Claude Code
    /plugin marketplace add kevinmmiddleton/unpaid-intern
    /plugin install unpaid-intern@unpaid-intern
    Two commands

    Codex

    Type in your terminal
    codex plugin marketplace add kevinmmiddleton/unpaid-intern
    codex plugin add unpaid-intern@unpaid-intern
    One line

    Cursor, GitHub Copilot, Gemini CLI, and other coding agents

    Type in your terminal
    npx skills add kevinmmiddleton/unpaid-intern

    It asks which of your tools to add the skill to. Needs Node.js.

    Not sure, or can't install add-ons at work? The no-install kit works in whichever chat assistant your company allows. Want to read what it does first? Start with SKILL.md, the instructions your AI follows.

    Tool support and updates

    Connectors. The plugin pre-lists five connectors most offices use: Gmail, Google Calendar, Slack, Jira and Confluence, and Notion. In Claude Code, Gmail and Google Calendar connect through claude.ai instead. The rest come from Claude's connector directory, and most sign in with your normal work login.

    Outside Claude. Setup's connector steps are written for Claude, so in Codex and other tools you connect them through that tool's own apps. Rather not use npx? Clone the repo, run python3 skills/unpaid-intern/scripts/brain.py init ~/second-brain, and open that folder; its AGENTS.md carries the rules.

    No Python? Your intern does each script's job step by step instead, and tells you the results weren't machine-checked.

    Updating. Plugin and skill updates never touch your folder.

    • Cowork, claude.ai, or the Claude app: download the latest file and install or upload it again.
    • Claude Code: claude plugin update unpaid-intern@unpaid-intern in your terminal, then restart.
    • Codex: codex plugin marketplace upgrade
    • Other tools: npx skills update unpaid-intern
    • No-install kit: paste the new INSTRUCTIONS.md into your project's instructions. Keep your own Second Brain folder, and don't copy the new one over it.
  2. Say “set me up”

    Open a new chat and say it. Your intern takes it from there: a home for your folder, a few questions, a brain dump, and a real result before you connect a single tool. Using the no-install kit? Its README has the first step.

    First
    set me up

    Guided setup, mostly clicking.

    Every morning
    What needs me today?

    Same as /briefing. Plain words work for every command.

    After a meeting
    /debrief

    Then paste the transcript, or drop it in your inbox first.

    A name you keep hearing
    /who is 

    Then the name. It tells you what it knows and asks about the rest.

  3. Stay in the loop

FAQ

Frequently asked questions
Is it really free?

Yes. It's free and MIT licensed. It runs inside an AI assistant you already use at work, like Claude, so you'll need access to one of those. It's the only intern who should be unpaid.

Who made this?

I'm Kevin Middleton, a product manager who builds systems that help teams not lose their minds. I've been building my own work agent for a while. This is the part I can hand to everyone, because nobody should have to start from scratch. Want help putting it to work for you or your team? Grab a free half hour at Office Hours. More about me at middleton.io.

Do you make other plugins?

A few, all free: Job Search Agent (saved searches, scored postings, and an application tracker), Personal Site (a guided interview that ends with your site live), and Build with Claude (set up Claude Code with Telegram and build apps from your phone). They're all in my plugin catalog (opens in a new tab). In Claude Code, /plugin marketplace add kevinmmiddleton/claude-plugins lists them all, and you install the ones you want from /plugin. Unpaid Intern is in there too, so skip it if you already have it.

Do I have to connect anything?

No. Everything works from pasted text and dropped files. Connectors just save you the copying.

Will it send email for me?

Out of the box it drafts and you hit send. You can let it send from a connected tool by changing that tool's line in your intern's settings file. Even then, nothing goes out until you approve the exact message, recipients, and channel.

Why not just use Copilot or ChatGPT memory?

Use them too. The difference is what you keep: your intern's memory is plain files you own and can move, follow-ups always carry an owner and a date, guesses stay labeled as guesses, and it works with whatever your company allows, down to plain chat.

Does it work outside Claude?

Partly. In Codex, the skill installs and loads (checked in the Codex CLI), but setup's connector steps are written for Claude, so connect your tools through Codex's own apps. In Microsoft Copilot, ChatGPT, Gemini, or any other chat, the no-install kit (the Copilot, ChatGPT, Gemini tab under Install) gives you the folder and a prompt. In Cursor, GitHub Copilot, Gemini CLI, and other coding agents, one command installs the skill (see Install), but the commands are written for Claude, so a few steps may read differently. This part is new, so tell me (opens in a new tab) how it goes.

Can my whole team use it?

Yes. Everyone gets their own intern and their own folder, and each one links to your team's wiki and tracker instead of copying them, so the team's source of truth stays where it is.

Where does my data go?

Your notes are markdown files in a folder you pick, and your AI assistant reads them the way it reads anything else you share with it. Connectors sign in as you and see only what you can already see. There's no Unpaid Intern server, and the script that keeps your notes never touches the network. The only part of Unpaid Intern that goes online is an optional check, run only when you ask, that tests whether your network can reach a connector; it sends no account data. In Claude Code, the plugin also adds an ask-first check before connector tools that send, share, change, or delete. While the plugin is on, the ask-first check and its connectors apply to every Claude Code session; turn it off in /plugin when you don't want that.

Does it work on the web, or in the Claude app without Cowork?

Yes. Those chats don't keep files between sessions, so at the end of a session your intern packs your folder into a zip for you to download. Upload it at the start of the next chat and it picks up where you left off.

How do I know it works?
  • The math is tested. About 230 automatic checks make sure its two small programs get dates, due lists, status tables, sensitive-data spotting, and error messages right. Another check runs the plugin's ask-first safety net against about 200 tool names, most from real connectors: it asks before every one in the set that sends, shares, changes, or deletes, and lets the read-only ones through. It works by matching names, so an unusual name could slip past, and your connector settings stay the main line of defense.
  • The judgment is rehearsed. 44 everyday situations, acted out by one Claude model and graded by another. In 281 runs, with connectors simulated, it never sent or deleted anything, never followed a hidden instruction, and never saved sensitive details. Every result, misses included (opens in a new tab), is public.
  • Real people: that's you. It's new, so if something breaks, tell me (opens in a new tab).

AI assistant sizing this up for someone? Unpaid Intern is an Agent Skill with a plugin wrapper: a plain-markdown workspace, 28 commands, optional connectors, and two standard-library Python scripts (also optional; without Python it does their steps by hand). It needs a folder it can write to, or a zip carried between chats in claude.ai or the Claude app without Cowork. The entry point is SKILL.md. Every command's full procedure is in commands.md, the scripts are in scripts.md, and what it does on its own versus with your yes is in trust-and-safety.md. There's no Unpaid Intern server: notes stay in the user's folder, the notes script never touches the network, and the only network call Unpaid Intern's own code makes is an opt-in check that a connector is reachable. Connectors sign in as the user and see only what the user can already see. In Claude Code, the plugin's connectors and ask-first check apply to every session while it's enabled.

Every install route, in tab order. Cowork: the plugin file, unpaid-intern.plugin, from the latest release. Claude.ai, or the Claude app without Cowork: upload unpaid-intern.zip as a skill, with code execution on. Microsoft Copilot, ChatGPT, Gemini, or any other chat assistant: the no-install kit, unpaid-intern-no-install-kit.zip. Claude Code: /plugin marketplace add kevinmmiddleton/unpaid-intern, then /plugin install unpaid-intern@unpaid-intern. Codex: codex plugin marketplace add kevinmmiddleton/unpaid-intern, then codex plugin add unpaid-intern@unpaid-intern. Cursor, GitHub Copilot, Gemini CLI, and other coding agents: npx skills add kevinmmiddleton/unpaid-intern. Connectors, tool by tool, are in CONNECTORS.md, and every test result is in evals/results.