A desktop workspace for reading and writing, with Claude Code as its assistant.
Read PDFs with AI help, write LaTeX with a live PDF preview, edit Markdown and rich text,
and let Claude Code see and drive the window you are working in.
Install Β· Quick start Β· Features Β· Claude Code Β· Cloud sync Β· Development
A LaTeX project: the source in the editor, the compiled PDF beside it, SyncTeX between the two.
Note
Free, with no account and no subscription. The only thing GilzaCode needs besides Windows or Linux is Claude Code. GilzaCode itself calls no model: the conversation belongs to Claude Code, under your own Claude plan.
- Features
- How it works
- Install
- Quick start
- Reading PDFs
- Claude Code inside the window
- Cloud sync
- Uninstall
- Feedback and bug reports
- Development
- Support
| Claude Code runs in its own panel, in the project you have open. Document actions hand it a prompt that you read and send yourself. | Select text in a PDF and Ask about it, Look it up, Translate it or hear it pronounced. Highlight, annotate and present. |
| Tectonic ships with the app: compile, preview, jump between source and PDF with SyncTeX, and recompile just the part you edited on save. Export to Word through pandoc. | An MCP server lets Claude Code read the open file and selection, the PDF page you are on and the compile errors, and open files, reveal a line in the PDF or compile for you. |
| A code editor for sources, rich text and WYSIWYG editing, and Markdown with live preview and Mermaid diagrams. | Keep a project mirrored in your Google Drive and continue it on another computer. Edits Claude Code makes on disk are synced too. |
| Project explorer, Git, an integrated terminal, and four layouts: IDE, Chat, Studio and Document. | English and Brazilian Portuguese. |
GilzaCode is the window; Claude Code is the assistant. Claude Code runs in the window's panel and starts GilzaCode's MCP bridge, which talks to the window over a private local connection.
flowchart TB
subgraph machine["Your machine"]
Window["π₯οΈ GilzaCode window<br/>editors Β· PDF viewer Β· LaTeX Β· Git Β· terminal"] <-->|local HTTP| Server["Local server"]
Server --> Project[("π Your project")]
Claude["π€ Claude Code<br/>(in the window's panel)"] -->|starts| Bridge["gilzacode-mcp<br/>(MCP over stdio)"]
Bridge -->|private token| Server
Claude -->|reads and edits files| Project
end
Claude <-->|your Claude plan| Anthropic["Claude"]
Server <-.->|optional cloud sync| Drive["Google Drive"]
The architecture and design decisions are documented in PROJECT_DESIGN.md.
- Windows 11. The WebView2 Runtime and .NET Framework that the window needs ship with it.
- Or Linux: Ubuntu 22.04 or newer, x86_64. The window's browser engine (QtWebEngine) ships inside the package.
- Claude Code, with
claudeon yourPATH. The installer warns if it is missing.
Open PowerShell and run:
irm https://raw.githubusercontent.com/gilzamir18/GilzaCode/HEAD/install.ps1 | iexPrefer to inspect the script first?
Invoke-WebRequest https://raw.githubusercontent.com/gilzamir18/GilzaCode/HEAD/install.ps1 -OutFile install.ps1
Get-Content .\install.ps1
.\install.ps1Installing a package you built or downloaded
powershell -ExecutionPolicy Bypass -File install.ps1 -Source dist\GilzaCode-windows-x64.zipThe installer downloads the latest release and installs it for your user only into
%LOCALAPPDATA%\GilzaCode, with no administrator rights. It creates shortcuts on the Desktop and in
the Start menu, and an entry in Settings βΊ Apps βΊ Installed apps.
Open a terminal and run:
curl -fsSL https://raw.githubusercontent.com/gilzamir18/GilzaCode/HEAD/install.sh | bashInstalling a package you built or downloaded
bash install.sh --source dist/GilzaCode-linux-x64.tar.gzThe installer installs the latest release for your user only into ~/.local/share/GilzaCode,
with no administrator rights, and adds GilzaCode to the application menu. It does not run as root:
the window's browser engine refuses to.
flowchart LR
A["1 Β· Open or create<br/>a project"] --> B["2 Β· Open a document"] --> C["3 Β· Open Claude Code<br/>(Ctrl+T)"] --> D["4 Β· Read, write, ask"]
- Open or create a project. A project is a folder on your disk. Use the + (new project) or the folder (open existing) button in the explorer.
- Open a document: a PDF to read, a
.texfile to write (the PDF preview opens beside it), or Markdown. - Open Claude Code with Ctrl+T or the robot button. The first time in a folder, Claude Code asks whether you trust it; answer in the panel.
- Work. Select text and right-click for the reading actions, or ask Claude Code directly. When an action prepares a prompt for Claude Code, it is pasted into the panel unsent: you read it, edit it, and press Enter yourself.
| Action | What it does |
|---|---|
| Ask about | Prepares a question about the selection, with its page and document, for Claude Code. |
| Look up | Explains the selected term in a popup, through claude -p. |
| Translate | Translates the selection in a popup, through claude -p. |
| Pronounce | Reads the selection aloud with a local voice. |
| Highlights and notes | On standalone PDFs (a paper, a reference), marks are written into the PDF itself, so highlights from Zotero or Acrobat show up here and yours travel with the file. |
| Present | Full-screen presentation mode for slides. |
Claude Code runs in the panel exactly as in a terminal, with its own sessions, settings and
/resume. GilzaCode adds an MCP server so that Claude Code can work with the window, not just with
the files:
| Tool | What Claude Code can do |
|---|---|
get_editor_state |
See the open files, the current one, the selection and unsaved changes |
get_pdf_view |
See which PDF and page you are reading, and what you selected |
open_file / close_file |
Open a file in the editor, at a line, or close it |
reveal_in_pdf |
Show where a .tex line lands in the compiled PDF |
set_layout |
Switch between the IDE, Chat, Studio and Document layouts |
get_problems |
Read the compile errors and warnings |
compile_latex |
Compile a .tex file |
list_pdf_annotations |
Read the highlights and notes in a PDF |
The tools that only read or show something are allowed in advance; compile_latex asks for your
permission.
Each project can be mirrored to Google Drive and continued on another computer.
- Connect once. Open the cloud button in the activity bar and press Connect: Google opens in your browser. GilzaCode can only see the folder it creates for your projects, not the rest of your Drive.
- It keeps up by itself. Saves from the editor sync after a short pause, and so do the edits Claude Code makes directly on disk.
- Another computer. Use the download button in the explorer to bring a mirrored project down and keep working on it there.
- Nothing is lost silently. When both sides changed the same file, both versions are kept and you choose; a pass that would delete many files asks first.
.env files (unless you opt in) and the sync's own bookkeeping never leave your machine.
Use Settings βΊ Apps βΊ Installed apps βΊ GilzaCode, or Uninstall GilzaCode in the Start menu.
On Linux, run bash ~/.local/share/GilzaCode/GilzaCode/_internal/uninstall.sh (the installer prints it).
Your settings and project list in ~/.gilzacode are kept unless you run the uninstaller with
-Purge (Linux: --purge), which asks for confirmation. Project folders are never removed.
Suggestions and bug reports are welcome at the GilzaCode issue tracker. Please remove private information (paths, document contents) before posting.
Requirements: Python 3.12 or newer, Node.js/npm and Git.
git clone https://github.com/gilzamir18/GilzaCode.git
cd GilzaCode
python -m venv .venv
.venv\Scripts\python.exe -m pip install -e .[dev]
cd gui; npm ci; npm run build; cd .. # builds the interface into gilzacode/static
.venv\Scripts\python.exe -m gilzacode.venv\Scripts\python.exe -m pytest # backend
cd gui; npm run test:wysiwyg; npx eslint src; cd .. # interface
# Windows package: dist\GilzaCode\ and dist\GilzaCode-windows-x64.zip
powershell -ExecutionPolicy Bypass -File build_exe.ps1# Linux package: dist/GilzaCode/ and dist/GilzaCode-linux-x64.tar.gz (see the header of
# build_exe.sh for the libraries the build machine needs; build on Ubuntu 22.04)
bash build_exe.sh
# open the real window and check it (needs a display, or xvfb-run)
python3 scripts/smoke_linux_window.py -- ~/.local/share/GilzaCode/GilzaCode/GilzaCodeTo ship Google Drive sync ready to use, set GILZACODE_GDRIVE_CLIENT_ID and
GILZACODE_GDRIVE_CLIENT_SECRET (a "Desktop app" OAuth client) before running build_exe.ps1, or
embed the client once with python scripts\embed_google_client.py --from-file client_secret_β¦.json.
The embedded file is git-ignored.
Releases are built by GitHub Actions (release.yml): set the same
version in pyproject.toml and gilzacode/__init__.py, then push a tag v<version>. The workflow
tests, builds and attaches GilzaCode-windows-x64.zip to the release. It builds the Linux package
in an Ubuntu 22.04 container, installs it on Ubuntu 22.04, 24.04, 26.04 and the latest release and
checks the window on each, then attaches GilzaCode-linux-x64.tar.gz.
Set GILZACODE_DEVTOOLS=1 to open the window with developer tools, and GILZACODE_HOME to use a
data folder other than ~\.gilzacode.
| Path | Contents |
|---|---|
gilzacode/ |
The window, the local server, the LaTeX, PDF, Git and terminal backends, the MCP bridge |
gilzacode/cloud/ |
Cloud sync: engine, scanner, providers |
gui/ |
The interface (React and Vite) |
packaging/, build_exe.ps1, build_exe.sh |
The Windows and Linux builds |
install.ps1, uninstall.ps1, install.sh, uninstall.sh |
Per-user installers and uninstallers |
tests/ |
Backend tests |
GilzaCode is free. If it is useful to you and you would like to support its maintenance, Settings βΊ About has a donation link. Donations are voluntary and do not unlock any feature.