Prysm
// Meet Juno

Meet Juno — the teammate who's really good with data

Juno isn't a chatbot taped to a dashboard, and it isn't a “feature.” It's a teammate inside PrysmOS with real tools — it writes scripts, edits spreadsheets, publishes endpoints, and always asks before it touches anything it shouldn't.

prysm.spreadsheets.writeprysm.scripts.callprysm.endpoints.publishprysm.contracts.checkask_user

// Not a chatbot

Not a chatbot. Not a copilot. A coworker.

Most AI tools stop at advice. Juno picks up the tools, does the work, and checks in when the decision is yours to make.

Most AI

Describes the formula you could write, then wishes you luck.

Juno

Writes it, recalcs the sheet live, and shows you the diff.

Most AI

Explains, at length, how an API endpoint works.

Juno

Publishes yours as a real endpoint and hands you the URL.

Most AI

Guesses confidently when your request is fuzzy.

Juno

Asks a quick multiple-choice question, then gets it right.

// What Juno can do

One teammate, ~0 tools

Juno doesn't describe work — it does it, with the same tools you'd use. Every call is a real tool invocation you can inspect, and every action is scoped to your role's permissions.

Spreadsheets

Edits cells, writes real formulas, applies formatting, recalcs live.

prysm.spreadsheets.read
prysm.spreadsheets.write
prysm.spreadsheets.format

Scripts

Creates, edits, runs, and tests JS/TS/SQL — envs, schedules, the whole SDK.

prysm.scripts.create
prysm.scripts.run
prysm.scripts.tests

Endpoints

Turns a script into a real HTTP endpoint, docs included.

prysm.endpoints.publish
prysm.endpoints.test

Contracts

Schema and freshness rules — checked against reality, not just suggested.

prysm.contracts.check
prysm.contracts.create

Graphs & dashboards

Charts and dashboards from a plain-English sentence.

prysm.graphs.build
prysm.dashboards.compose

Docs & doc-sites

Writes documentation that lives next to the data.

prysm.docs.write
prysm.docs.publish

Files & secrets

Reads and writes files; uses secrets without the value ever leaving the platform.

prysm.files.write
prysm.secrets.use

Investigations

Multi-step digs into “why did this number move?” across connections.

prysm.investigate.run
prysm.connections.list
// The live demo

Watch it work — and watch it ask first.

This is a real Juno conversation shape: a plain-English ask, a chain of tool calls, and a hard stop the moment something destructive comes up.

1

The tool calls

Each line is a real tool call — prysm.scripts.list, prysm.spreadsheets.read — with real results, not a paraphrase of one.

2

The pause

When Juno reaches a destructive step — here, deleting a script — everything stops until a human says go.

3

Your call

Hit Approve or Deny right in the demo. Juno adapts either way and finishes the job around your decision.

Tip: try denying the delete. Juno doesn't sulk — it just does the rest of the job.

Juno · workspace chat deep mode
Ask Juno anything…
// It asks first

Juno never touches anything destructive without asking.

Deletes, script runs, contract changes — they always pause for a human. Every plan, every setting, every time. There is no “just let it run” switch, and when a decision is genuinely yours, Juno asks instead of guessing.

Destructive step → hard stop

Approval requiredalways, no exceptions

Juno wants to run purge-stale-rows.ts — deletes 1,240 rows from inventory-q4.grid

go on, click one

Your call to make → quick question

Juno has a questionask_user

Which quarter should the forecast start from?

Permission-scoped to your roleEvery action lands in the audit logNo “skip approvals” setting exists
// It knows where you are

Open a sheet, say “fix this” — done.

Juno sees the resource you have open — the spreadsheet, the script, the contract. No pasting screenshots, no re-explaining the schema, no 'which file did you mean?' Context comes free.

  • Aware of the open resource. “Fix this” on a sheet means that sheet — cells, formulas, gaps and all.
  • Aware of your workspace. Connections, scripts, contracts — Juno suggests the fix that uses what you already have in PrysmOS.
  • Proactive, not pushy. It flags what it notices and waits. You decide what happens next.
Juno sees this

You're in inventory-q4.grid — I found 38 rows missing reorder points. I can fill them from the Suppliers connection.

Fill the gapsNot now
// Two gears

Fast by default. Deep when it matters.

Juno routes every request to the right tools and the right model. Standard handles the daily hundred little asks; thinking mode is for the questions that deserve a longer think.

Standard

default mode

answers in seconds

The quick, competent colleague who answers before your coffee cools. Great for the hundred small things that eat a Tuesday.

  • Everyday asks: rename a column, explain a formula, chart this range
  • Answers in seconds, light on your token budget
  • The default — you never have to think about it

Thinking

reasoning mode

more thinking

