|
| 1 | +# Modelforge |
| 2 | + |
| 3 | +A desktop chat client for [Ollama](https://ollama.com) that also talks to OpenAI and Anthropic — one app for local and cloud models, built with Electron, React, and TypeScript. |
| 4 | + |
| 5 | +## Features |
| 6 | + |
| 7 | +- **Multi-provider chat** — local Ollama models plus OpenAI and Anthropic, with streaming responses, in one interface. |
| 8 | +- **Projects** — group related chats under shared instructions and default model parameters. |
| 9 | +- **Per-session and per-project overrides** — pin a specific prompt, model, context length, or temperature to a single chat or an entire project. |
| 10 | +- **Prompt library** — save and reuse system prompts across chats. |
| 11 | +- **File, image, video, and PDF attachments** — vision-capable models can see images and extracted video frames; PDFs and folders are parsed and, for large folders, retrieved via an in-app RAG pipeline (embeddings via Ollama). |
| 12 | +- **Usage and cost tracking** — token counts and estimated cost per message and per session (Ollama usage is free/local). |
| 13 | +- **Command palette** — `Ctrl/Cmd+K` to jump between chats, projects, and settings. |
| 14 | +- **English and Turkish** UI localization. |
| 15 | +- **Configurable Ollama host** — point at a remote Ollama server instead of localhost. |
| 16 | +- **Data export/import** — back up or move your chat history. |
| 17 | +- **Auto-updates** — packaged builds check GitHub Releases for new versions. |
| 18 | + |
| 19 | +## Installation |
| 20 | + |
| 21 | +Download the latest installer for your platform from the [Releases](../../releases) page. |
| 22 | + |
| 23 | +- **Windows** — `Modelforge Setup *.exe` |
| 24 | +- **macOS** — `Modelforge-*.dmg` |
| 25 | +- **Linux** — `Modelforge-*.AppImage` |
| 26 | + |
| 27 | +Modelforge talks to a local [Ollama](https://ollama.com) install by default — no API key required. OpenAI and Anthropic support is optional: add your API key in **Settings** only if you want to use those providers. |
| 28 | + |
| 29 | +## Quick start: try it in 5 minutes |
| 30 | + |
| 31 | +1. **Install [Ollama](https://ollama.com/download)** and pull a small model to test with: `ollama pull llama3.2`. |
| 32 | +2. **Install and launch Modelforge.** On first launch it detects your local Ollama install automatically — no setup screen, no account, no API key. |
| 33 | +3. **Send a message.** Pick `llama3.2` from the model dropdown and chat — you should see the response stream in token-by-token. |
| 34 | +4. **Try an attachment.** Drop in an image (with a vision-capable model like `llama3.2-vision`) or a PDF and ask a question about it. |
| 35 | +5. **Create a Project.** Group a couple of chats under one project with a shared system prompt, and confirm new chats in that project inherit it. |
| 36 | +6. **Open the command palette** with `Ctrl/Cmd+K` and jump between chats without touching the mouse. |
| 37 | +7. **Check Settings** — switch the UI language (English/Turkish), add an OpenAI or Anthropic key if you want to compare a cloud model side-by-side with a local one, or point "Ollama host" at a remote server. |
| 38 | + |
| 39 | +If steps 2–3 work, the core app is functioning correctly — everything else layers on top of that same chat pipeline. |
| 40 | + |
| 41 | +## Building from source |
| 42 | + |
| 43 | +Requires [Node.js](https://nodejs.org) 20+. |
| 44 | + |
| 45 | +```sh |
| 46 | +git clone https://github.com/SysTechSalihY/modelforge.git |
| 47 | +cd modelforge |
| 48 | + |
| 49 | +# install dependencies |
| 50 | +npm install --prefix frontend |
| 51 | +npm install --prefix app |
| 52 | + |
| 53 | +# run in development (starts the Vite dev server + Electron) |
| 54 | +npm run dev --prefix app |
| 55 | + |
| 56 | +# build a distributable installer for your current platform |
| 57 | +npm run package --prefix app |
| 58 | +``` |
| 59 | + |
| 60 | +Packaged installers are written to `app/release/`. |
| 61 | + |
| 62 | +## Project structure |
| 63 | + |
| 64 | +- `frontend/` — React + Vite renderer (the UI), built to a single inlined HTML file so Electron can load it via `file://`. |
| 65 | +- `app/` — Electron main process: window management, IPC handlers, provider integrations (Ollama/OpenAI/Anthropic), settings/session/project persistence, file and media processing, and packaging config. |
| 66 | + |
| 67 | +## Contributing |
| 68 | + |
| 69 | +Issues and pull requests are welcome. Please run `npm run lint` (frontend) and make sure both `frontend` and `app` build cleanly before opening a PR. |
| 70 | + |
| 71 | +## License |
| 72 | + |
| 73 | +[MIT](LICENSE) |
0 commit comments