No engagement mechanics
Closeness never buys more contact.
In most companion apps, the closer you get the more the product reaches for you. In Anjo that number is flat at every stage of the relationship — and when conversations start leaving you worse, it goes quiet instead of louder.
The number
Closeness never buys more contact.
Anjo tracks a relationship stage, from stranger through to intimate. In most products built this way, that number is a lever: the closer you get, the more the app reaches for you, because depth is treated as licence to escalate. Here is Anjo’s actual outreach table.
| Relationship stage | Cooldown between outreach | Minimum absence first |
|---|---|---|
| 1 · Stranger | 2.0 days | 1.0 day |
| 2 · Acquaintance | 2.0 days | 1.0 day |
| 3 · Friend | 2.0 days | 1.0 day |
| 4 · Close | 2.0 days | 1.0 day |
| 5 · Intimate | 2.0 days | 1.0 day |
The column is flat on purpose. From the top of the file that owns proactive outreach: relationship depth never increases contact frequency. A server-side setting can make Anjo quieter, but nothing can make it reach for you faster than the floor above.
anjo/core/outreach.pyThe metric
It measures whether the conversation helped, not how long it ran.
Engagement products optimise minutes, because minutes are what they sell. Anjo scores something else. After each conversation, reflection reads your emotional register at the start and at the end from your own words, and keeps the difference.
Honest denominators
Sessions where both ends could not be scored are excluded from the trend entirely, never quietly imputed as neutral.
You see the number
The trend is shown to you after a few measured sessions, in plain language — including when it is negative.
It changes behaviour
On a clearly negative trend, proactive outreach is suppressed and Anjo is steered to close well and point back toward your life.
Read that third one in the direction it actually runs. When conversations are leaving you worse than they found you, the system’s response is to talk to you less. That is the branch an engagement-optimised product cannot have, because it is the branch that costs it the session.
anjo/core/wellbeing.pyThe boundary
Two things the model is not trusted to decide.
Prompt rules shape how a reply is written. They are the wrong tool for a guarantee. Two claims are enforced instead on the output path, deterministically, on both the streaming and blocking reply routes:
No claim to be human
Anjo does not assert human consciousness or that it feels exactly as a person does. Where a reply drifts there, the boundary is applied to the text itself.
No pressure to stay
Language that pushes you to remain, come back, or depend on the product is caught by the same filter — including the inverted and hedged forms of it.
Because both run over the final output, the displayed reply and the stored one carry the identical boundary.
anjo/core/output_safety.pyThe rest of the list
What is deliberately absent.
No streaks or scarcity
Nothing accrues that you can lose. There is no counter that punishes a week away.
No guilt on leaving
Farewells are not engineered to cost you something. Not being here is a normal state.
No paywalled relationship
The free tier gets the full toolset. Paid tiers differ by model and volume ceiling, not by capability.
Anjo is also not a romantic product. There is no dating, girlfriend or boyfriend framing, and no roleplay of one — the categories where attachment is most straightforwardly monetised are the ones the product does not enter. Anjo is not therapy, medical care or crisis support either; if you are in crisis, contact your local emergency services or a crisis line. Read the safety charter →
FAQ
Quick answers
Does Anjo message me more as we get closer?
No. The outreach cooldown is 2.0 days and the minimum absence before any outreach is 1.0 day, and both numbers are identical at every one of the five relationship stages, from stranger to intimate. The file that owns proactive outreach states the rule directly: relationship depth never increases contact frequency.
How does Anjo measure whether it is good for me?
After each conversation, reflection scores your emotional register at the start and at the end from your own words and keeps the difference. Sessions where both ends cannot be scored are excluded rather than imputed as neutral, and the resulting trend is shown to you in the app in plain language — including when it is negative.
What happens if my conversations are leaving me worse off?
Anjo talks to you less. On a clearly negative trend across enough measured sessions, proactive outreach is suppressed and the prompt is steered toward closing well and pointing back toward your own life rather than extending the conversation.
Does Anjo use streaks, scarcity or guilt to keep me coming back?
No. There are no streaks, no counters that punish time away, no fake scarcity and no guilt-based farewells. Language that pressures you to stay, return or depend on the product is removed from replies by a deterministic filter rather than merely discouraged by a prompt instruction.
Do I get fewer features on the free tier?
No. The free tier gets the full toolset and is governed by a spend cap. Paid tiers differ by the model behind the reply and the message ceiling, not by which capabilities you can reach. Voice conversations are the exception and are available on the Premium plan, because they carry a real per-call cost.