For “figure out why churn moved” and “refactor the whole import pipeline.” Juno plans, chains tools, and checks in along the way.

  • Multi-step investigations and big refactors
  • Juno thinks longer and chains more tools together
  • Same rules — destructive steps still wait for you
// Unattended runs

Juno works while you sleep.

Schedule Juno on a Trigger with three simple dials — a plain-English instruction, a tool allowlist, and a hard call budget. You wake up to a summary, not a surprise.

1

The instruction

Every weekday at 6am — refresh the exec dashboard, then flag any contract that fails.

2

The tool allowlist

prysm.graphs.refresh · prysm.contracts.check — nothing destructive is even on the list.

3

The call budget

40 tool calls per run, max. Hit the cap and Juno stops, writes up what it did, and waits.

Runs are logged like any Juno session — tool calls, approvals skipped, and a summary waiting in your inbox.

Trigger · weekday 6:00 AMunattended run
Junoscheduled6:02 AM

Morning run finished — 12 of 40 tool calls used.

prysm.graphs.refreshexec-overview → 3 charts
prysm.contracts.checkorders · freshness
Contract on orders is failing — fixing it needs your approval.Review
Full summary delivered to your inbox — nothing destructive was on the allowlist.
// Token budgets

A generous allowance, not a meter to watch

Juno runs on tokens, and every seat gets a daily and weekly allowance sized to its plan. Here's the whole story — it's shorter than you think.

One seat's week

resets daily & weekly
Mon
Tue
Wed
Thu
Fri
Sat
Sun

A typical seat spends well under its allowance — most days look like Tuesday, not a cliff. Unattended runs spend from the same budget, and their call caps stop them before they get ideas.

What a token buys

Every ask, tool call, and answer spends a few. A quick Standard-mode question is pocket change; a deep investigation spends more because it does more.

Warned, never surprised

Juno tells you as you approach the cap — and if a seat hits it, it waits for the reset or an admin bump instead of silently dying mid-task.

Rails, not a meter

Budgets are per seat, daily and weekly, sized to your plan — with tool-call caps on top. They exist to catch runaway loops, not to ration normal work.

// Steal one of these

What would you ask Juno?

Plain English is the whole interface. If you can say it — or grumble it — Juno can probably do it, or ask you the one question it needs first.

“Why did revenue dip last Tuesday?”“Turn this spreadsheet into an endpoint.”“Write a contract that catches stale feeds.”“Which scripts haven't run in 90 days?”“Forecast Q4 from the last three quarters.”“Rebuild the exec dashboard from scratch.”“Every weekday at 6am, refresh the board pack.”“Why did revenue dip last Tuesday?”“Turn this spreadsheet into an endpoint.”“Write a contract that catches stale feeds.”“Which scripts haven't run in 90 days?”“Forecast Q4 from the last three quarters.”“Rebuild the exec dashboard from scratch.”“Every weekday at 6am, refresh the board pack.”
“Fix this formula — the totals look wrong.”“Document the orders pipeline like I'm new here.”“Every Monday, summarize what changed in revenue.”“Find every chart still pointing at the old schema.”“Backfill the missing supplier rows from the connection.”“Clean up the columns nobody uses.”“Draft a doc explaining our freshness rules.”“Fix this formula — the totals look wrong.”“Document the orders pipeline like I'm new here.”“Every Monday, summarize what changed in revenue.”“Find every chart still pointing at the old schema.”“Backfill the missing supplier rows from the connection.”“Clean up the columns nobody uses.”“Draft a doc explaining our freshness rules.”
// A typical exchange

One sentence in, real work out

Every Juno answer comes with receipts — the actual tool calls it made. Here's what an ordinary ask looks like end to end.

You ask

“Fix this — the import sheet is a mess.”

Found the problem: three broken lookups and a column of dupes. I fixed the formulas and flagged 1,240 duplicate rows — deleting them needs your approval.

prysm.spreadsheets.read
prysm.spreadsheets.write
ask_user

You ask

“Why did revenue dip last Tuesday?”

Traced it to the orders feed — it stalled for six hours Tuesday morning. The freshness contract didn't catch it because the threshold is 24h. Want me to tighten it?

prysm.investigate.run
prysm.connections.list
prysm.contracts.check

You ask

“Turn this spreadsheet into an endpoint.”

Done — wrote a script that wraps the sheet's logic, ran its tests, and published it as an endpoint with docs. The URL is ready to share.

prysm.scripts.create
prysm.scripts.tests
prysm.endpoints.publish
// Asked a lot

The questions everyone asks

Everywhere you work in PrysmOS. There's a dedicated Juno app for longer tasks, a pop-out panel that follows you around the workspace, and it's embedded inside the script IDE and Investigate — so help is always one keystroke away.

// One workspace

Give Juno something to do

Hand it the task you've been putting off — the messy sheet, the undocumented pipeline, the dashboard nobody owns. It'll do the work, and it'll ask before anything important.