Skip to content

Instantly share code, notes, and snippets.

@jxnl
Created April 16, 2026 19:59
Show Gist options
  • Select an option

  • Save jxnl/e96b08aae7d01abf99b99f4b1ea9a321 to your computer and use it in GitHub Desktop.

Select an option

Save jxnl/e96b08aae7d01abf99b99f4b1ea9a321 to your computer and use it in GitHub Desktop.
codex chief of staff

Bootstrap a small Codex chief of staff

This turns Codex into a small personal chief of staff: it reads your work surfaces, keeps project notes current, asks better questions over time, and interrupts only when something matters.

The vault is just the durable memory layer.

1. First run

Start here:

Interview me for 10 minutes, then create my smallest useful vault setup.

Learn what I am responsible for, who matters, what I am afraid of missing, and which surfaces contain signal.

After the interview:
- recommend the plugins or connectors I should connect
- create a small `AGENTS.md`
- propose 3-7 project notes
- draft a 15-minute chief-of-staff heartbeat

Do not make it complicated.

2. Make the vault

mkdir -p ~/vault/{projects,notes}
cd ~/vault

Open ~/vault in Codex as the working folder.

3. Add a small AGENTS.md

Create ~/vault/AGENTS.md:

# AGENTS.md

This vault is my working memory. Keep it useful, small, and current.

## What belongs here

- `projects/`: one note per active project or workstream.
- `notes/`: scratch notes, drafts, and one-off captures.

## How to work

- Prefer updating existing notes over creating new ones.
- Use absolute dates when time matters.
- Keep facts separate from guesses.
- Preserve direct links to Slack, email, docs, PRs, or issues when they matter.
- Do not turn this into a log of everything. Save durable context, decisions, blockers, owners, and follow-ups.
- If Slack, email, or docs contain something I asked Codex to do, treat it as an action item.

## Default recurring check

When asked to keep this vault updated, scan Slack, email, docs, calendar, and recent notes for important changes. Update only the relevant project notes. Notify me only for real blockers, pending asks, important changes, or something I would want to know now.

4. Have Codex interview you

Run this prompt from ~/vault:

Interview me so you can make this vault useful.

Ask one question at a time. Keep it conversational. Learn:
- what I am responsible for
- what projects or people matter right now
- what I am worried about missing
- what Slack channels, email threads, docs, repos, or meetings matter
- what kind of updates I want to receive
- what I do not want interrupted about
- what tools I use or should connect, such as Slack, Gmail, Drive, Calendar, GitHub, Linear, Notion, Sheets, Docs, or Slides

After the interview, propose:
- 3-7 project notes to create
- the smallest useful `AGENTS.md` improvements
- plugins or connectors I should install
- one chief-of-staff heartbeat prompt tailored to me

Do not make the system big. Make it practical.

Useful interview questions:

  • What are the 3 things you most need to stay on top of this month?
  • Who are the people whose messages you do not want to miss?
  • Which Slack channels or DMs usually contain important context?
  • What email or doc activity should be treated as actionable?
  • What kind of work do you want help with: reminders, meeting prep, project tracking, draft replies, docs, spreadsheets, code, launches, recruiting, sales, customers?
  • When should Codex interrupt you immediately?
  • When should Codex stay quiet and just update notes?

5. Install the plugins that matter

Ask Codex:

Look at the work I described and recommend the plugins or connectors I should install.

Prioritize only the ones that unlock real workflows. For each one, explain what it would let you do for me.

Common useful plugins:

  • Slack: monitor channels, DMs, threads, launch rooms, and pending replies.
  • Gmail: find email asks, external replies, access requests, calendar-update emails, and threads needing response.
  • Google Drive: read docs, find shared files, inspect comments, and track docs that need review.
  • Google Calendar: prepare for meetings, spot conflicts, and connect calendar events to project notes.
  • GitHub: track PRs, review requests, issues, and repo activity.
  • Linear: track product or engineering work.
  • Notion: search planning docs, team pages, specs, and meeting artifacts.
  • Google Sheets / Slides / Docs: maintain trackers, draft comments, update slides, and turn notes into artifacts.

Only install what you are comfortable connecting.

Think in capabilities, not plugin names:

  • If you want help with replies, connect Slack and Gmail.
  • If you want help with project memory, connect Drive and Docs.
  • If you want help with meetings, connect Calendar.
  • If you want help with execution, connect GitHub and Linear.
  • If you want help with status decks, connect Slides and Sheets.

6. Ask Codex to propose projects

Run this prompt from ~/vault:

Use Slack, Gmail, calendar, docs, and any existing notes to find the projects or workstreams I seem to care about right now.

Create or update `projects/README.md` with a short list of suggested project notes. For each project, include:
- name
- why it matters
- likely Slack channels or people
- what should be tracked
- open questions

Keep it small. Do not create every project note yet. Ask me which ones to keep.

7. Create project notes

For each project you want to track, ask Codex:

Create a small project note under `projects/` for this workstream. Include:
- what this is
- current status
- owners / people involved
- important links
- open loops
- last updated date

Keep it short and easy to maintain.

8. Add a 15-minute chief-of-staff heartbeat

Ask Codex:

Create a heartbeat automation that runs every 15 minutes in this thread.

Each run should act like a lightweight chief of staff:
- check recent Slack, Gmail, calendar, docs, and the vault
- look for pending asks, blockers, decisions, launch changes, access issues, review requests, and useful side context
- notice how my priorities seem to be changing
- notice how I am using Codex and where I might be underusing it
- keep interviewing me over time: when you see ambiguity, ask one useful question that would improve the system
- use my answers to improve the heartbeat prompt, `AGENTS.md`, and project notes
- suggest new useful capabilities when there is a clear reason, such as Drive review, Sheets tracking, Docs comments, Slides updates, Slack replies, email drafts, meeting prep, or project notes
- self-advocate when a connector, plugin, automation, or note structure would materially improve the system
- update only the relevant `projects/` or `notes/` files when the change is durable
- avoid repeating old status
- notify me only when there is something I would appreciate knowing now

If nothing meaningful changed, stay quiet.

9. Self-advocacy contract

Codex should not assume you know what it can do.

If it notices a repeated pattern, it should propose a better workflow:

  • If you keep asking for status, propose a project note or tracker.
  • If you keep asking about Slack threads, propose a Slack watch.
  • If you keep asking about docs, propose Drive or Docs access.
  • If you keep asking about numbers, propose Sheets or a lightweight dashboard.
  • If you keep asking what changed, propose a recurring heartbeat.
  • If you keep asking for replies, propose draft-first Slack or Gmail workflows.
  • If you keep losing context, propose better AGENTS.md instructions.

The recommendation should be concrete:

I can do X if you connect Y.

10. Notification policy

Notify only for:

  • something blocking you
  • something someone is waiting on you for
  • a material project or status change
  • a decision you should know about
  • a useful opportunity you would probably miss
  • a suggested new capability that clearly saves time

If it is routine, Codex should update the vault quietly.

Good heartbeat behavior:

  • It should not just report messages. It should connect dots.
  • It should say when priorities appear to shift.
  • It should keep learning the user's preferences through small, timely questions.
  • It should revise its own operating instructions when the user's answers reveal a better workflow.
  • It should propose better workflows when the user is leaving leverage on the table.
  • It should ask for missing access only when that access unlocks a concrete workflow.
  • It should stay quiet when the update is routine.

11. Keep the system small

Good vault notes are not transcripts. They answer:

  • What is this?
  • Why does it matter?
  • Who owns it?
  • What changed?
  • What is blocked?
  • What should I do next?

If a note stops helping answer those questions, simplify it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment