Skip to content

Latest commit

 

History

42 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OpenPrep

Open-source TOEFL® Writing practice powered by local AI tools.

Practice TOEFL®-style writing tasks, get structured AI feedback, and track your progress without paying for another full exam prep platform.

OpenPrep is for learners who already use local AI tools such as Codex, Claude Code, Ollama, or OpenCode and mainly want to improve their Writing score. Instead of starting from an empty chat window, you get a focused desktop workflow: pick a prompt, write your response, submit it, review feedback, and improve over time.

Quick facts: free & open source (MIT) · macOS desktop app · uses AI you already have · no account required · local data storage

Download the latest release · Run locally · Contribute

Built with Electron React TypeScript Local first

OpenPrep writing prompt catalog

Why OpenPrep?

TOEFL® prep tools can get expensive fast, and not every learner needs a full platform for every section. A lot of people are already comfortable with Reading, Listening, or Speaking, but want focused help with Writing.

OpenPrep is built for that use case:

  • Focus on Writing first. Start with TOEFL®-style writing prompts instead of paying for a full-course prep app you may not need.
  • Use the AI tools you already have. OpenPrep uses Switchboard to connect to local AI tools such as Codex, Claude Code, Ollama, and OpenCode.
  • Practice in a structured flow. Choose a prompt, write your response, submit it, and review the result in one consistent workflow.
  • Get feedback you can study. Scores, criterion notes, improvement points, and phrase-level feedback are shown in a structured UI instead of a long chat transcript.
  • See your progress. Attempts are saved locally so you can review earlier work and track improvement over time.
  • Keep room to grow. Writing is the first focus, but broader exam sections can be added later if users ask for them.

OpenPrep is more useful than opening ChatGPT alone because it gives you curated tasks, a repeatable workflow, structured output, saved attempts, and a place to compare progress over time.

The Experience

Choose a Prompt

OpenPrep starts with a local AI tool picker for evaluation, then opens a catalog of writing tasks so practice begins with a concrete exam-style assignment, not a blank chat.

Prompt list

Write in a Focused Desktop Workspace

The submission screen keeps the task and response area together, so you can stay in the essay instead of managing tabs, timers, or copied prompts.

Writing task detail

Submit and Let the Evaluator Work

Evaluation runs through the configured provider path, then returns a structured result the UI can render consistently.

Evaluation loading state

Review Actionable Feedback

Scores, strengths, improvement points, and detailed writing feedback are presented as a study artifact you can actually use for the next attempt.

Feedback overview

Detailed feedback section

Current Status

OpenPrep is in an early open-source preview. The current vertical slice focuses on macOS and TOEFL®-style writing practice:

  • prompt catalog
  • writing submission flow
  • Switchboard-backed writing evaluation
  • structured feedback UI
  • local persistence foundation
  • progress-oriented attempt storage
  • typed Electron IPC boundaries
  • mock provider for UI development

Planned product direction includes history and review, broader exam support, speaking feedback, reading and listening modules, and provider selection.

OpenPrep is a third-party practice tool, not an official product.

Download

Grab the newest app build from the GitHub releases page.

Because this is an early local-first macOS app, your system may ask you to confirm that you want to open software downloaded from the internet. That is expected for unsigned preview builds.

Run It Locally

Recommended runtime:

  • Node.js 22
  • macOS
  • a supported local AI tool if you want live AI evaluation
npm install
npm run dev

For local UI work without a live AI call:

OPEN_PREP_AI_PROVIDER=mock npm run dev

Switchboard-backed evaluation uses a five-minute timeout by default. If your local setup regularly needs more time, override it in milliseconds:

OPEN_PREP_AI_TIMEOUT_MS=600000 npm run dev

Useful checks:

npm run typecheck
npm run lint
npm test

Build the desktop app:

npm run build

If Electron fails to install correctly, use Node 22, remove node_modules, and run npm install again. The current Electron toolchain is tested against the CommonJS path used by vite-plugin-electron and is not intended for Node 26.

Recommended AI Agent Prompt

RECOMMENDED    AI AGENT PROMPT

Copy this prompt into your coding agent before making larger changes. It gives the agent the minimum repo context up front and points it to the project instructions it should follow.

Work in this repository using the existing package manager and scripts.

First:

  1. Install dependencies if needed.
  2. Read and follow AGENTS.md.
  3. Read markdown/PRODUCT.md and markdown/ENGINEERING.md for product and implementation context.

When making changes:

  • preserve the Electron security boundary between renderer, preload, and main
  • keep domain contracts and validation explicit
  • do not assume missing requirements; inspect the codebase first
  • run the relevant checks before finishing (npm run typecheck, npm run lint, npm test when applicable)

If something is unclear, ask follow-up questions instead of guessing.

</td>

How It Works

OpenPrep keeps the desktop security boundary explicit:

  • renderer handles React UI, routing, and view state.
  • preload exposes a narrow typed bridge.
  • main owns persistence, provider calls, and privileged work.
  • shared/domain contains contracts, schemas, and pure domain types.

The AI provider layer is deliberately pluggable. Switchboard handles local tool discovery, authentication, and execution while OpenPrep keeps prompt construction, parsing, and failure handling behind a common interface.

This architecture matters, but it is supporting infrastructure rather than the headline. The main product idea is still simple: give TOEFL® Writing learners a focused workflow that feels like practice, not a chatbot thread.

Project Docs

Contributing

OpenPrep is a good project for people who care about calm learning software, focused writing practice, typed domain modeling, and AI feedback that is presented as a real product experience.

Before opening a PR:

npm run typecheck
npm run lint
npm test

Please keep changes aligned with the product and engineering docs. The short version: preserve strict process boundaries, validate unsafe inputs, keep UI logic out of business logic, and avoid coupling the app core to a single exam, section, or AI provider.

Trademark Notice

TOEFL®, IELTS, and Cambridge are trademarks of their respective owners. OpenPrep is an independent open-source project and is not affiliated with or endorsed by those organizations.

About

Open source tool to prepare for your language certification exam

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages