Scimax VS Code
Scimax VS Code is a comprehensive scientific computing extension for Visual Studio Code, inspired by the powerful Scimax package for Emacs. It brings literate programming, knowledge management, and scientific writing capabilities to VS Code users.
What is Scimax VS Code?
Scimax VS Code transforms Visual Studio Code into a powerful environment for:
Literate Programming - Write documents that combine prose and executable code
Scientific Computing - Execute code in 30+ languages with Jupyter integration
Knowledge Management - Organize notes, tasks, and references in structured documents
Academic Writing - Manage citations, export to LaTeX/PDF, and write papers
The extension provides first-class support for org-mode files (.org), with full structural editing and navigation support for Markdown documents (see Markdown Compatibility).
Key Features
Document Structure
Create hierarchical documents with collapsible headings, properties, and tags. Navigate efficiently with outline views, heading jumps, and fuzzy search.
Unlimited heading levels with folding support
Tags and inherited tags for organization
Properties drawers for metadata
Speed commands for rapid navigation
See Document Structure for details.
Task Management
Track tasks with TODO states, priorities, deadlines, and scheduling.
Multiple TODO states (TODO, DONE, WAITING, NEXT, HOLD, CANCELLED)
Priorities [#A], [#B], [#C]
Checkbox lists with progress tracking
Deadline and scheduled timestamps with warnings
Cross-file task dependencies (blocking, triggering, ORDERED subtasks)
See TODO Items and Task Dependencies for details.
Tables
Create and edit tables with spreadsheet-like formulas.
Easy table creation and navigation
Column/row manipulation
Formula support (#+TBLFM:)
Import/export to CSV
See Tables for details.
Source Code Execution
Execute code blocks in 30+ programming languages directly in your documents.
Python, JavaScript, Shell, R, Julia, and more
Jupyter kernel integration for rich output
Session support for stateful execution
Code tangling for extracting source files
Variable passing between blocks
See Source Code Blocks for details.
Export
Export documents to multiple formats with customizable options.
HTML with syntax highlighting
LaTeX with custom preambles
PDF via LaTeX compilation
Markdown (GitHub-flavored)
See Export for details.
Timestamps and Planning
Manage dates, deadlines, and scheduling with rich timestamp support.
Active and inactive timestamps
Date/time ranges
Repeating tasks (+1d, +1w, +1m)
Deadline warnings
See Timestamps for details.
Links and References
Create hyperlinks to files, URLs, headings, and more.
External links (https://, file:)
Internal links to headings and targets
Citation links with bibliography support
Custom link types
See Links for details.
Agenda Views
View and filter tasks across multiple files.
Day, week, month views
TODO list aggregation
Deadline and scheduled item views
Tag and priority filtering
Custom agenda commands: composite views, match strings, stuck projects, stored views
See Agenda for details.
Journal System
Maintain a daily journal with calendar navigation.
One file per day organization
Calendar-based navigation
Quick capture and logging
Full-text search across entries
See Journal for details.
Database and Search
Full-text and semantic search across your documents.
SQLite FTS5 full-text search
Vector-based semantic search
Heading, source block, and hashtag search
Multiple embedding providers (local, Ollama, OpenAI)
See Database and Search for details.
Citations and Bibliography
Manage academic references with BibTeX integration.
Insert citations with multiple styles
DOI lookup for metadata
OpenAlex academic search
PDF management
See References for details.
How This Documentation is Organized
This documentation is organized into several sections:
Core Documentation (01-07)
| Document | Description |
|---|---|
| Getting Started | Installation and first steps |
| Basic Syntax | Markup, lists, math, blocks |
| Document Structure | Headings, folding, navigation |
| TODO Items | Task management |
| Tables | Table editing and formulas |
| Links | Hyperlinks and references |
| Timestamps | Dates, deadlines, scheduling |
| Source Code Blocks | Code execution |
Code Execution (08-09)
| Document | Description |
|---|---|
| Supported Languages | Languages for code execution |
| Jupyter | Jupyter kernel integration |
Export & Preview (10-12)
| Document | Description |
|---|---|
| Export | Exporting documents |
| LaTeX Preview | Math rendering and preview |
| Image Overlays | Inline image display |
Organization & Planning (13-17)
| Document | Description |
|---|---|
| Agenda | Agenda views and planning |
| Journal | Daily journaling system |
| Capture | Quick note capture |
| Notebook | Project-based organization |
| Projectile | Project management |
Search & Knowledge (18-19)
| Document | Description |
|---|---|
| Database and Search | Full-text and semantic search |
| References | Citations and bibliography |
Reference Documentation (24-30)
| Document | Description |
|---|---|
| Keybindings | Complete keybinding reference |
| Commands | All commands with descriptions |
| Configuration | All settings and options |
| Org API | Programmatic file modification |
| Non-Standard Features | org-ref, Emacs command markup |
| Unsupported Features | Emacs features not in VS Code |
| Command Line Interface | CLI for batch ops and scripts |
Specialized File Support (31-35)
| Document | Description |
|---|---|
| Publishing | Project publishing system |
| Excalidraw | Diagram editing integration |
| LaTeX Navigation | LaTeX file editing and commands |
| BibTeX Editing | BibTeX file editing and commands |
| Document Templates | Template system for documents |
| Manuscript Flattening | Prepare LaTeX for submission |
| Link Graph | Visualize file connections |
| Beamer Export | Slide presentations via Beamer |
| Granular Addressing | Anchors, back-links, orphan links |
| Dialog Notes | Decisions/questions as footnotes |
| Marp Slides | Slide sorter: thumbnails, editing |
| MyST Preview | Jupyter Book directives in preview |
| Org Preview | Live rendered preview (Cmd+Shift+V) |
| Version Control | Git next action, commit, push (C-x v) |
| Crucible | Browse and search crucible wikis |
Quick Start
Install the extension from the VS Code marketplace or from a VSIX file
Open or create an org file with the .org extension
Create a heading by typing * My First Heading
Add a source block and execute it: #+BEGIN_SRC org ,#+BEGIN_SRC python :results output print("Hello, Scimax VS Code!") ,#+END_SRC #+END_SRC Press C-<return> or C-c C-c to execute.
Explore the menus with C-c m (main menu) or C-c C-m (context menu)
See Getting Started for a complete introduction.
Getting Help
Within VS Code
Press `C-c m' to open the main Hydra menu
Press `C-c C-m' for context-sensitive menus
Use `C-S-P' and search for "Scimax" commands
Hover over elements for tooltips and information
Online Resources
GitHub Issues: Report bugs and request features
Documentation: This documentation set
Keybinding Help
Press `? ' at the beginning of a heading (with speed commands enabled) to see available speed commands.
See Keybindings for the complete reference.
Acknowledgments
Scimax VS Code is inspired by:
License
Scimax VS Code is open source software. See the LICENSE file for details.
Complete Documentation Index
This section provides a comprehensive index of all documentation topics with links for quick navigation.
Document Editing
| Document | Topics Covered |
|---|---|
| Document Structure | Headings, folding, properties, drawers |
| Markdown Compatibility | Markdown editing, tasks, tables, code |
| TODO Items | Tasks, priorities, checkboxes, states |
| Timestamps | Dates, deadlines, scheduling, repeaters |
| Tables | Table creation, editing, formulas |
| Links | Hyperlinks, internal links, citations |
| Editmarks | Track changes, revision marks |
Code Execution
| Document | Topics Covered |
|---|---|
| Source Code Blocks | Babel execution, header arguments |
| Supported Languages | Python, R, Julia, Shell, and more |
| Jupyter Integration | Kernel management, rich output |
| Org API | Programmatic file modification in TypeScript |
Export and Preview
| Document | Topics Covered |
|---|---|
| Export | HTML, LaTeX, PDF, Markdown export |
| LaTeX Preview | Math rendering, equation preview |
| Image Overlays | Inline image display |
| Excalidraw | Diagram creation and editing |
Organization and Planning
| Document | Topics Covered |
|---|---|
| Agenda | Agenda views, task filtering |
| Journal | Daily journaling, calendar navigation |
| Capture | Quick note capture, templates |
| Notebook | Project-based organization |
| Projectile | Project management, switching |
Search and Database
| Document | Topics Covered |
|---|---|
| Database and Search | Full-text search, semantic search, embeddings |
| References | Citations, bibliography, DOI lookup |
Specialized File Editing
| Document | Topics Covered |
|---|---|
| LaTeX Navigation | LaTeX speed commands, structure navigation |
| BibTeX Editing | BibTeX speed commands, entry/file operations, sorting |
Configuration
| Document | Topics Covered |
|---|---|
| Configuration | All settings, customization options |
Topic Index
Quick reference to find specific features across documentation.
| Topic | Primary Documentation | Related Documentation |
|---|---|---|
| Agent skills | CLI: Skill | AI Agent Skills - Claude Code, VS Code Copilot, Codex; knowhow and npx skills compatible |
| Agenda sync | Indexing for Agenda | Agenda Settings |
| Agenda views | Agenda | TODO Items, Timestamps |
| Custom agenda commands | Custom Agenda Commands | scimax.agenda.customCommands, CLI - C-c a c dispatcher, scimax agenda custom |
| Agenda match strings | Match Strings | Custom Agenda Commands - tags, properties, /TODO, m in the agenda menu |
| Stuck projects | Stuck Projects | scimax.agenda.stuckProjects |
| Store agenda views | Storing and Exporting Views | CLI - HTML, iCalendar, text and JSON export, scimax agenda store |
| Avy-style navigation | Navigation | Keybindings, Configuration - overlay jump labels, scimax.jump.* settings |
| Back-link CodeLens | Granular Addressing | Configuration - ← N references lenses, scimax.org.backlinks.codeLens |
| Babel execution | Source Code Blocks | Supported Languages, Jupyter |
| Basic syntax | Basic Syntax | Document Structure, Export |
| Book theme | Publishing | CLI - _config.yml theme options for published sites |
| Build profiles (LaTeX) | Export | Configuration, LaTeX Navigation - named pdflatex/bibtex, lualatex/biber command sequences |
| Beamer slides | Beamer Export | Export - LaTeX presentations with frames, themes, overlays |
| Bibliography | References | Links, Export, BibTeX Editing |
| BibTeX editing | BibTeX Editing | References, Speed Commands |
| BibTeX speed commands | BibTeX Editing | Speed Commands, LaTeX Navigation |
| Block elements | Basic Syntax | Source Code Blocks, Export |
| Bold text | Basic Syntax | Export |
| Capture templates | Capture | Journal, Configuration |
| Checkboxes | TODO Items | Document Structure |
| Citations | References | Links, Export, Non-Standard Features |
| Citation link style | References | Configuration - plain cite:&key vs bracketed [[cite:&key]] (Emacs round-trip) |
| CLI publish | Command Line Interface | Publishing - scimax publish, --init and its flags |
| CSL citation styles | Export | References - APA, MLA, Chicago, Harvard, IEEE, Vancouver |
| Code blocks | Source Code Blocks | Supported Languages, Tables |
| Custom exporters | Extension Points | Export, Commands - Handlebars template backends, where they live, why one may not load |
| Comma escapes (,* ,#+) | Source Blocks: escaping | Export - commas before * and #+ in blocks are dropped on export, run and tangle |
| Command markup | Non-Standard Features | Keybindings, Export |
| Comment toggle (DWIM) | Commands | Keybindings - `M-;` toggles `# ` prefix on line or selection |
| Configuration | Configuration | Feature-specific docs |
| Database optimize | Database and Search | CLI - shrink the file, scimax db optimize |
| Database view | Database View | Configuration - stats, maintenance, settings editor; C-c d i |
| Deadlines | Timestamps | Agenda, TODO Items |
| Definition lists | Basic Syntax | Document Structure |
| Diary sexp | Timestamps | Agenda |
| Docs chat (WebLLM) | Publishing | Database and Search - in-browser model answers questions on a published book-theme site |
| DOI lookup | References | Configuration |
| Dynamic blocks | Document Structure | Timestamps, Tables |
| Email a heading | Email a Heading | Configuration, Commands - Gmail/mailto compose from TO, CC, BCC properties, org-id footer |
| Embeddings | Database and Search | Configuration |
| Equations | Basic Syntax | LaTeX Preview, Export |
| Excalidraw | Excalidraw | Links, Image Overlays |
| Export to HTML | Export | LaTeX Preview |
| Export to PDF | Export | LaTeX Preview |
| Folding | Document Structure | Navigation |
| Footnotes | Document Structure | Links, Export |
| Formulas | Tables | LaTeX Preview |
| Full-text search | Database and Search | Navigation |
| Fuzzy search | Navigation | Database and Search |
| Heading background | Configuration | scimax.highlighting.headingBackgroundBars and per-level color customization |
| Heading navigation | Navigation | Document Structure, Speed Commands |
| Hashtags | Database and Search | Hover, click, C-c # insert, Tab after # completes; org and Markdown |
| Headings | Document Structure | Navigation, TODO Items |
| Hydra menus | Hydra Menus | Keybindings, Configuration |
| Image display | Image Overlays | Source Code Blocks |
| Include files | Export | Modular documents with #+INCLUDE: |
| Italic text | Basic Syntax | Export |
| Inline tasks | Document Structure | TODO Items |
| Journal entries | Journal | Capture, Agenda |
| Journal keybindings | The M-j Prefix | Keybindings, Commands - M-j j today, M-j d date picker, M-j ? menu |
| Jupyter kernels | Jupyter Integration | Source Code Blocks, Supported Languages |
| Keybindings | Keybindings | Speed Commands, Hydra Menus |
| Kill ring | Commands | Keybindings, C-y, M-y yank older kills, C-w, M-w |
| Auto-copy | Commands | Configuration, scimax.autoCopy.enabled copies mouse selections |
| LaTeX math | LaTeX Preview | Export |
| Links | Links | References, Navigation |
| Link display | Links | Configuration, Commands |
| Limitations | Unsupported Features | Emacs features not available in VS Code |
| Link graph | Link Graph | Links, Database and Search |
| Lists (ordered) | Basic Syntax | Document Structure |
| Lists (unordered) | Basic Syntax | Document Structure |
| Markdown equation hover | Markdown Compatibility | LaTeX Preview - hover $...$, $$...$$, environments in Markdown |
| Markdown links | Markdown Compatibility | Links - follow [text](file.md#anchor), insert markdown links |
| Markdown preview | Markdown Compatibility | MyST Preview - reveal the cursor, MyST directives, PDF |
| Marp build (CLI) | CLI: Marp Slides | Marp Slides - scimax marp build: one HTML file with presenter tools from a terminal |
| Table align (CLI) | CLI: Table Align | Tables - scimax table align: align tables in files from a terminal, --check for CI |
| Marp export | Marp Slides | PDF, PowerPoint, Google Slides via Marp CLI or Pandoc |
| Marp link (marp:) | Links | Marp Slides - click to present; hover for a first-slide preview |
| Marp menu | Marp Slides | Right-click in a deck: layouts, images, directives, themes |
| Marp app window | Marp Slides | Present in a window with no tabs or toolbar (scimax.marp.presentWindow) |
| Marp live reload | Marp Slides | Saving the deck reloads the open slideshow at the slide you are editing |
| Marp offline check | Marp Slides | Problems panel list of what needs an internet connection when presenting |
| Marp offline Python | Marp Slides | Python cells that run with no internet connection (presenter: offline) |
| Marp presenter tools | Marp Slides | Pen, laser, notes and live Python cells in the slideshow (presenter: true) |
| Marp preview | Marp Slides | Slide preview, directives; no Marp extension needed |
| Marp video and web pages | Marp Slides | Movies, sound, YouTube, Google Docs and other web pages on a slide |
| Marp Python panel | Marp Slides | C-c C-c runs a deck's Python cell in VS Code, without presenting |
| Marp slides | Marp Slides | Markdown Compatibility - slide thumbnails; double-click to jump to the source |
| Marp slideshow | Marp Slides | Present in the browser from a deck or an org link |
| Marp talk timer | Marp Slides | Countdown on every slide and in the presenter view (timer: 20) |
| Marp exercise countdown | Marp Slides | Countdown box on a slide for an exercise (countdown 3:00 fence) |
| Marp blank screen | Marp Slides | b / w blacks or whites the audience screen |
| Marp zoom | Marp Slides | x magnifies part of a slide during the slideshow |
| Marp go to slide | Marp Slides | g slide list, or a slide number then Enter |
| Marp editing toolbar | Marp Slides | Insert text, images and tables; font, size, colour; copy and paste in the slideshow |
| Marp slide editing | Marp Slides | d edits text and layout in the slideshow, saved with s |
| Markdown code blocks | Markdown Compatibility | Source Blocks - C-c C-c / ▶ Run, header args on the fence, shared session |
| Markdown export | Export | Pandoc-backed export of `.md` to HTML, LaTeX, PDF, DOCX |
| Markdown PDF engine | Configuration | xelatex by default so Unicode typesets; scimax.markdown.export.mainFont sets the font |
| Markdown support | Markdown Compatibility | Document Structure, Speed Commands, Source Blocks |
| Merge conflicts | Version Control: smerge mode | Conflicts Menu - n/p, m/t/b keep mine/theirs/both at a marker line, C-c ^ prefix |
| Markdown tables | Markdown Compatibility | Tables - GFM pipe tables keep alignment colons |
| Markdown tasks | Markdown Compatibility | Agenda - ## TODO [#A] Title, SCHEDULED/DEADLINE lines, hashtags |
| Mark ring | Keybindings | Emacs-style mark and region commands |
| Markup (text) | Basic Syntax | Export, bold, italic, underline, code |
| MyST / Jupyter Book | MyST Markdown Preview | Markdown Compatibility - admonitions, figures, roles, citations and equation refs |
| Math preview | LaTeX Preview | Export |
| New windows (C-x 5) | Find File | Keybindings - floating editor windows, like Emacs frames |
| Non-standard features | Non-Standard Features | References, Export |
| Notebooks | Notebook | Projectile, Journal |
| Org file modification | Org API | Source Code Blocks, Tables |
| Org-mode syntax | Basic Syntax | Document Structure, Source Code Blocks, Tables |
| Org preview | Org Preview | Export, Keybindings - live rendered preview, Cmd+Shift+V / Cmd+K V, scroll sync |
| org-ref citations | Non-Standard Features | References, Links |
| PDF export | Export | LaTeX Preview |
| Priorities | TODO Items | Agenda |
| Project agenda | Agenda | Projectile - C-c a v, Current Project |
| Project view, Gantt | Project Management | Agenda - webview chart, Excel and PDF export |
| Assignee filter | Agenda | Project Management - @ in the agenda buffer |
| Agenda item hover | Agenda | TODO Items - entry preview, open, cycle TODO, ignore file |
| Agenda view | Agenda View | Project Management - filter menus, custom agendas, right-click task actions |
| Version control (git) | Version Control | Keybindings - C-x v v next action, C-x v p push |
| Several files in git | Version Control: filesets | Dired - mark files, then C-x v v / = / l / u on all of them |
| Changed files (vc-dir) | Version Control: vc-dir | Dired - C-x v d lists every changed file; v commits, = diffs, s stages |
| Commit message buffer | Version Control | Hydra Menus - vc-log buffer, C-c C-c to commit |
| Crucible knowledge base | Crucible | References - search, concepts, back-links, derivation history |
| Directory links | Links | Dired - a link to a folder opens it in dired |
| Gantt tag filter | Project Management | Agenda - Tags checklist in the project view |
| Gantt drag to move | Project Management | Task Dependencies - drag bars, dependents follow, undo |
| Projectile | Projectile | Notebook |
| Properties | Document Structure | TODO Items |
| Quarto (.qmd) | Markdown Compatibility | Scimax structure editing alongside the Quarto extension; C-c C-c runs a chunk with Quarto |
| Quick capture | Capture | Journal, TODO Items |
| Recent files | Navigation | `C-x b` fuzzy-picks recently modified org/md files |
| Scheduling | Timestamps | Agenda, TODO Items |
| Search view | Search View | Agenda - live search; tag, property and path filters; C-c d v |
| Semantic search | Database and Search | Configuration |
| Session execution | Source Code Blocks | Jupyter Integration |
| Spelling navigation | Keybindings | Commands - Navigate between spelling errors |
| Speed commands | Speed Commands | Keybindings, Navigation |
| Tables | Tables | Export |
| Tags | Document Structure | Agenda, TODO Items |
| Tags view (all tags) | Database and Search | TODO Items - `scimax.db.searchByTag`, like org-tags-view |
| Task dependencies | Task Dependencies | TODO Items, Agenda, Granular Addressing |
| Project management | Project Management | Task Dependencies, TODO Items, Agenda |
| Gantt charts | Project Management | Task Dependencies - project view, Excel/PDF export |
| People / assignees | Project Management | TODO Items |
| Contacts / locations | Contacts & Entities | Project Management, Database & Search |
| Entity selector | Contacts & Entities | Database & Search |
| Contacts (C-c S-c) | Contacts & Entities | Project Management, Export (Email a Heading) |
| Email client (Gmail) | Contacts & Entities | Configuration, Export (Email a Heading) |
| Snippets (ti, <py) | Document Templates | Configuration - Tab expands prefixes |
| Templates | Document Templates | Capture, Journal, Configuration |
| Terminal navigation | Command Line Interface | Open CLI-output file paths from the integrated terminal |
| TODO states | TODO Items | Agenda, Configuration |
| TODO custom keywords | TODO Items | Per-file #+TODO: definitions |
| Track changes | Editmarks | Document Structure |
| Troubleshooting | Getting Started | Commands not found, activation failures, Scimax output channel, scimax.showDiagnostics |
| Unsupported features | Unsupported Features | Emacs features not in VS Code |
| Vector search | Database and Search | Configuration |
| Web links in export | Links | Export - plain and <...> URLs become links |
Quick Start by Use Case
I want to...
Take notes and organize information
Start with Getting Started
Learn Basic Syntax for formatting text
Learn Document Structure for headings and organization
Use Capture for quick note-taking
Search with Database and Search
Manage tasks and projects
Set up tasks with TODO Items
Add dates with Timestamps
View agenda with Agenda
Organize projects with Projectile or Notebook
Write scientific documents
Execute code with Source Code Blocks
Preview math with LaTeX Preview
Manage citations with References
Export with Export
Keep a journal
Set up with Journal
Use templates from Capture
Navigate entries with Navigation
✅ Programmatically modify org files
Use the Org API in TypeScript source blocks
Bulk update TODO states, properties, and tags
Extract and transform table data
Automate repetitive org file operations
✅ Configure the extension
See all options in Configuration
Set up keybindings with Keybindings
Customize menus with Hydra Menus