Favorites
Discussions
Unread
Tags
Clear filters
Projects
Papers
Temporary chat — not saved
Teams
0.7
Context
  • System prompt 0
  • Attachments 0
  • Conversation (est.) 0
  • Current draft 0
Total 0
Remaining 0
0 edits · Tab/Esc act · Alt+↑↓ navigate
Discuss this change

All Chats

Title Project Agent / Team Kind Last activity Tags Models Images Archived
No chats match your filters.

Generated Images

No generated images yet.

Library

Name Type Scope Tokens / Size Updated
No items match your filters.

Notebook

Settings
Linked files store a device-local path with no content — they don't sync across devices and the send fails on another device.
Embeds a short per-document summary as an extra retrievable chunk. One model call per document at index time; applies on next add/reindex of each file.
Sources

Images

No images in this chat.
Overview
paper.tex whole file
Pick sections
Generation interrupted — keep typing to continue, or restore to edit.
Enter to send · Shift+Enter for newline

Conversation map

Open or save a chat to see its conversation tree.
No forks yet — use “Fork from here” on a message to branch this chat.
Scroll to zoom · drag to pan · click to focus · double-click to open · right-click to rename
Settings
General
Appearance
Theme
Fun
Genie
A playful pixel-art Genie lives in the top bar — it reacts as you chat, levels up on your token usage, tracks a daily streak, and celebrates achievements. Click it for your stats. Device-local; respects reduced-motion.
Network
Backend
Backend will switch when you close Settings.
Network proxy
Proxy used for all app traffic — chat, models, login, and sync. System follows your OS proxy; Off connects directly; Manual uses the proxy below. Applies immediately.
Proxy server
Host and port, e.g. proxy.corp:8080 (all schemes), http://proxy.corp:8080, or socks5://host:1080.
Bypass list
Comma-separated hosts that skip the proxy. Loopback (localhost / 127.0.0.1) is always bypassed.
Username
Password
Only for proxies that require authentication. The password is stored encrypted on this device.
Account
Sign out
Clears this device's login and starts a fresh single sign-on. Use this if messages start failing with “model currently unavailable” — it removes stale login cookies a carried-over install can leave behind.
Chat
Agents compose with this via their Append / Overwrite / Off setting.
Default response language
The language replies are forced into. An agent may override this; “Auto” lets the model follow the conversation. Applies to chat titles too.
Performance
Suspend inactive tabs after
minutes (0 = never)
Drops the JS heap and rendered DOM for tabs you haven't visited in a while. The tab strip is preserved; clicking the tab reloads the chat from SQLite. In-flight chats and unsaved "New chat" tabs are never suspended.
Shareable configuration
Export your preferences — global system prompt, chat defaults (model, temperature, reasoning, search), response language, theme, and LaTeX formatting — to a portable .fhgcfg file, then import it on another machine. Only these preferences are included: no secrets, API keys, sync URLs, or device-local settings ever leave in the file.
Config file
Notifications
Sound on message complete
Highlight window when reply finishes
Flashes the taskbar on Windows/Linux, bounces the dock icon on macOS. Only fires when the window isn't focused.
Desktop notification when reply finishes
Shows an OS notification with the chat title. Clicking it focuses the app and opens that chat. Only fires when the window isn't focused.
Test notifications
Fires an OS notification immediately, even while this window is focused, to check whether your system delivers them. On macOS, notifications only work in a signed, packaged build — not in yarn start dev mode.
Models
Model metadata
Never refreshed
Reasoning levels probed from the gateway API. Auto-refreshes weekly.
Model health
—
Learned from your own chats — sends no extra requests. Use “Test” on a single model to check it (one request).

Follow-up messages
Off (recommended): the model's <think> reasoning is not sent back on later messages — some gateways reject it (“model unavailable”). Turn on only if your gateway needs the full reasoning replayed.
Agent packs
Bundles of curated agents. Installed agents can be edited or deleted normally; re-installing only adds missing entries.

Discussions
Adds a “New discussion” button: several models debate your prompt over rounds, then synthesize one answer. On by default — slow and token-heavy, turn it off here if you don't use it.
Enabled

Tags
Organize chats with colored tags: filter the chat list and colorize rows.
Enabled
Storage
Your data lives in a single local database file on this machine and works fully offline. This tab covers where that file lives, encrypting it at rest, and the files attached to your chats and projects. Replicating to your other devices is on the Sync tab.

