Skip to content

Commit e5b0218

Browse files
committed
Initial commit: Modelforge desktop chat app
0 parents  commit e5b0218

78 files changed

Lines changed: 20803 additions & 0 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/release.yml

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
name: Release
2+
3+
on:
4+
push:
5+
tags:
6+
- "v*.*.*"
7+
8+
jobs:
9+
build:
10+
strategy:
11+
fail-fast: false
12+
matrix:
13+
os: [windows-latest, macos-latest, ubuntu-latest]
14+
15+
runs-on: ${{ matrix.os }}
16+
17+
steps:
18+
- uses: actions/checkout@v4
19+
20+
- uses: actions/setup-node@v4
21+
with:
22+
node-version: 22
23+
24+
- name: Install frontend dependencies
25+
working-directory: frontend
26+
run: npm ci
27+
28+
- name: Install app dependencies
29+
working-directory: app
30+
run: npm ci
31+
32+
- name: Build and publish
33+
working-directory: app
34+
run: npm run build:all && npx electron-builder --publish always
35+
env:
36+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
*node_modules/
2+
app/dist/
3+
app/release/
4+
frontend/dist/

LICENSE

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2026 Modelforge Contributors
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

README.md

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
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)

app/build/icon.ico

364 KB
Binary file not shown.

app/build/icon.png

10.4 KB
Loading

app/build/icon.svg

Lines changed: 16 additions & 0 deletions
Loading

0 commit comments

Comments
 (0)