How it works

Say it. Sit with it. Carry it forward.

Upstream is one loop, run as many times as you need it. Nothing here is complicated — the work is in the asking, not in the software.

  1. Overhead view of a still pool with ripple rings spreading from a single terracotta point.Step 01

    Say the thing out loud

    There’s no intake form and no mood slider. You open a conversation and describe what you’re wrestling with — a decision, a relationship, a pattern you keep repeating — in whatever order it comes out.

    Upstream listens for the part you steered around. Then it asks about that part, once, and waits.

    ScreenshotA conversation in progresspublic/shots/chat-midconversation.png
    Three questions recur, because they work: what are you not wanting to look at · what would you tell a close friend in this exact situation · what small action could you take in the next 24 hours.
  2. A cairn of three flat river stones on a gravel bank, the top one terracotta.Step 02

    Wrap up while it’s still clear

    When you’re done, Upstream writes back what you named: the thread you were pulling, a small step or two if there’s one worth taking, and the pattern underneath.

    If there honestly isn’t a pattern, it leaves that empty. It is specifically instructed not to invent one to fill the space — a made-up insight is worse than none.

    ScreenshotThe wrap-up note at the end of a conversationpublic/shots/wrapup-card.png
    Steps are written as invitations, never as assignments. “If you want to take a small step”, not “your action items”.
  3. Overhead view of a worn footpath leaving a river bend and looping back to the same bend, with a terracotta marker post.Step 03

    Come back to it later

    What you named waits for you on the dashboard. Open steps come back as a question — How did it go? — with Done and Let it go sitting right beside it.

    That’s the whole loop. The first two steps are common. The third one is the reason they’re worth doing.

    ScreenshotThe dashboard, carrying forward an open steppublic/shots/carry-forward.png
    Every commitment has an exit. Nothing is held over you and nothing accumulates into a list you start avoiding.

The one setting that matters

How hard it’s allowed to push is yours to set.

Everything else is preference. This one genuinely changes what Upstream does with what you tell it, and you can change it whenever you want.

Gentle

Default

Mostly reflects and listens. Tentative language — “I wonder if…”. At most one soft open question. It will not push, confront or steer. Subtlety is the goal.

Balanced

Warm and lightly probing. One gentle challenge when it genuinely helps, not as a matter of routine.

Direct

You asked to be challenged, so it names the avoidance and the hard truths plainly. Still kind. Never harsh, never preachy.

The default is the most restrained option on purpose. It’s easier to ask for more directness once you trust something than to un-hear a challenge you weren’t ready for.

An optional technique

Tracing a pattern back to where it started.

Some patterns were installed a long time ago — often before you were twelve. If it fits, and only if it fits, Upstream may ask where a pattern came from: who modelled it, what moment taught it, what it was protecting you from at the time.

It’s offered as an invitation, never as a diagnosis, one question at a time. The instruction it runs on says explicitly that it’s fine to never bring this up in a given conversation — and for younger users it’s softer still, and doesn’t reach further back than makes sense for someone that age.

A river cut bank in cross-section with one terracotta layer running unbroken through the middle.

What carries forward

A hypothesis, not a dossier.

Between conversations, Upstream keeps three things: patterns it has noticed, insights you landed on, and steps you left open. That’s what gets carried into the next conversation — not a transcript, and not a profile of you.

It’s instructed not to recite any of it back at you, and to treat all of it as provisional. When it has you wrong, saying so is enough.

ScreenshotThe memory view: patterns, insights and open stepspublic/shots/memory-patterns.png
Everything it holds is visible to you, and anything can be let go.

One thing it will not do

On a hard message, it stops.

Every message is checked before it goes anywhere. If it matches a crisis pattern — suicidality, self-harm, overdose — the model is never called at all. You get a fixed block of real resources instead, and the message is flagged permanently as what it was.

That’s deliberate and it isn’t going to change. An AI improvising its way through someone’s worst night is not a feature. The resources it hands back are here, and they don’t require an account.

The loop only starts once you’ve said the first thing.