puff · desktop companion · macOS

Lives on your Mac.

Puff is a small, curious creature for your Mac desktop. It walks your screen, talks back out loud and remembers what you tell it. Fully offline, or bring your own key.

portfolio / login.tsx
import { useToken } from "./auth"
 
export function Login() {
const [token] = useToken()
// TODO: refresh before it expires
if (!token) return <SignIn />
return <Dashboard user={token.user} />
}
today
□ login screen
□ case study copy
■ hero photos

that login bug again? we got this.

poke Puff. it has opinions.

01 / live

This is real.

Running in the app. Not a render, not a mockup.

puff · in-app capture

02 / voice

It talks back.

A mouth shape for every sound. English or Vietnamese.

🎙 puff, you awake?

always. well, mostly. what are we making today?

03 / who it’s for

Made for people
making things alone.

api / auth.rs

#[test]

fn refresh_after_401() {

let t = expired_token();

let next = refresh(&t).unwrap();

assert!(next.expires_in() > secs(60));

}

✓ 14 passed · 0 failed

tests pass. want me to remember the 401 case for tomorrow?

Puff in glasses typing on a little laptop

Ship it. With company.

  • Thinks out loud with you
  • Remembers the bug you stopped on
  • Stays quiet while you’re deep in it

04 / your day

It works beside you.

Say what you’re on. It opens its own little laptop. Preview

api / auth.rs
pub fn refresh(t: &Token) -> Result<Token> {
if t.expires_in() > secs(60) {
return Ok(t.clone());
}
ask puff|

05 / learn

Explain it back.

Teach Puff what you learned. It asks the one question that matters. Preview

explain it to puff · networks

How does DNS work?

|

06 / music

Say the song.

Spotify or YouTube. Headphones on, bobbing along. Preview

puff · connections
Spotifyconnected
YouTubeconnected

07 / plan

Your day, planned.

Morning plan. A heads-up before meetings. A recap at night. Preview

calendar · thu 14
9:00
11:00
13:00
15:00
17:00
19:00
standup
10:00 · team
deep work: login
13:00 · added by puff
case study
16:30 · added by puff
gym
18:00
today · planned by puff
    8:30 · plan9:55 · heads-up17:45 · recap

    08 / range

    Small creature.
    Big range.

    114expressions and emotes
    10mouth shapes
    2languages
    0data collected by us

    09 / access

    You decide what it knows.

    Start with nothing. Add only what a feature needs.

    Puff, a cream fluffy creature with blue eyes
    in the app · some parts preview

    What you type, say or hand it on purpose.

    It doesn’t know which apps or files you have open.

    10 / privacy

    Kept between you two.

    On your Mac. Works offline. We never collect your data.

    puff’s notebook · on this mac
    • stopped at: the login screen, token refresh bug
    • submit the assignment, Monday 8 PM
    • portfolio due Friday

    zz…

    No screen watching.Not by default. Not in the background.
    See what it kept.Puff’s notebook, open any time.
    Switch anything off.Each yes stands alone.

    11 / your brain

    Your brain. Your rules.

    Pick where Puff thinks. Either way, we never see your data.

    Puff resting, offline

    Fully offline

    Nothing leaves your Mac.

    • Local model on your Mac
    • Works with Wi-Fi off
    Puff with a knowing smile

    Bring your own key

    Your key. Your provider.

    • Requests go straight to the provider you pick
    • Key stays on your Mac. Never sent to us.
    We collect nothing.No analytics on your work. No copies on our servers.
    Every access asks first.Apps, files, calendar, music, mic. Each one is its own yes.
    Take it back.Revoke any permission. Remove anything Puff kept.

    12 / pricing

    One plan. Coming soon.

    Join the waitlist now. The earlier you join, the less you pay.

    Puff

    Coming soon

    • All of Puff, on your Mac
    • Fully offline, or bring your own key
    • No data collected. Ever.
    Free first 5
    −80% next 10
    −50% next 20
    −20% everyone after
    Puff, excited

    Creators ride free.

    Puff at no cost, plus a referral link. Cloud models with your own key.

    Apply as a creator

    13 / start

    What are you trying
    to finish?

    Join the waitlist