Skip to content

Zen-ctrl/NkrataHelper

Repository files navigation

NkrataHelper

NkrataHelper Logo

Real-time AI conversation coach that runs 100% locally.
Listens to your meetings, transcribes live, and gives you tactical nudges and strategic suggestions, all powered by your own documents.


The Name

Nkrata comes from the Twi language, spoken by the Akan people of Ghana. It is the plural form of krataa, meaning paper, document, or letter, a word believed to trace back to the Portuguese carta. In Akan grammar, the "N" prefix transforms the singular into plural: krataa (one document) becomes nkrataa (many documents).

The word carries weight in both everyday and formal contexts, from personal letters and correspondence to official certificates and records. Related Twi terms include nkra (a spoken message) and nkratoo (the postal system), each capturing a different dimension of how information travels between people.

NkrataHelper is, at its core, a tool that reads your documents and helps you speak with clarity, bridging the written and the spoken, just as the word itself connects paper to purpose.

"Wope nkrataa no?" — Do you want the documents?


Features

  • Live Transcription Whisper runs locally on your machine, no cloud APIs
  • Rolling Nudges Short tactical one-liners every ~10 seconds ("Ask about their timeline", "Mention the key metric now")
  • Deep Analysis On-demand strategic suggestions with data points from your documents
  • Auto Meeting Notes Key points captured every ~30 seconds with timestamps, saved as Markdown
  • Document Aware Load PDFs, DOCX, PPTX, XLSX, TXT, CSV, HTML, JSON, YAML as context
  • Drag & Drop Drop files directly into the app to add them
  • Team Sync Share transcript and suggestions with teammates over encrypted LAN WebSocket
  • Configurable Set document folders, save locations, LLM model, Whisper model
  • Privacy First Everything runs locally. No data leaves your machine.

Quick Start

Prerequisites

  1. Python 3.10+ python.org
  2. Ollama ollama.com/download

Install

git clone https://github.com/Zen-ctrl/NkrataHelper.git
cd NkrataHelper
python -m venv venv

# Windows
venv\Scripts\activate

# macOS/Linux
source venv/bin/activate

pip install -r requirements.txt

Pull an LLM model

ollama pull mistral

Other good options: llama3, phi3, gemma2

Run

python main.py

Usage

  1. Start Listening Click the green button or press Ctrl+L
  2. Watch Nudges Short tactical suggestions appear automatically in the center panel
  3. Get Deep Analysis Click "Suggest Now" or press Ctrl+S for in-depth strategic advice
  4. Review Notes Auto-generated meeting notes appear in the right panel
  5. Stop & Save Click "Stop Listening" and save your notes as Markdown

Adding Documents

Option 1: Go to Settings and add document folders Option 2: Click the drop zone at the bottom of the transcript panel to browse for files Option 3: Configure folders via Settings (supports multiple folders)

Supported formats: PDF, DOCX, PPTX, XLSX, TXT, MD, CSV, HTML, JSON, XML, YAML

Team Sync

  1. Click Team Sync in the header
  2. Host: Click "Start Hosting" and share the room code with your team
  3. Join: Enter the host's IP and room code, click "Connect"
  4. All data is AES encrypted over LAN, no cloud relay

Keyboard Shortcuts

Shortcut Action
Ctrl+L Toggle listening
Ctrl+S Deep suggest
Ctrl+Q Quit

Configuration

Settings are stored in:

  • Windows: %APPDATA%/NkrataHelper/config.json
  • macOS: ~/Library/Application Support/NkrataHelper/config.json
  • Linux: ~/.config/NkrataHelper/config.json

Available settings:

  • ollama_model LLM model name (default: mistral)
  • ollama_url Ollama API URL (default: http://localhost:11434)
  • whisper_model Whisper model size: tiny.en, base.en, small.en (default: base.en)
  • doc_folders List of document folder paths
  • save_folder Where notes and transcripts are saved
  • nudge_interval Seconds between nudges (default: 10)
  • note_interval Seconds between note generation (default: 30)

Building from Source

Windows (.exe)

pip install pyinstaller
python build_exe.py
# Output: dist/NkrataHelper/NkrataHelper.exe

macOS (.app)

pip install pyinstaller
pyinstaller --onedir --windowed --name NkrataHelper \
  --icon nkrata.ico \
  --collect-all faster_whisper --collect-all ctranslate2 \
  --collect-all onnxruntime --collect-all tokenizers \
  --collect-all customtkinter \
  --noconfirm main.py

Linux

pip install pyinstaller
pyinstaller --onedir --name NkrataHelper \
  --collect-all faster_whisper --collect-all ctranslate2 \
  --collect-all onnxruntime --collect-all tokenizers \
  --collect-all customtkinter \
  --noconfirm main.py

Architecture

┌─────────────────────────────────────────────────────────┐
│  Microphone                                              │
│      │                                                   │
│      ▼                                                   │
│  Whisper (local)  ──▶  Transcript  ──▶  Ollama (local)  │
│                           │                │             │
│                           ▼                ▼             │
│                    ┌──────────────────────────┐          │
│                    │     NkrataHelper GUI     │          │
│                    │  ┌────┐ ┌─────┐ ┌─────┐ │          │
│                    │  │ TX │ │COACH│ │NOTES│ │          │
│                    │  └────┘ └─────┘ └─────┘ │          │
│                    └──────────────────────────┘          │
│                           │                              │
│                           ▼                              │
│                    Team Sync (encrypted WS)              │
└─────────────────────────────────────────────────────────┘

Privacy & Security

  • 100% local Audio transcription and LLM inference never leave your machine
  • Team Sync encryption AES 128 CBC via Fernet (from cryptography library)
  • LAN only Team sync works over local network, no cloud relay
  • Passphrase auth Room codes use SHA 256 challenge response

License

MIT

Contributing

PRs welcome. Please keep the tool simple and local first.

About

Real-time AI conversation coach that runs 100% locally

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors