Your Screen --> OCR Text --> Logs (local) --> LLM Provider --> Report
^ |
| +-- Local (Ollama): Stays on your machine
| +-- Cloud (OpenAI/Anthropic/Gemini): Sent externally
|
+-- ALWAYS local (never leaves your machine)
- Ollama: Runs entirely on your machine. No data leaves your system.
- Privacy level: Maximum. Your OCR text, window titles, and commands stay local.
- OpenAI, Anthropic, Gemini: Data is sent to external servers for processing.
- Privacy level: Your prompts are subject to each provider's privacy policy.
- Mitigation: Automatic data redaction is applied before transmission.
When using cloud providers, the following patterns are automatically redacted from prompts:
- Passwords and credentials (
password=xxx,api_key: xxx) - API keys (
sk-*,ghp_*,xoxb-*, etc.) - Secret tokens
- Credit card numbers
- Email addresses
Redaction is controlled by config.py:
REDACT_SENSITIVE_DATA = True # Set to False to disable (not recommended)Warning: Session logs (logs/session_*.jsonl) contain raw OCR text from your screen. This may include:
- Passwords visible in terminal output
- Private messages
- API keys in code editors
- Personal information
Best practices:
- Never commit
logs/directory to git (already in.gitignore) - Clear old logs periodically
- Use the local Ollama provider when processing sensitive sessions
- Never commit API keys to version control
- Use
config_local.py(gitignored) or environment variables - Example:
export OPENAI_API_KEY="sk-..."
# Copy this to config_local.py and fill in your keys
TESSERACT_PATH = r"C:\Program Files\Tesseract-OCR\tesseract.exe"
OPENAI_API_KEY = "sk-..."
ANTHROPIC_API_KEY = "sk-ant-..."
GEMINI_API_KEY = "..."
LITELLM_API_KEY = "..."OCR text from websites could contain text designed to manipulate the LLM. The chunking and prompt structure limits this risk, but be aware that:
- Malicious web pages could inject instructions into OCR output
- The LLM processes this as user-provided context
- Review generated reports for unexpected content
When switching to a cloud provider, CyberScribe displays a warning:
WARNING: Using cloud LLM provider (openai:gpt-4o)
Your session data (including OCR text and window titles) will be sent to external servers.
Sensitive data is automatically redacted before transmission.
Set LLM_PROVIDER='ollama' in config.py to keep all data local.
The .gitignore file excludes:
logs/- Contains raw OCR dataquicklog.txt- Your manual notesconfig_local.py- API keys and secrets.envand.env.local- Environment variables*.key,*.pem- Certificate filescredentials/,secrets/- Secret directories
- Default to Ollama for maximum privacy
- Use cloud providers only when you need better model quality
- Review logs before sharing or uploading them anywhere
- Rotate API keys if you suspect they were exposed
- Clear
config_local.pyif sharing your project setup with others