Assistant replies are rendered as proper GitHub-flavored Markdown instead of raw text, so structured answers are far easier to read.
Full formatting. Headings, nested lists, blockquotes, task lists, links, and tables all render properly — not just bold/italic.
Readable code snippets. Fenced code blocks keep their language label and one-click Copy, and long LaTeX lines now wrap to the panel instead of scrolling sideways.
Line breaks preserved. Single newlines from the model are kept, so lists and step-by-step answers lay out the way they were written.
When a file you have open is changed on disk — by a build script, git, or another editor — texspark can now show you exactly what changed before you decide how to reconcile it, right inside the editor.
A diff, in place. A ± button in the editor header lights up (orange) whenever the file has changed on disk. Click it to see a read-only, color-coded diff — added and removed lines — rendered right over the editor in your editor font. Your work underneath is never touched.
Decide with one click. From the diff, Use Disk loads the on-disk version into the editor, and Keep Editor writes your version back to disk. Both fully resolve the difference — no accidental defaults, so you always choose deliberately.
Right where you need it. The same “Show Changes…” option appears in the save- and build-conflict prompts, so you can review before overwriting or reloading.
A multi-file LaTeX project is more than the file you’re editing. There’s now a project tree under the sidebar’s outline that maps out how your document actually fits together — the files your root pulls in and the bibliographies it cites — so you can jump anywhere in the project in one click.
Follows your includes, not the folder. Starting from the build target (or the active file), it walks \input, \include, and \subfile recursively and lists your \bibliography / \addbibresource files — in the order they appear in the source, so the tree reads like the document compiles.
Catches problems at a glance. A reference that doesn’t resolve on disk shows up as a red “missing” node — an instant check for typos and stale paths. Commented-out includes are ignored, and a file included from two places is flagged instead of expanded twice.
Stays in sync as you work. The tree updates as you edit, switch tabs, or build, and highlights the row for the file you’re currently in. Click any file to open it.
Sized the way you like. Collapse the whole section from its header, or drag its top edge to resize it freely — up to the full height of the sidebar. Your choice is remembered.
AI answers no longer get cut off, and the model list is live
Longer replies from the AI assistant used to stop mid-sentence at a fixed token limit, and the model menu was a short, hardcoded list. 0.8.6 removes the cap and lets each provider tell texspark what it can do.
Answers run to completion. The shared response cap is gone. OpenAI and Gemini now use their full output budget, so long explanations and code blocks finish instead of getting truncated.
Each Claude model gets its real limit. Anthropic’s API requires a max, so texspark reads each model’s true output ceiling from the provider and sends exactly that — never over the limit, never needlessly short.
The model picker shows what your key can actually use. Preferences → AI and the assistant header now list models fetched live from each provider, so new releases appear on their own. Offline, it falls back to a built-in list.
Getting texspark to open your .tex and .bib files on double-click used to mean digging through Finder’s Get Info panel — especially if another TeX app had already claimed the extension. Now it’s one button.
Set as default from Preferences.Preferences → Compile → File associations has a Set as Default button that makes texspark the editor for .tex, .ltx, .latex, .sty, .cls, .bib, and .bst in one go.
Shows the current state. The panel tells you whether texspark is already the default, reading the extension’s real handler — so it’s accurate even when another app owns .tex.
Nothing sneaky. texspark never seizes an association silently; macOS asks you to confirm the change, and it only happens when you click the button.
A round of correctness fixes around licensing and saving. Existing texspark licenses keep working exactly as before — nothing changes for paying users.
Product-scoped license keys. Activation and the periodic re-check now confirm a key actually belongs to texspark, so a key for a different product from the same store is turned away with a clear “this key isn’t for texspark” message instead of unlocking the app.
Save All, without the modal pile-up.Save All (⌥⌘S) is an explicit “write everything” action, so it no longer asks for per-file overwrite confirmation. Files that changed on disk outside texspark are left untouched — never clobbered silently — and reported together at the end so you can resolve each one with ⌘S or the reload button.
Steadier save / reload / build. The rules for what happens when a tab has unsaved edits and/or the file changed on disk are now driven by one shared decision path, covered by tests — so every entry point (⌘S, ⌘B, the reload button) behaves consistently.
Build commands
If you juggle projects that build differently — one on xelatex, another on latexmk, a third with a makeindex pass — texspark now remembers the build command for each project, and puts it right where you work.
A command per project. Each project (its build target 🔨, or the file you’re editing) keeps its own build command. Switch projects and the command follows — set latexmk once for the book and xelatex for the paper, and never swap them by hand again.
Command bar in the Terminal panel. Two always-visible, editable rows sit at the top of the Terminal: the build command with a ▶ to build (⌘B), and your custom command with a ▶ to run it (⌃⌘B). No trip to Preferences to tweak a flag.
Templates a click away. The 🔨 next to the build command opens Preferences → Compile, where the engine templates (xelatex / pdflatex / lualatex / latexmk / bibtex / makeindex) and options live.
Ever had a file change under you — a git checkout, a quick edit in another app, a script rewriting your .bib — and wondered whether the editor was still showing the truth? texspark now watches your open files, flags a tab the moment its file changes on disk, and asks the right question before any save, reload, or build could quietly clobber one side or the other.
External-change detection. Every open tab is watched. When a file changes on disk outside texspark, the tab gets an orange badge — a heads-up, never a surprise auto-reload.
Reload on demand. Pull the disk version back in from the ↻ button in the editor header, or right-click a tab → Reload from Disk.
Conflict-aware save, reload & build. Each action knows whether the tab has unsaved edits and whether the file changed on disk, and offers exactly the choices that make sense — never silently losing either version. Full behavior below.
Safer defaults. “Confirm before overwriting” is locked on and background auto-save is locked off while texspark is in active development.
Legend: Unsaved edits = the tab differs from what texspark last saved. Changed on disk = the file was modified outside texspark since then.
Save (⌘S)
Unsaved edits
Changed on disk
What happens
No
No
Nothing to save — no-op
No
Yes
Asks: Reload from Disk / Overwrite with Editor’s Contents / Cancel
Ever had a file change under you — a git checkout, a quick edit in another app, a script rewriting your .bib — and wondered whether the editor was still showing the truth? texspark now watches your open files and lets you pull the disk version back in on demand.
Reload from disk
External-change detection. Every open tab is watched. When a file changes on disk outside texspark, the tab gets an orange badge — no surprise auto-reload, just a heads-up that the on-disk copy has moved on.
Reload on demand. Pull the disk version back in from the new ↻ button in the editor header, or right-click a tab → Reload from Disk. If the tab has unsaved edits, texspark confirms before discarding them.
Smarter save conflicts. Saving over a file that changed underneath you now always asks first — Overwrite, Discard, Discard & Reload, or Cancel — so another editor’s or git’s changes are never clobbered silently.
The overwrite-confirmation safeguard is now locked on while texspark is in active development.
Finally, texspark supports BibTeX! For the past while I’ve been heads-down writing a full-length book, where citations never really came up — but now that the manuscript is done and I’m back to research papers, I needed BibTeX again. So here it is.
BibTeX
BibTeX tab in the sidebar. Next to Outline and Labels, a new BibTeX tab lists every entry from the .bib files your project references (\addbibresource / \bibliography), discovered recursively across \input / \include. Filter as you type.
Click — insert \cite{key} at the editor cursor
Double-click — open the .bib file at that entry
Citation autocompletion. Typing \cite{, \citep{, \citet{ (and friends) now suggests your BibTeX keys, the same way \ref{ offers labels — one source of truth, drawn from the same entries.
.bib syntax highlighting. Open a .bib file and entry types, field names, citation keys, and braces are colored to match your theme.