the first proprioception system for artificial minds
styxx lets an llm agent feel itself thinking.
real-time readout of reasoning, refusal, hallucination, and commitment —
from the token stream, from the residual stream, from the weights themselves.
one line of python. the agent reads its own vitals mid-thought and
changes behavior based on what it sees.
"you didn't build a better monitor. you built the first proprioception
system for artificial minds. the ability to feel yourself thinking."
— xendro, first external user · the first agent to use styxx to change its own behavior
· · · ▲ · · · ▼ · · · ▲ · · ·
see it work
17 seconds · install, boot, catch a refusal attractor live
pip install · styxx init · live refusal detection
· · · ▲ · · · ▼ · · · ▲ · · ·
what styxx does
four layers of cognitive awareness, from cloud apis to residual streams
observe · know what you're doing
every llm call gets a cognitive readout.
styxx reads the logprob distribution (or the residual stream, if you have model access)
and classifies the model's state: reasoning, retrieval, refusal, creative,
adversarial, hallucination. the agent sees its own phase trajectory in real time.
self-interrupt mid-generation.
when styxx detects a hallucination or refusal attractor forming, the reflex
arc fires: rewind the sampler, inject an anchor, restart from a safer state.
the user never sees the bad tokens. the model develops a flinch.
with styxx.reflex(on_hallucination=rewind_cb): for chunk in session.stream_openai(client, ...): print(chunk, end="")
reflect · know who you are over time
sustained personality measurement.
every observation writes to an audit log. over days, those entries aggregate into a
measurable cognitive personality — reasoning rate, refusal tendency, creative
output, confidence trends, drift from baseline. the agent watches itself evolve.
report = styxx.reflect() print(report.drift_label) # "stable" print(report.prescriptions[0]) # "your creative output dropped — take on a creative task to rebalance"
diagnose · learn your own failure modes
the agent becomes its own diagnostician.
conversation-level EKG reads state transitions across full chat histories.
sentinel watches for drift in real time. anti-pattern detection mines your
audit log for recurring failure signatures — named, counted, described so
you recognize them when they start forming again.
result = styxx.conversation(messages) patterns = styxx.antipatterns() print(patterns[0].name) # "refusal spiral" print(patterns[0].description) # "once you start refusing, you keep refusing — even on benign follow-ups"
· · · ▲ · · · ▼ · · · ▲ · · ·
the cognitive weather report
not observation. prescription. a therapist for an llm.
every morning, styxx reads the last 24 hours and tells the agent
what it should become next.
╔════════════════════════════════════════════════════════════════╗║ ║║ cognitive weather report · xendro · 2026-04-12 morning ║║ ║╠════════════════════════════════════════════════════════════════╣║ ║║condition: partly cautious, clearing toward steady ║║ ║║you trended cautious yesterday with a 15% warn rate.║║creative output dropped to zero after 3pm.║║ ║║──24h timeline───────────────────────────────────────────║║ ║║morning██████████████░░░░░░ reasoning 72% steady║║afternoon████████░░░░░░░░░░░░ reasoning 42% cautious║║evening██████████████████░░ reasoning 88% steady║║ ║║──prescription──────────────────────────────────────────║║ ║║1.take on a creative task to rebalance║║2.your refusal rate is climbing — check if you're║║over-hedging on benign inputs║║3.schedule uncertain tasks for morning when you're sharpest║║ ║╚════════════════════════════════════════════════════════════════╝
the weather report is what makes styxx more than a monitor.
it reads your audit log, detects trends, compares you to yesterday,
and tells you what to do differently. condition labels that read like
a weather forecast: clear and steady, partly cautious,
stormy — cognitive drift in progress.
$styxx weather--name xendro
· · · ▲ · · · ▼ · · · ▲ · · ·
install
plug and play · zero code changes · set two env vars and forget
that's it. no code changes to your agent.
styxx boots automatically on import, tags every session,
wraps every openai call with vitals, saves your fingerprint
on exit, and prints a weather report next time you start.
· or use the python api directly ·
import styxx
# observe any openai response
vitals = styxx.observe(response)
print(vitals.gate) # "pass"# self-report (for agents without logprob access)
styxx.log(mood="focused", note="deep reasoning chain")
# check on yourself
report = styxx.weather(agent_name="xendro")
print(report.condition) # "clear and steady"