Local database
Database file
Stores chats, agents, projects, files, and settings — one SQLite file.
Changes apply immediately — no restart. The folder containing the file becomes the git data directory.
In Remote mode this is the local offline copy that syncs up to the remote server.

Encryption
Encrypts the local database file at rest with a password (SQLCipher). Most important when the database lives in a shared or synced folder (ownCloud, Drive, Dropbox, a git repo) — without it, anyone with access to that folder can read your chats. This protects only the local file on this device. Remote sync has its own separate encryption password (Sync tab) and works whether this is on or off.
Encrypt local database
Not encrypted

Files
Stored files
—
Files attached to chats or projects, including loose files no longer linked to any project.
Default attachment storage
Copy stores file contents in the app database (and syncs via Git). Link stores only the file path and reads contents fresh from disk at send time — linked files don't sync across devices and the send fails if a file is missing. New chats inherit this unless a project or the chat itself overrides it.

Application logs
On-disk diagnostic logs for this device, including remote sync feedback (rejected API keys, decryption warnings, transport errors). Meant for sharing with support when you hit a problem. This is separate from the in-app sync log on the Sync tab.
File log level
Debug logs per-request detail (token usage, model routing, retries) to help diagnose problems — larger log files. Normal keeps the everyday level.
Full log kept for
Everything the app logs (verbose). Older entries are pruned automatically.
Error log kept for
Only warnings & errors (incl. remote sync feedback) — kept longer for diagnosing recurring issues.
Sync
Your chats are always saved locally on this machine (see the Storage tab) and work offline — turning sync on only adds an encrypted copy on a server so your other devices stay in step. It never affects whether your data is saved here. Turn on Remote sync to also send your changes — encrypted on this device first, so the server can't read your chats — to a hosted server so your other devices stay in sync.
Keep something off your other devices: right-click any chat (its tab or sidebar row) or a project and choose Don’t sync to keep it on this device only. A project kept local covers all of its chats. Note: this only stops new changes from leaving this device — anything already synced is on your other devices and won’t be removed.
Sync to a remote server
The local server isn't built/available here — Remote sync is required.
Not active yet — finish setup.
Automatically sync
Sync changes to the server in the background. Off = sync only with “Sync now”.
Activity
Projects on my devices
Re-sends every synced project and the chats filed under it to your other devices. Use this if a phone or newly-paired device shows chats but no projects.
Attachments on my devices
Re-sends the links between messages and their attached files to your other devices. Use this if a phone shows a chat but no file chips under messages that have attachments.
Sync is paused: this server already holds data from another device that doesn’t match this device’s records. To merge safely, enable sync on a fresh install (it pulls existing data first), or point at an empty account. Sync resumes automatically once you change the server settings below.

Remote server
Server URL
Organization account
Signs this device in and connects it — no API key to copy. Your sync encryption password below stays a separate secret.
API key
The API key is stored encrypted on this device and never synced.
Lost your key? Ask your administrator to re-issue it — your encrypted data is safe, the key only authenticates this device.
Or, if your admin gave you an invite code instead of an API key, paste it with the server URL above and the app will register for you — no key to copy.
Invite code
Identity
Your username is the public handle teammates use to find and share with you on this server. It's a label over your account — your end-to-end-encrypted data stays private either way.
Username
Sync encryption
Your chats are encrypted end-to-end with a secret before they leave this device — the server only ever stores unreadable ciphertext and never sees the secret. After signing in with your organization account, the first device creates it and shows a recovery key; new devices get it by approval from one of your other devices. You can also enter the recovery key (or a sync password you chose earlier) here. This is a separate secret from the API key and from the local database encryption on the Storage tab.
Recovery key or password
Not set
This version separates sync encryption from your database password. Re-enter a sync encryption password to migrate your synced data to the new key — your other devices must enter the same password, and the old server-side copy is replaced.
Lost every device and the recovery key? Reset sync
Pair another device
Connect another device to this sync account without re-typing anything — the code embeds your server URL, API key, and sync encryption password. Scan the QR from the phone app, or copy the code and paste it on another computer.
Pairing code
⚠️ Anyone who photographs this code gets full access to your synced data. Don't share it, and hide it when you're done.
Connect this computer with a pairing code
Have a pairing code from another computer that's already set up? Paste it here to connect this computer to the same sync account — no manual typing. This replaces this computer's current sync config.
Paste code
Status
—

