Projects

April 2026

Friday for Codex

macOS automation, voice activation, LaunchAgents, custom XTTS voice config, OpenAI Codex context workflows, Agent Driven Development

Friday for Codex is a local macOS voice-triggered wake flow for Codex with a 30-minute background refresh pipeline to keep wake-up fast.

Visit source
Friday for Codex cover image

Friday for Codex

Reality on a budget usually cannot compete with science fiction backed by millions of dollars in CGI, but I got close enough to make my inner child happy.

I built Friday for Codex as an Iron Man Friday/Jarvis-inspired wake briefing and voice workflow for OpenAI's Codex on macOS.

No big "future of work" thesis here.

I just wanted Codex to wake up like Tony Stark's lab assistant, and now it does.

The Wake Flow

The interaction is intentionally simple.

You say a wake phrase, Codex opens, a greeting plays almost instantly, and then it reads out a spoken briefing on what to pick up next based on recent work context.

The default wake phrase is exactly what you think it is:

wake up daddy's home

That line is ridiculous, yes. It is also the correct line.

The basic flow is:

  • listen for the wake phrase
  • open Codex on macOS
  • play an immediate greeting
  • read out a cached spoken briefing
  • refresh the briefing in the background so the next wake is fast

The important part is that it does not feel like waiting for an agent to think. The greeting happens quickly, and the heavier context work is already cached or refreshed in the background.

Under The Hood

Under the hood it runs locally and pulls from the places that actually matter when I am trying to resume work:

  • Codex context
  • Codex Chronicle summaries, if available
  • recent ChatGPT conversations
  • Gmail
  • Google Calendar

The spoken output is generated through a local XTTS setup with a custom tuned voice model for it to sound as close to Iron Man's Friday as possible, and the briefing is cached and refreshed in the background. That caching is the whole latency trick. Without it, the assistant would technically work but feel wrong, because every wake-up would stall while the system gathers context and generates audio.

With the cache, it feels closer to what I wanted: call it, hear it, resume the work.

Why It Matters

The project is not trying to be a general-purpose assistant platform. It is intentionally personal, local, and workflow-shaped.

I wanted something that could sit on top of my existing Codex workflow and make the transition back into work feel immediate. Recent tasks, recent conversations, calendar context, mail context, and spoken output all stitched together into one small wake routine.

The project is less about voice as a gimmick and more about making Codex feel present when I call for it.

You can watch the demo along with the Iron Man 2 scene that made me want to build this in the first place, because that is honestly the cleanest explanation of the motivation.

Sometimes the point of a project is not that it is profound. Sometimes the point is that your computer finally does the thing your 10-year-old self thought computers should obviously do.

Projects

April 2026

Friday for Codex

macOS automation, voice activation, LaunchAgents, custom XTTS voice config, OpenAI Codex context workflows, Agent Driven Development

Friday for Codex is a local macOS voice-triggered wake flow for Codex with a 30-minute background refresh pipeline to keep wake-up fast.

Visit source
Friday for Codex cover image

Friday for Codex

Reality on a budget usually cannot compete with science fiction backed by millions of dollars in CGI, but I got close enough to make my inner child happy.

I built Friday for Codex as an Iron Man Friday/Jarvis-inspired wake briefing and voice workflow for OpenAI's Codex on macOS.

No big "future of work" thesis here.

I just wanted Codex to wake up like Tony Stark's lab assistant, and now it does.

The Wake Flow

The interaction is intentionally simple.

You say a wake phrase, Codex opens, a greeting plays almost instantly, and then it reads out a spoken briefing on what to pick up next based on recent work context.

The default wake phrase is exactly what you think it is:

wake up daddy's home

That line is ridiculous, yes. It is also the correct line.

The basic flow is:

  • listen for the wake phrase
  • open Codex on macOS
  • play an immediate greeting
  • read out a cached spoken briefing
  • refresh the briefing in the background so the next wake is fast

The important part is that it does not feel like waiting for an agent to think. The greeting happens quickly, and the heavier context work is already cached or refreshed in the background.

Under The Hood

Under the hood it runs locally and pulls from the places that actually matter when I am trying to resume work:

  • Codex context
  • Codex Chronicle summaries, if available
  • recent ChatGPT conversations
  • Gmail
  • Google Calendar

The spoken output is generated through a local XTTS setup with a custom tuned voice model for it to sound as close to Iron Man's Friday as possible, and the briefing is cached and refreshed in the background. That caching is the whole latency trick. Without it, the assistant would technically work but feel wrong, because every wake-up would stall while the system gathers context and generates audio.

With the cache, it feels closer to what I wanted: call it, hear it, resume the work.

Why It Matters

The project is not trying to be a general-purpose assistant platform. It is intentionally personal, local, and workflow-shaped.

I wanted something that could sit on top of my existing Codex workflow and make the transition back into work feel immediate. Recent tasks, recent conversations, calendar context, mail context, and spoken output all stitched together into one small wake routine.

The project is less about voice as a gimmick and more about making Codex feel present when I call for it.

You can watch the demo along with the Iron Man 2 scene that made me want to build this in the first place, because that is honestly the cleanest explanation of the motivation.

Sometimes the point of a project is not that it is profound. Sometimes the point is that your computer finally does the thing your 10-year-old self thought computers should obviously do.