Free & open source · Runs 100% on your machine

The simulator for conversations.

Practice interviews, negotiations, language, and difficult conversations with AI characters whose reactions evolve as you speak — all running locally on your computer. No account. No cloud. No telemetry.

Windows · macOS · Linux · Steam Deck  —  or build the Apache-2.0 source for free.

No cloud inference No account No telemetry No subscription

Practice the conversation before it matters.

Four official scenario packs ship free with every copy — openly licensed and yours to remix — with premium expansion packs available on Steam:

Job Interview Basics

Walk in ready.

  • Behavioral interview
  • Hostile executive
  • Blue-collar trade
  • Stretch role

Everyday Negotiation

Get to yes without giving in.

  • Used car
  • Apartment lease
  • Freelance scope
  • Customer-service refund

Language Café

Order the coffee in Spanish.

  • Spanish coffee shop
  • French hotel check-in
  • Japanese convenience store
  • English small talk

Difficult Conversations

Say the hard thing well.

  • Coworker feedback
  • Missed-deadline apology
  • Boundary with a friend
  • Ask for a raise

How a session works

  1. Choose a scenario

    Browse the library, read your player brief, and set the difficulty. Every scenario has goals, state variables, and events waiting to fire.

  2. Talk it out

    Type or speak. The character across the table pushes back, warms up, loses patience — its reactions evolve with every turn you take.

  3. Watch the state shift

    Live meters — credibility, composure, pressure — show the dynamic changing in real time. Say the wrong thing and you’ll see it.

  4. Debrief. Then run it again.

    A scored debrief shows what you said clearly, where you hedged, and the turning points. Adjust, rerun, improve. That’s the whole point.

Local-first is not a feature. It’s the architecture.

The conversations you most need to practice are exactly the ones you’d never type into someone else’s server. So there is no server.

WhatWhere it runs
Language modelYour machine — llama.cpp
Speech-to-textYour machine — whisper.cpp
Text-to-speechYour machine — Kokoro / sherpa-onnx
Transcripts & scoresYour disk — SQLite, never uploaded
TelemetryNowhere — none is built in

Don’t take our word for it

The code is open. And any time you like, one command runs a scripted conversation and confirms not a single byte left your machine:

npx convsim offline-smoke-test \
  packs/official/job-interview-basic

It exits with an error if any subsystem so much as tries to reach an external host.

Read the full privacy policy →

Have a look around

Scenario Library with the Job Interview Basics pack expanded, showing The Executive Gauntlet card with difficulty, rating, and tags.
Scenario Library — browse and filter packs
Conversation screen mid-session with live NPC state meters for credibility, composure, and pressure below the transcript.
Conversation — live state meters and events
Session debrief showing a 74 out of 100 score with a success badge, a scorecard, strengths, and key turning points.
Debrief — score, strengths, turning points
Creator Workbench three-panel view with pack list, file tree, and YAML editor showing a green validation banner.
Creator Workbench — build packs in YAML

Current UI, placeholder art — real recordings land with the Milestone 1 launch.

Write your own scenarios. No code required.

A scenario pack is a folder of YAML files — the situation, the character, the scoring rubric, the safety rules. If you can describe a conversation, you can build one.

The built-in Creator Workbench lets you copy an official pack, edit, validate with one click, test in the browser, and export a shareable zip. Publish to Steam Workshop or hand the file to a friend.

scenario_id: ask_for_a_raise
title: The Salary Conversation
player_role:
  brief: Make the case for the raise
    you already deserve.
npc:
  ref: ../npcs/your_manager.yaml
state:
  variables:
    rapport:
      default: 50
      visibility: visible

Practice the conversation
before it matters.