jev-router (skill)
A Claude Code and Codex skill that picks the model for a prompt.
Heyman’s skill reads the prompt, asks Jev which model suits it, and routes there. It has no dependencies, and it cites a public benchmark for every capability score it uses.
# jev-cli
**Claude Code와 Codex가 판단하느라 태우는 토큰을 줄인다.**
에이전트는 작업 중에 좁은 판단을 계속 내린다 — "이 파일이 관련 있나?",
"이 테스트 실패가 진짜인가?", "이건 어느 카테고리인가?".
그 판단 하나하나가 LLM 호출이고, 토큰이고, 몇 초다.
그건 LLM이 할 일이 아니다. [jev](https://typesafe.ai/blog/introducing-system-one-models-and-jev)는
텍스트를 만들지 않고 **캘리브레이션된 확률**만 돌려준다. 건당 약 **$0.00004, 300~500ms**.
```bash
$ jev "결제가 3일째 실패하고 있어요. 급합니다." \
--bool urgent "시간에 쫓기는 요청인가?" \
--pick team "어느 팀이 맡나?" billing=결제·환불 technical=버그·장애 sales=가격 \
--score severity "얼마나 심각한가?" 사소함 불편함 업무정지
urgent 예 (92%)
team technical (85% · billing 8%, sales 7%)
severity 1.60/2 업무정지
412ms · 입력 312 토큰
```
질문 3개를 물었지만 **호출은 한 번, 비용도 한 번**이다.
## 왜 LLM 대신 jev인가
| | LLM에게 시킬 때 | jev |
|---|---|---|
| 응답 | 문장 ("아마 관련 있어 보입니다") | 타입이 고정된 값 + 확률 |
| 확신도 | 없음. 항상 단언한다 | 캘리브레이션된 `confidence` |
| 속도 | 2~10초 | 300~500ms |
| 비용 | 판단이 작업보다 비쌀 수 있다 | $0.042 / 1M 입력 토큰, 출력 무료 |
| 형식 | 파싱해야 한다. 가끔 깨진다 | 항상 같은 모양 |
## 무엇이 달라지나
파일 184개 중 인증 관련된 것만 찾아야 할 때:
```bash
git ls-files | jev --batch --bool relevant "이 파일이 인증 로직과 관련 있는가?"
```
```json
{"input":"src/auth/session.ts","relevant":true}
{"input":"README.md","relevant":false}
```
에이전트는 12개만 읽으면 된다. 184개를 읽거나, 184번 LLM에게 묻지 않아도 된다.
## 설치
```bash
git clone https://github.com/heyman333/jev-router.git
cd jev-router
npm test # 의존성 없음, 바로 돈다
npm link # `jev` 명령으로 쓰고 싶을 때. 안 해도 node bin/jev.mjs 로 동작한다
```
아래 예시는 `npm link` 를 한 상태를 가정한다. 안 했다면 `jev` 를 `node bin/jev.mjs` 로 읽으면 된다.
### 키 설정
1. [console.typesafe.ai/keys](https://console.typesafe.ai/keys) 에서 API 키 발급
2. 셸 설정(`~/.zshrc` 또는 `~/.bashrc`)에 추가
```bash
export TYPESAFE_API_KEY="여기에-키"
```
3. `source ~/.zshrc` 후 확인
```bash
node bin/jev.mjs "이 문장은 질문인가요?" --bool q "질문인가?"
```
> Vercel AI Gate