Jev Setup logo

Jev Setup

CommunityPopular
kerpopule
jev-setup

Use when Jev is not working yet, a Jev tool reports no_key or auth_failed, or the person asks to connect or fix Jev. Gets their TypeSafe or OpenRouter key into the secret store, unseen by you.

Overview

Publisherkerpopule
Repositoryhermes-jev-skills
Skill namejev-setup
Stars
1K
Forks
103
Bundled files
Instructions only
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by kerpopule on GitHub. Read the source before you install it.

Installation

Install the Jev Setup AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/kerpopule/hermes-jev-skills/tree/main/skills/jev-setup
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/kerpopule/hermes-jev-skills.git /tmp/hermes-jev-skills
mkdir -p .claude/skills
cp -r /tmp/hermes-jev-skills/skills/jev-setup .claude/skills/jev-setup
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Jev Setup in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Jev Setup on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Jev Setup is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Connect Jev (the key never passes through you)

Jev is TypeSafe's decision model. It needs one API key. You must never see, ask for, or handle that key.

The key can come from any of three places, and the same Jev answers either way:

  • TypeSafe (jev setup-key, the default): a key from console.typesafe.ai.
  • OpenRouter (jev setup-key --provider openrouter): reaches Jev through OpenRouter's Decisions API. Worth offering when the person already has an OpenRouter key, because it is then one key instead of two and one bill instead of two.
  • Venice (jev setup-key --provider venice): reaches the same Jev through Venice, which serves it as its own decision modality. Worth considering when the person already has a Venice key; check Venice's current pricing before relying on any cost claim.
  • OpenCode Zen (jev setup-key --provider zen): reaches Jev through OpenCode Zen, whose free tier answers the same request with the same model id shape. Worth offering when the person has no TypeSafe key — TypeSafe is not accepting new signups — and wants to start without a bill.

TYPESAFE_BASE_URL is an explicit compatible-endpoint override for a local mock or HTTPS proxy (for example http://127.0.0.1:8787, or a gateway that mounts the API under a path such as https://gw.example/jev). It is not a built-in provider endpoint editor: the official URLs above stay fixed by default. The client never forwards a saved or supplied provider credential to an override endpoint — not the keychain entry, not the credentials file, and not TYPESAFE_API_KEY from the environment, because that variable is where most installs keep their real TypeSafe key. A gateway that requires a bearer gets JEV_PROXY_API_KEY instead: the operator sets it in the same environment as TYPESAFE_BASE_URL, for that gateway only, and it is sent to nothing else. The client permits plaintext only on numeric loopback and does not follow redirects. jev doctor names the override, says whether a bearer goes with it, and asks it: a gateway answering 401 shows up there as auth_failed instead of as silence. Do not send sensitive states to an untrusted proxy. Clear the variable to return to the official endpoint and normal key flow.

If more than one key exists, TypeSafe is used: an existing install never starts routing its decisions somewhere else because an OpenRouter or Zen key happened to be in the environment for a text model. To pick a different one on purpose, set JEV_PROVIDER=openrouter or JEV_PROVIDER=zen in the environment the commands run in; it is honoured only when that provider actually has a key here, and an unset or unknown value changes nothing. jev doctor reports which one is in use under key.provider.

Rules

  • Never ask the person to paste the key into the chat. If they paste one anyway, do not store it, do not repeat it, tell them that key should be replaced, and start the flow below.
  • Never read the secret store, .env files or ~/.config/jev/credentials to "check" the key. Use jev doctor, which reports only presence and length.
  • Never put the key in a command line, a URL, a config file you write, or a log.

Flow

  1. Check the state: jev doctor. If key.present is true and jev.reachable is true, you are done.

  2. Start the private key page:

    bash
    jev setup-key

    It opens a page in the browser on the computer you are running on and prints one JSON line on stderr with a url. The URL holds no secret.

  3. Tell the person, in one sentence, to paste their TypeSafe key into the page that just opened. If browser_opened is false, or they are talking to you from another device (Telegram, phone), send them the url and tell them it only opens on the computer the agent runs on. If they have no key yet, they create one at https://console.typesafe.ai/settings/keys.

  4. Wait for the command to finish. It prints {"status": "stored", "verified": true, ...} when the key was saved and the provider accepted it. rejected means the key was wrong: run it again. timed_out means nobody used the page within ten minutes.

  5. Run jev doctor once more and report the result in a sentence.

When there is no browser

Headless server over SSH: the person runs jev setup-key --tty themselves in their own terminal. It is a hidden prompt. Do not run it for them through a tool that captures the terminal.

Remote machine on a private network (Tailscale, VPN): jev setup-key --host <private-ip> --no-open and send them the link. That traffic is plain HTTP, so use it only on a network you trust end to end. Never bind a public address.

Where the key goes

The OS secret store (macOS Keychain service Hermes TypeSafe API, or secret-tool on Linux), falling back to ~/.config/jev/credentials (mode 0600). On a Hermes machine it is also written as TYPESAFE_API_KEY into ~/.hermes/.env and every profiles/*/.env, because each Hermes lane reads its own file. Running gateways pick it up on their next restart; do not restart one without being asked.

Frequently asked questions

What does the Jev Setup AI skill do?

Use when Jev is not working yet, a Jev tool reports no_key or auth_failed, or the person asks to connect or fix Jev. Gets their TypeSafe or OpenRouter key into the secret store, unseen by you.

Why use Jev Setup on TypingMind?

Because you install it once and use it with any model. Jev Setup is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Jev Setup in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/kerpopule/hermes-jev-skills/tree/main/skills/jev-setup. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Jev Setup?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Jev Setup?

As many as you like. As long as a model supports skills, you can use Jev Setup with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Jev Setup AI skill free?

Yes. It is published on GitHub by kerpopule under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