Jev in Hermes Agent: Cut Your Agent Costs With a Model That Decides
Jev is a new kind of AI model from TypeSafe: it doesn't write, it decides. Add it to Hermes Agent with two prompts, then let it sort your email, keep scheduled jobs quiet, score lists, route tasks to the right agent and pick the right model for every task, in about half a second for a fraction of a cent.
9 prompts · 3 parts · copy-paste ready
// Contents
Part 01 / 03 — Add Jev to Hermes
Part 02 / 03 — Check it works
Prerequisites
- ▸Hermes Agent installed and answering (Telegram or terminal chat)
- ▸A Jev key: TypeSafe (console.typesafe.ai, $5 free credit) or OpenRouter (minimum $5 top-up, needed for Jev Router)
- ▸Words in [square brackets] in the prompts are yours to fill in
Add Jev to Hermes
There is nothing to install. One key (saved from your terminal, never pasted into a chat), then you give your agent a small decision skill for Jev 1.13, and (on OpenRouter) you choose which agent gets Jev Router.
Connect your key
your main agent
Never paste an API key into a chat: chats are stored, and keys in them leak. Your agent gives you a command; you run it in your server's terminal and paste the key there, where it goes straight into a private file.
What to expect: one command to run in your own terminal, then "TypeSafe connected" or "OpenRouter connected".
I want to connect Jev. My key is from [TypeSafe / OpenRouter]. Do not ask me for the key
in this chat, and never print it. Instead:
1. Give me ONE command to run in my own terminal on this server. It must ask for the key
with hidden input (nothing shows while I paste), then save it in ~/.hermes/.env as
TYPESAFE_API_KEY=... (TypeSafe) or OPENROUTER_API_KEY=... (OpenRouter), replacing any
old line with that name, make the file readable only by me (chmod 600), and print
only "saved". Then wait until I tell you "done".
2. When I say done, check it works without showing the key:
TypeSafe: POST https://api.typesafe.ai/v1/systemone with the key as a Bearer token and
{"model": "jev-latest", "state": "Hello", "questions": {"test": {"type": "noul",
"instructions": "Is this a greeting?"}}}
Tell me how sure Jev is that it is yes, as a percentage, and the input tokens it
used, or the exact error.
OpenRouter: call https://openrouter.ai/api/v1/key with the key as a Bearer token.
Tell me the credit limit and usage it reports, or the exact error.
3. Tell me "TypeSafe connected" or "OpenRouter connected" when it works.
The jev-decide skill
your main agent
This is the part that makes Jev useful day to day: any agent can now ask Jev 1.13 a quick question instead of spending a full model turn on it.
What to expect: a new skill called jev-decide, and one test decision with its cost.
Show full prompt
Create a Hermes skill called jev-decide in ~/.hermes/skills/jev-decide/, with a SKILL.md
and a small Python script (standard library only) that calls Jev 1.13.
The script: decide.py "<text to judge>" '<questions as JSON>'
- Read the key from ~/.hermes/.env. If TYPESAFE_API_KEY is set, call TypeSafe; otherwise
use OPENROUTER_API_KEY and call OpenRouter. Send the key as a Bearer token.
TypeSafe: POST https://api.typesafe.ai/v1/systemone
{"model": "jev-latest", "state": "<text>", "questions": <questions>}
OpenRouter: POST https://openrouter.ai/api/alpha/decisions
{"model": "typesafe/jev-1.13", "state": "<text>", "questions": <questions>}
- Questions are a map: each key is a name you choose, and the answer comes back under it.
choice: {"type": "choice", "instructions": "...", "criteria": {"option": "meaning"}}
noul (yes or no): {"type": "noul", "instructions": "Is ...?"}
score: {"type": "score", "instructions": "...", "criteria": ["lowest level", "...",
"highest level"]} (an ordered list, 2 to 10 levels)
- Answers: choice gives "choice" and "confidence", noul gives "noul" (the chance of yes),
score gives "score" (it can land between levels), "legend" and "confidence". The API
sends these chances as 0 to 1: always print them as percentages, 0 to 100% (0.93 is
93%). Print each answer with its confidence when there is one.
- Then print the cost. TypeSafe: usage.input_tokens x $0.042 per million (answers are
free). OpenRouter: usage.cost. On an error, print the status and message.
SKILL.md tells every agent when to use it: sorting, routing, yes or no checks and
scoring, where a fixed answer from a list is enough. Never for writing or for open
questions.
Test it: ask whether "My card was charged twice this month" is about billing, technical
or other. Show me the answer, the confidence and the cost.
Bonus: give one agent Jev Router (OpenRouter only)
your main agent
Jev Router is on OpenRouter only. With a TypeSafe key, skip this prompt.
Start with one specialist, so your main agent stays on the model you know while you try Jev.
What to expect: the agent answers as itself, now running on Jev Router.
Show full prompt
Switch my [AGENT NAME, e.g. Research] agent (profile [profile, e.g. research]) to Jev
Router on OpenRouter:
hermes -p [profile] config set model.provider openrouter
hermes -p [profile] config set model.default typesafe/jev-router
If that profile has no OPENROUTER_API_KEY in its own .env yet, set it there too with
hermes -p [profile] config set OPENROUTER_API_KEY, using the key you stored in prompt 1.
Do not show me the key.
Then start a new session for that agent and ask it "Who are you, and which model are you
running on?" Show me its reply.
Check it works
Prove Jev answers
your main agent
What to expect: a short report: three decisions, all correct, each under a second, plus (on OpenRouter) Jev Router's answer and which model it picked.
Show full prompt
Prove Jev works, and report in a short table.
1. Jev Router (skip this with a TypeSafe key): send one short question to
typesafe/jev-router through OpenRouter's chat completions endpoint. Report the answer,
which model OpenRouter says actually served it, how long it took and what it cost.
2. Jev 1.13: use the jev-decide skill on these three, one at a time:
- "Lunch tomorrow at 1?" Is it urgent? (yes or no)
- "Your invoice #2041 is paid" Is it a payment, a question, or spam?
- "URGENT: verify your account now or it will be closed" Same question.
Report each answer, its confidence, the time and the cost.
If anything fails, tell me the exact error and the one thing I need to fix.
Real use cases
These are the jobs Jev is good at: lots of small decisions, made fast and cheap, so your agents only spend real model time on the work that needs it. Each prompt is ready to paste; change the details in brackets to fit your work.
Sort every email before your big model reads it
your main agent (needs your email connected to Hermes)
What to expect: each new email lands with the right agent, sorted and ranked, and only that agent reads it.
Show full prompt
Every [hour], check the emails that arrived since the last run. For each one, use
jev-decide with three questions in one request:
choice: which group is it? [Customers, Sponsorships, Invoices, Newsletters]
score: how urgent is it, from 1 (can wait) to 10 (today)?
noul: is a real person waiting for a reply?
Hand each email to the agent for its group, and only that agent reads it:
[Customers: my developer agent, Sponsorships: my marketing agent,
Invoices: me, Newsletters: nobody]
When an email scores 8 or higher and someone is waiting, that agent writes me a draft reply.
Send me one short list: urgent emails first, each with the agent that has it. If
nothing is urgent, say so in one line. Save this as a scheduled job.
Scheduled jobs that only speak when it matters
your main agent
What to expect: your scheduled jobs stay quiet unless there is something for you to do.
Show full prompt
Go through my scheduled jobs. Change every one so that, before it sends me anything, it
asks jev-decide one yes or no question about its own result: "Is there something here
the owner needs to see or act on?" If Jev is less than 60% sure it is yes, the job sends
nothing and only notes the result in its log. Show me the list of jobs you changed.
Score a list in seconds
your main agent
Use it for leads, customer feedback, job applications, content ideas, anything you would otherwise read one by one.
What to expect: your list back, sorted best first, with a score for every line.
Show full prompt
Score each of these [leads / reviews / ideas] with jev-decide, on a scale of 1 to 10 for:
[what good means, e.g. "how likely this person is to buy in the next month"].
Then give me the list sorted from highest to lowest, with the score next to each line
and the total cost at the end.
[paste your list here, one per line]
Send every request to the right agent
your main agent
What to expect: you name a task, and the right teammate gets it, with Jev's confidence shown.
Show full prompt
From now on, when I give you a task and do not say who should do it, use jev-decide with
a choice question whose options are your teammates, each described by its job from its
SOUL.md. If Jev is 80% sure or more, hand the task to that agent and tell me in
one line who got it. Below 80%, ask me which agent I want. Save this rule to your
memory, then try it on: "[a real task, e.g. find three competitors of my product and
compare their prices]".
Let Jev pick the model for every task
your main agent
The agent stays the same; only the model it uses changes, for that one task. Easy work runs on your cheap model, hard work on your strong one, and when Jev is not sure it picks the strong one.
What to expect: each task goes to the right agent on the right model, with one line saying which.
Show full prompt
I have two models: a light one for easy work, [e.g. MiniMax M3, provider minimax], and a
strong one for hard work, [e.g. Claude Opus, provider anthropic]. Note the exact model
name and provider of each, and check that both answer.
From now on, whenever you hand a task to one of my agents, first ask jev-decide a choice
question about the task:
light: short, routine or low stakes: summaries, formatting, sorting, simple replies,
looking something up
strong: hard thinking or high stakes: code, plans with several steps, anything about
money, contracts or clients
Then run that agent on the matching model, for this task only:
hermes -p <agent> chat -m <model> --provider <provider> -q "<task>"
If Jev is less than 80% sure, use the strong model. Do the same for my scheduled jobs.
Tell me in one line who got the task, on which model, and how sure Jev was.
Save this rule to your memory, then try it on two tasks: "[an easy one, e.g. summarise
this article: link]" and "[a hard one, e.g. plan the launch of my new product]".
All 9 prompts are . Or skip the setup:
Membership
Build beyond this tutorial
- 3 paid tutorials of your choice today
- Every new tutorial, the day it drops
- One-line auto-installers for what you unlock
- Private members Telegram
- Priority inbox, reply within 24h
$10/month. $20 covers your first 2 months.
Become a memberGet all 9 prompts by email
No card needed.
Want them as a single Markdown file? We'll email you a 6 digit code to confirm.
// What you're building toward
A Hermes crew that spends real model time only on real work: Jev makes the small calls (sort, route, score, stay quiet) in half a second, and your big model does the thinking.
Stuck on a step? Drop a comment on the video, or book a session and we'll walk through it together.
Usage & License
Use the prompts and downloadable templates on this page in your own personal and commercial projects. What's not allowed: reselling, repackaging, redistributing, or republishing this material — on YouTube, Gumroad, paid courses, newsletters, or anywhere else. Send people to komputermechanic.com instead. Violations get reported and taken down.