{"id":31110579,"url":"https://github.com/letmaik/privatgespraech","last_synced_at":"2025-09-17T07:48:04.353Z","repository":{"id":314810121,"uuid":"1056826311","full_name":"letmaik/privatgespraech","owner":"letmaik","description":"🔒 Talk to language models in private","archived":false,"fork":false,"pushed_at":"2025-09-14T22:09:00.000Z","size":85,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-09-15T00:16:25.499Z","etag":null,"topics":["llm","privacy","transformersjs"],"latest_commit_sha":null,"homepage":"https://letmaik.github.io/privatgespraech/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/letmaik.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2025-09-14T21:58:19.000Z","updated_at":"2025-09-14T22:09:04.000Z","dependencies_parsed_at":"2025-09-15T00:16:27.602Z","dependency_job_id":"789b4d54-928d-466b-955d-83f2e5d1ed81","html_url":"https://github.com/letmaik/privatgespraech","commit_stats":null,"previous_names":["letmaik/privatgespraech"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/letmaik/privatgespraech","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/letmaik%2Fprivatgespraech","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/letmaik%2Fprivatgespraech/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/letmaik%2Fprivatgespraech/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/letmaik%2Fprivatgespraech/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/letmaik","download_url":"https://codeload.github.com/letmaik/privatgespraech/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/letmaik%2Fprivatgespraech/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":275556852,"owners_count":25486040,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-17T02:00:09.119Z","response_time":84,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["llm","privacy","transformersjs"],"created_at":"2025-09-17T07:48:01.092Z","updated_at":"2025-09-17T07:48:04.339Z","avatar_url":"https://github.com/letmaik.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Privatgespräch\n\nhttps://letmaik.github.io/privatgespraech/\n\nA privacy-focused AI chat interface that runs language models entirely in your browser using WebGPU acceleration. Designed for desktop and laptop computers.\n\n## Privacy \u0026 Offline Operation\n\n- **Complete Privacy**: All AI processing happens locally in your browser - no data is ever sent to external servers\n- **Offline Capable**: After initial model download, the application works completely offline\n- **No Tracking**: No analytics, telemetry, or data collection of any kind\n- **Local Storage**: Models and conversations stay on your device\n\n## Device Compatibility\n\n**Recommended**: Desktop and laptop computers with dedicated or integrated GPU  \n**Not Recommended**: Mobile phones or tablets (limited WebGPU support and performance)\n\n**For Mobile**: Consider [EnclaveAI](https://enclaveai.com) for privacy-focused mobile AI chat\n\n## Features\n\n- **Local Processing**: AI inference runs entirely in the browser\n- **Multiple Models**: Support for Llama 3.2 1B, Phi-3.5 Mini, SmolLM2 1.7B, and Qwen3 0.6B\n- **WebGPU Acceleration**: Hardware-accelerated inference using GPU\n- **Syntax Highlighting**: Code blocks with full syntax highlighting\n- **Copy Functionality**: Copy code snippets and full responses\n- **Reasoning Support**: Collapsible thinking blocks for reasoning models\n\n## Technology Stack\n\n- **React 18**: UI framework with modern hooks\n- **Vite**: Build tool and development server\n- **Tailwind CSS**: Utility-first CSS framework\n- **Transformers.js**: Browser-based transformer model execution\n- **ONNX Runtime Web**: WebGPU-accelerated model runtime\n- **react-markdown**: Markdown rendering\n- **react-syntax-highlighter**: Code syntax highlighting\n\n## Requirements\n\n### Browser Compatibility\n- WebGPU support (Chrome 113+, Edge 113+)\n- Modern JavaScript (ES2020+)\n\n### System Requirements\n- GPU with WebGPU support\n- 4GB+ RAM recommended\n- 2-3GB storage for model cache\n\n**Note**: This application is optimized for desktop and laptop computers. Mobile devices have limited WebGPU support and may not provide adequate performance.\n\n## Installation\n\n```bash\nnpm install\nnpm run dev\n```\n\n### Build\n\n```bash\nnpm run build\nnpm run preview\n```\n\n## Usage\n\n1. Open the application (default: `http://localhost:5173`)\n2. Select a model from the dropdown\n3. Wait for initial model download and loading\n4. Start conversation by typing a message\n5. **Go offline**: After initial setup, disconnect from internet - the app continues working\n\n**Privacy Note**: All conversations and AI processing remain on your device. No data leaves your computer.\n\n## Architecture\n\n### Frontend Structure\n```\nsrc/\n├── App.jsx                 # Main application component\n├── main.jsx               # React app entry point\n├── worker.js              # Web Worker for AI processing\n├── components/\n│   ├── Chat.jsx           # Chat interface with message rendering\n│   ├── ModelSelector.jsx  # Model selection dropdown\n│   ├── LoadingModal.jsx   # Model loading progress modal\n│   ├── Progress.jsx       # Progress bar component\n│   └── icons/             # Icon components\n└── index.css              # Global styles\n```\n\n### Components\n\n- **Web Worker** (`worker.js`): Handles model loading and inference\n- **Chat Component** (`Chat.jsx`): Message rendering with markdown support\n- **Model Selector** (`ModelSelector.jsx`): Model selection interface\n- **Think Blocks**: Collapsible reasoning blocks for compatible models\n\n### Supported Models\n\n| Model | Size | ID | Features |\n|-------|------|----|---------| \n| Llama 3.2 1B | 1.2 GB | `onnx-community/Llama-3.2-1B-Instruct-q4f16` | General chat |\n| Phi-3.5 Mini | 2.1 GB | `onnx-community/Phi-3.5-mini-instruct-onnx-web` | Code generation |\n| SmolLM2 1.7B | 1.1 GB | `HuggingFaceTB/SmolLM2-1.7B-Instruct` | Efficient chat |\n| Qwen3 0.6B | 0.5 GB | `onnx-community/Qwen3-0.6B-ONNX` | Reasoning support |\n\n## Configuration\n\nTo add new models, update both `worker.js` and `ModelSelector.jsx`:\n\n```javascript\n// worker.js - Add model configuration\nstatic getModelConfig(model_id) {\n  const configs = {\n    \"new-model-id\": {\n      dtype: \"q4f16\",\n      device: \"webgpu\"\n    }\n  };\n}\n```\n\n```javascript\n// ModelSelector.jsx - Add to AVAILABLE_MODELS\n{\n  id: 'model-key',\n  name: 'Model Name',\n  description: 'Description and size',\n  url: 'new-model-id',\n  hasReasoningBlocks: false\n}\n```\n\n## Troubleshooting\n\n### WebGPU Issues\n- Use Chrome 113+ or Edge 113+\n- Check WebGPU support at chrome://gpu\n- Enable WebGPU in browser flags if needed\n\n### Model Loading\n- Verify stable internet connection\n- Check browser console for errors\n- Clear browser cache if needed\n\n### Performance\n- Close GPU-intensive applications\n- Use smaller models for better performance\n- Ensure sufficient RAM (4GB+)\n\n## License\n\nOpen source project. See license file for details.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fletmaik%2Fprivatgespraech","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fletmaik%2Fprivatgespraech","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fletmaik%2Fprivatgespraech/lists"}