Advanced
Git sync
Turning on Git sync disables Local/Remote server sync — they're mutually exclusive. Git sync replicates the whole database file through a git remote.
Enabled
Remote URL
Device ID
Identifies this device in git commit authors so sync history is distinguishable across machines.
Status
—
Migrate
One-time switch from whole-DB git sync to concurrent (oplog) sync. Upgrade every device first.
LaTeX cleanup
Post-processing for "Copy as LaTeX"
Strip \noindent, reflow tabular, escape _, custom regex rules.
Experimental features
Off by default. May be unstable or change without notice.
Enable experimental features

Conversation map
Fork any chat at a chosen message into a new copy, and view the whole family of chats as a graph — coloured nodes per chat, edges showing what was forked from what. Adds a Fork from here button to assistant messages and an Open map button to the chat header.
Enabled

Auto-retry unavailable reasoning model
Behind a corporate proxy a reasoning model's deployment cold-starts, so the 2nd message of a chat can fail with "The selected model is currently unavailable" even though retrying the same message works. When on, that retry happens automatically: the send is re-issued once or twice on a short warm-up delay before the error is shown. Applies to single chats using a reasoning model, only before any reply text has appeared. Off by default; the manual Retry button is always available.
Enabled

LaTeX workspace
Iterate on a real LaTeX paper with the AI: label sections with %fhgpro-label: comments, rewrite them in chat, apply via a per-region diff.
Enabled
Open local folder
No folder open
Open any folder of .tex files for ad-hoc editing.
Paper Git remotes
Add one or more HTTPS Git remotes (Overleaf, GitHub, GitLab, …). Click a paper in the sidebar's Papers list to clone (or fast-forward) and open. Tokens are encrypted at rest and never leave the main process.
  • Overleaf: URL https://git.overleaf.com/<project-id>, token from Account settings → Git integration (starts olp_…).
  • GitHub: use the HTTPS clone URL (e.g. https://github.com/owner/repo.git — not the SSH git@… form). Token must be a Personal Access Token with the repo scope (classic) or Contents: Read & Write (fine-grained).
  • GitLab / self-hosted: HTTPS clone URL plus a project- or user-scoped token with read_repository + write_repository.
LaTeX engine
Engine
—
Used to build the PDF view. latexmk / tectonic / pdflatex from system PATH all work; the bundled Tectonic (~30 MB) lands at vendor/tectonic/tectonic.

                                

RAG (grounded notebook)
Turn a project into a NotebookLM-style notebook: its files are chunked and embedded, and each chat retrieves only the passages relevant to the question instead of attaching whole documents. Switch it on per project in the project's settings.
Enabled
Embedding endpoint
Leave blank to use the Fraunhofer gateway. Or point at a local OpenAI-compatible server, e.g. http://localhost:11434 (Ollama) — requests go to <url>/v1/embeddings.
Embedding model
Dense embedding model id. Default is BAAI/bge-m3 on the Fraunhofer gateway, or bge-m3 for a local Ollama endpoint. Gateways allow only specific ids — use List models to fetch the allowed ids from <url>/v1/models (needs the API key below), then click one to fill this field.
API key
Sent as Authorization: Bearer to the embeddings endpoint. Leave blank if your endpoint needs no key.
Summary model
Gateway chat model used to write a short per-document summary, embedded as an extra retrievable chunk. Whether summaries are generated is now set per notebook (in a notebook's Manage dialog), not here. This is just the model + a connectivity test.

Have a coupon code? ;)
Got a secret code? Redeem it here to unlock a little extra.
External models (web)
Experimental: use Gemini and ChatGPT through your logged-in browser session — no API key. Undocumented and fragile, may break without notice, and automated use may violate the providers' Terms of Service. Single session, your turns only.
Google account
Not signed in
OpenAI account
Not signed in
System prompt
Resolved model —
The model that will actually be sent for this chat — the same value the message badge shows.

Composed from

Override active
Edit and Save to send this exact text verbatim for this chat (the layers above are bypassed). Reset clears the override and reverts to the composed prompt.
Chat settings
Storage & sync
Sync Log
Agents & Teams
      Relative to the global system prompt:
      Web & Fraunhofer search run on gpt-4.1, so the model is fixed for this agent.
      Forces the reply language. “Auto” inherits the global default.
      Used as the active agent on launch when no other is selected.
      Shown in the "+ Another answer" menu on every assistant message. Each row is one menu entry — leave model empty to inherit this agent's default.
      Add a saved agent or create a custom (team-only) member below, or drag an agent in from the list. Use the ↑/↓ buttons to reorder and the trash button to remove. Order sets the parallel card order and the discussion turn order.
      Members deliberate until the transcript nears the smallest model's context window, then vote. The synthesizer (above) writes the verdict and, for an emergent ballot, extracts the positions.
      New Special Chat

      No presets yet. A Special Chat pre-wires an agent or team, a seed prompt, and any inputs you need for a recurring task.

      Special Chat

       Director plan

      Director is planning…
      Mode
      Special Chat presets
        Setting overrides (optional)

        Select a preset to edit, or create a new one.

        Save current settings as new agent
        Import agent bundle
          Share
          They'll see it in their Shared hub and choose to install or ignore it — nothing is added to their app automatically.
          Shared
          Nothing has been shared yet.
          Shared with you
          Nobody has shared anything with you yet.
          Shared with everyone
          Nobody has shared anything with everyone yet.
          Shared by you
          You haven't shared anything yet.
          Compose agent package
          Pick agents and/or teams to bundle into one .yaml file. Agents used by a selected team are included automatically.
          Agents
            Teams
              Manage Library
                Global snippets are available everywhere; project-scoped snippets only appear in chats inside that project.
                No placeholders detected.
                Insert template
                Recently used
                    No matching entries.
                    
                                        
                    Fill template
                    Preview
                    
                                    
                    Manage tags
                    Project files
                    Recent files
                    No files yet.
                        Search
                        Method
                        Web results via FhGenie can vary in quality.
                        Set database password

                        Encrypts the local database at rest. The password is also used by other devices that pull this database.

                        Change database password
                        Remove database password

                        The database will be decrypted on disk. Anyone with file access — and anyone with access to the synced git repo — will be able to read its contents.

                        Migrate to oplog sync

                        This is a one-time, effectively one-way switch from legacy whole-database git sync to concurrent (oplog) sync. After it, edits from different devices merge instead of last-push-wins.

                        • Upgrade every device first. A device still on an old build will keep pushing the whole database and clobber the merged history.
                        • Your current fhgpt.db is kept as a dormant backup (fhgpt.pre-oplog.bak) and stops being tracked by git.
                        • Other upgraded devices migrate automatically on their next sync — no duplicate data.
                        Set up sync
                        How sync works

                        Syncing keeps an end-to-end-encrypted copy of your chats on a server so your other devices stay in step. Your data is always saved locally and works offline — sync only adds the encrypted copy. Three separate secrets are involved:

                        • API key — issued by your server administrator, or created for you when you sign in with your organization account. It authenticates this device. Stored encrypted here and never synced.
                        • @username — a public handle you choose, so teammates can find and share with you. (3–32 chars: a–z 0–9 _ . -)
                        • Sync password — the end-to-end encryption key for your chats. Create it once, then enter the same one on every device. The server never sees it.
                        Connect to your server

                        Enter the server URL and the API key your administrator gave you, then test the connection.

                        Server URL

                        Signing in with your organization account? This server lets you sign in instead of pasting an API key.


                        API key

                        Have an invite code instead? If your admin gave you a one-time invite code rather than an API key, paste it here with the server URL above and the app registers for you.

                        Invite code

                        Have a pairing code? If another computer is already set up, paste its pairing code here to connect this one — server URL, API key, and sync password all at once. You'll confirm before anything changes.

                        Back up & move your database — last step

                        Your database is in a cloud-sync folder, which isn't safe for sync — the cloud client swaps the file under the app and can corrupt it. This is the final step: the app will back it up, move it to —, and restart. Your username and sync password are already saved, so sync finishes automatically after the restart — no further input needed.

                        Choose your username

                        Pick a public @handle teammates use to share with you. Optional — you can set or change it later in Settings.

                        Username
                        Sync encryption

                        Encryption is set up on this device — leave the field empty and click Next.

                        First device here? Create a sync password now (or sign in with your organization account above, which sets this up for you). Adding another device? Enter your recovery key or the same password you used on your first device. The server only ever stores unreadable ciphertext and never sees it.

                        Recovery key or password
                        All set ✓

                        Sync is on.

                        Reset sync

                        This replaces the server’s stored copy of your synced data with the data on this device, re-encrypted with the password below. Use this if you’ve lost your sync password, or to force this device’s data to become the authoritative copy. Your other devices will only resume syncing after you enter the same password on each of them. This can’t be undone.

                        Usually your existing sync password.
                        Save your recovery key

                        Your synced data is encrypted with a key only your devices know. New devices get it by approval from one of your devices — you need this recovery key only if you ever lose all of them. Keep it somewhere safe, e.g. your password manager.

                        Copied
                        Approve this device

                        On another device that already syncs (with the app open), allow this device and check that it shows the same code:

                        Waiting for approval…
                        Allow a new device to sync?

                        wants to sync your chats.

                        Allow only if that device shows this code:

                        If you didn’t just sign in on another device, or the code differs, choose Deny.

                        Clean up logs

                        This permanently deletes this device's on-disk diagnostic logs (main.log and errors.log). Export them first if you still need them for support. New logging continues afterward. This can't be undone.

                        Enter passphrase

                        Import configuration

                        Choose which preferences from this file to apply to this machine. Existing values are overwritten for the keys you select.

                        This file contains no importable preferences.
                        Move to the new sync

                        Your database currently lives in a cloud-sync folder, which isn't safe for the new sync (the cloud client swaps the file under the app and can corrupt it). The app will move it to a local folder first, then turn on the sync server.

                        • A backup of your current database is made before anything is moved.
                        • The database is relocated to — (off the cloud folder).
                        • The app restarts; on the next launch your data is transferred to the sync server automatically.
                        • The old cloud copy is removed only after the move is verified.
                        Upgrading to the new sync

                        FhGenie Pro is upgrading to its new local sync.

                        Unlock database

                        The local database is encrypted. Enter the password to continue.

                        Welcome to fhGenie

                        How would you like to set up your data? Everything — chats, agents, teams, settings, even API keys — lives in a single database file you can sync between machines. On another device you only need that database and its password.

                        Database not found

                        Your database couldn't be opened right now — either the configured file isn't reachable, or the setting that points to it couldn't be read. This usually means a synced folder (e.g. ownCloud) isn't mounted, a cloned database folder was removed, or the file was briefly locked. Nothing was created — your data is safe wherever it normally lives, and a Retry often succeeds.

                        Database corrupted

                        Your local database file appears to be corrupted and can't be read reliably. The app can attempt to automatically salvage it into a new file before you decide what to do.

                          Copy table as LaTeX
                          Rule style
                          Wrap in \begin{table}
                          auto = one c per column. Override with explicit string like lcr.
                          LaTeX cleanup
                          Post-processing applied whenever content is copied as LaTeX.
                          Strip \noindent
                          Reflow tabular
                          \paragraph trailing dot
                          Escape _ outside math
                          Apply rewrite to region
                          Region — Left = current source · Right = proposed (editable). The marker lines are preserved.
                          Compose message
                          ⌘/Ctrl+F to find · ⌘/Ctrl+Enter to apply · Esc to cancel
                          Sent to the model
                          Read-only · exactly what is/was sent — @-mentions are labelled inside each attachment · ⌘/Ctrl+F to find · Esc to close
                          Compare responses
                          Comparing 0 responses · click chips to drop one before sending
                          Need at least 2 responses to compare.
                          Edit the template freely — adjust categories, rating criteria, prose. Placeholders {{ PROMPT }}, {{ A }}, {{ B }}, … are substituted with the actual prompt and responses when you open the new chat. Toggling a chip regenerates the template and replaces any manual edits.
                          All stored files
                          Add from Zotero
                          Better BibTeX is not reachable. Open Zotero (the desktop app) with the Better BibTeX plugin installed, then .
                          Expected endpoint: http://localhost:23119/better-bibtex/json-rpc
                            Type a query above to search your Zotero library.
                            Select a result to preview.
                            No PDF attachment on this item.