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 [2/5]

  • 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.

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.

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)

DocumentDescription
Getting StartedInstallation and first steps
Basic SyntaxMarkup, lists, math, blocks
Document StructureHeadings, folding, navigation
TODO ItemsTask management
TablesTable editing and formulas
LinksHyperlinks and references
TimestampsDates, deadlines, scheduling
Source Code BlocksCode execution

Code Execution (08-09)

DocumentDescription
Supported LanguagesLanguages for code execution
JupyterJupyter kernel integration

Export & Preview (10-12)

DocumentDescription
ExportExporting documents
LaTeX PreviewMath rendering and preview
Image OverlaysInline image display

Organization & Planning (13-17)

DocumentDescription
AgendaAgenda views and planning
JournalDaily journaling system
CaptureQuick note capture
NotebookProject-based organization
ProjectileProject management

Search & Knowledge (18-19)

DocumentDescription
Database and SearchFull-text and semantic search
ReferencesCitations and bibliography

Editing & Navigation (20-23)

DocumentDescription
EditmarksTrack changes system
NavigationFuzzy search and jump
Hydra MenusKeyboard-driven menus
Speed CommandsSingle-key heading commands

Reference Documentation (24-30)

DocumentDescription
KeybindingsComplete keybinding reference
CommandsAll commands with descriptions
ConfigurationAll settings and options
Org APIProgrammatic file modification
Non-Standard Featuresorg-ref, Emacs command markup
Unsupported FeaturesEmacs features not in VS Code
Command Line InterfaceCLI for batch ops and scripts

Specialized File Support (31-35)

DocumentDescription
PublishingProject publishing system
ExcalidrawDiagram editing integration
LaTeX NavigationLaTeX file editing and commands
BibTeX EditingBibTeX file editing and commands
Document TemplatesTemplate system for documents
Manuscript FlatteningPrepare LaTeX for submission
Link GraphVisualize file connections
Beamer ExportSlide presentations via Beamer
Granular AddressingAnchors, back-links, orphan links
Dialog NotesDecisions/questions as footnotes
Marp SlidesSlide sorter: thumbnails, editing
MyST PreviewJupyter Book directives in preview
Org PreviewLive rendered preview (Cmd+Shift+V)
Version ControlGit next action, commit, push (C-x v)
CrucibleBrowse and search crucible wikis

Quick Start

  1. Install the extension from the VS Code marketplace or from a VSIX file

  2. Open or create an org file with the .org extension

  3. Create a heading by typing * My First Heading

  4. 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.

  5. 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:

  • Scimax - The original Emacs package by John Kitchin

  • Org-mode - The powerful Emacs major mode for notes and planning

  • Org Babel - Literate programming in Org-mode

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.

Navigation Guides

DocumentTopics Covered
Getting StartedInstallation, first steps, basic usage
Basic SyntaxText markup, lists, equations, blocks
NavigationFuzzy search, avy-style jump, outline navigation
Hydra MenusKeyboard-driven menus, customization
KeybindingsComplete keybinding reference
Speed CommandsSingle-key commands at heading start
CommandsAll available commands

Document Editing

DocumentTopics Covered
Document StructureHeadings, folding, properties, drawers
Markdown CompatibilityMarkdown editing, tasks, tables, code
TODO ItemsTasks, priorities, checkboxes, states
TimestampsDates, deadlines, scheduling, repeaters
TablesTable creation, editing, formulas
LinksHyperlinks, internal links, citations
EditmarksTrack changes, revision marks

Code Execution

DocumentTopics Covered
Source Code BlocksBabel execution, header arguments
Supported LanguagesPython, R, Julia, Shell, and more
Jupyter IntegrationKernel management, rich output
Org APIProgrammatic file modification in TypeScript

Export and Preview

DocumentTopics Covered
ExportHTML, LaTeX, PDF, Markdown export
LaTeX PreviewMath rendering, equation preview
Image OverlaysInline image display
ExcalidrawDiagram creation and editing

Organization and Planning

DocumentTopics Covered
AgendaAgenda views, task filtering
JournalDaily journaling, calendar navigation
CaptureQuick note capture, templates
NotebookProject-based organization
ProjectileProject management, switching

Search and Database

DocumentTopics Covered
Database and SearchFull-text search, semantic search, embeddings
ReferencesCitations, bibliography, DOI lookup

Specialized File Editing

DocumentTopics Covered
LaTeX NavigationLaTeX speed commands, structure navigation
BibTeX EditingBibTeX speed commands, entry/file operations, sorting

Configuration

DocumentTopics Covered
ConfigurationAll settings, customization options

Topic Index

Quick reference to find specific features across documentation.

TopicPrimary DocumentationRelated Documentation
Agent skillsCLI: SkillAI Agent Skills - Claude Code, VS Code Copilot, Codex; knowhow and npx skills compatible
Agenda syncIndexing for AgendaAgenda Settings
Agenda viewsAgendaTODO Items, Timestamps
Custom agenda commandsCustom Agenda Commandsscimax.agenda.customCommands, CLI - C-c a c dispatcher, scimax agenda custom
Agenda match stringsMatch StringsCustom Agenda Commands - tags, properties, /TODO, m in the agenda menu
Stuck projectsStuck Projectsscimax.agenda.stuckProjects
Store agenda viewsStoring and Exporting ViewsCLI - HTML, iCalendar, text and JSON export, scimax agenda store
Avy-style navigationNavigationKeybindings, Configuration - overlay jump labels, scimax.jump.* settings
Back-link CodeLensGranular AddressingConfiguration - ← N references lenses, scimax.org.backlinks.codeLens
Babel executionSource Code BlocksSupported Languages, Jupyter
Basic syntaxBasic SyntaxDocument Structure, Export
Book themePublishingCLI - _config.yml theme options for published sites
Build profiles (LaTeX)ExportConfiguration, LaTeX Navigation - named pdflatex/bibtex, lualatex/biber command sequences
Beamer slidesBeamer ExportExport - LaTeX presentations with frames, themes, overlays
BibliographyReferencesLinks, Export, BibTeX Editing
BibTeX editingBibTeX EditingReferences, Speed Commands
BibTeX speed commandsBibTeX EditingSpeed Commands, LaTeX Navigation
Block elementsBasic SyntaxSource Code Blocks, Export
Bold textBasic SyntaxExport
Capture templatesCaptureJournal, Configuration
CheckboxesTODO ItemsDocument Structure
CitationsReferencesLinks, Export, Non-Standard Features
Citation link styleReferencesConfiguration - plain cite:&key vs bracketed [[cite:&key]] (Emacs round-trip)
CLI publishCommand Line InterfacePublishing - scimax publish, --init and its flags
CSL citation stylesExportReferences - APA, MLA, Chicago, Harvard, IEEE, Vancouver
Code blocksSource Code BlocksSupported Languages, Tables
Custom exportersExtension PointsExport, Commands - Handlebars template backends, where they live, why one may not load
Comma escapes (,* ,#+)Source Blocks: escapingExport - commas before * and #+ in blocks are dropped on export, run and tangle
Command markupNon-Standard FeaturesKeybindings, Export
Comment toggle (DWIM)CommandsKeybindings - `M-;` toggles `# ` prefix on line or selection
ConfigurationConfigurationFeature-specific docs
Database optimizeDatabase and SearchCLI - shrink the file, scimax db optimize
Database viewDatabase ViewConfiguration - stats, maintenance, settings editor; C-c d i
DeadlinesTimestampsAgenda, TODO Items
Definition listsBasic SyntaxDocument Structure
Diary sexpTimestampsAgenda
Docs chat (WebLLM)PublishingDatabase and Search - in-browser model answers questions on a published book-theme site
DOI lookupReferencesConfiguration
Dynamic blocksDocument StructureTimestamps, Tables
Email a headingEmail a HeadingConfiguration, Commands - Gmail/mailto compose from TO, CC, BCC properties, org-id footer
EmbeddingsDatabase and SearchConfiguration
EquationsBasic SyntaxLaTeX Preview, Export
ExcalidrawExcalidrawLinks, Image Overlays
Export to HTMLExportLaTeX Preview
Export to PDFExportLaTeX Preview
FoldingDocument StructureNavigation
FootnotesDocument StructureLinks, Export
FormulasTablesLaTeX Preview
Full-text searchDatabase and SearchNavigation
Fuzzy searchNavigationDatabase and Search
Heading backgroundConfigurationscimax.highlighting.headingBackgroundBars and per-level color customization
Heading navigationNavigationDocument Structure, Speed Commands
HashtagsDatabase and SearchHover, click, C-c # insert, Tab after # completes; org and Markdown
HeadingsDocument StructureNavigation, TODO Items
Hydra menusHydra MenusKeybindings, Configuration
Image displayImage OverlaysSource Code Blocks
Include filesExportModular documents with #+INCLUDE:
Italic textBasic SyntaxExport
Inline tasksDocument StructureTODO Items
Journal entriesJournalCapture, Agenda
Journal keybindingsThe M-j PrefixKeybindings, Commands - M-j j today, M-j d date picker, M-j ? menu
Jupyter kernelsJupyter IntegrationSource Code Blocks, Supported Languages
KeybindingsKeybindingsSpeed Commands, Hydra Menus
Kill ringCommandsKeybindings, C-y, M-y yank older kills, C-w, M-w
Auto-copyCommandsConfiguration, scimax.autoCopy.enabled copies mouse selections
LaTeX mathLaTeX PreviewExport
LinksLinksReferences, Navigation
Link displayLinksConfiguration, Commands
LimitationsUnsupported FeaturesEmacs features not available in VS Code
Link graphLink GraphLinks, Database and Search
Lists (ordered)Basic SyntaxDocument Structure
Lists (unordered)Basic SyntaxDocument Structure
Markdown equation hoverMarkdown CompatibilityLaTeX Preview - hover $...$, $$...$$, environments in Markdown
Markdown linksMarkdown CompatibilityLinks - follow [text](file.md#anchor), insert markdown links
Markdown previewMarkdown CompatibilityMyST Preview - reveal the cursor, MyST directives, PDF
Marp build (CLI)CLI: Marp SlidesMarp Slides - scimax marp build: one HTML file with presenter tools from a terminal
Table align (CLI)CLI: Table AlignTables - scimax table align: align tables in files from a terminal, --check for CI
Marp exportMarp SlidesPDF, PowerPoint, Google Slides via Marp CLI or Pandoc
Marp link (marp:)LinksMarp Slides - click to present; hover for a first-slide preview
Marp menuMarp SlidesRight-click in a deck: layouts, images, directives, themes
Marp app windowMarp SlidesPresent in a window with no tabs or toolbar (scimax.marp.presentWindow)
Marp live reloadMarp SlidesSaving the deck reloads the open slideshow at the slide you are editing
Marp offline checkMarp SlidesProblems panel list of what needs an internet connection when presenting
Marp offline PythonMarp SlidesPython cells that run with no internet connection (presenter: offline)
Marp presenter toolsMarp SlidesPen, laser, notes and live Python cells in the slideshow (presenter: true)
Marp previewMarp SlidesSlide preview, directives; no Marp extension needed
Marp video and web pagesMarp SlidesMovies, sound, YouTube, Google Docs and other web pages on a slide
Marp Python panelMarp SlidesC-c C-c runs a deck's Python cell in VS Code, without presenting
Marp slidesMarp SlidesMarkdown Compatibility - slide thumbnails; double-click to jump to the source
Marp slideshowMarp SlidesPresent in the browser from a deck or an org link
Marp talk timerMarp SlidesCountdown on every slide and in the presenter view (timer: 20)
Marp exercise countdownMarp SlidesCountdown box on a slide for an exercise (countdown 3:00 fence)
Marp blank screenMarp Slidesb / w blacks or whites the audience screen
Marp zoomMarp Slidesx magnifies part of a slide during the slideshow
Marp go to slideMarp Slidesg slide list, or a slide number then Enter
Marp editing toolbarMarp SlidesInsert text, images and tables; font, size, colour; copy and paste in the slideshow
Marp slide editingMarp Slidesd edits text and layout in the slideshow, saved with s
Markdown code blocksMarkdown CompatibilitySource Blocks - C-c C-c / ▶ Run, header args on the fence, shared session
Markdown exportExportPandoc-backed export of `.md` to HTML, LaTeX, PDF, DOCX
Markdown PDF engineConfigurationxelatex by default so Unicode typesets; scimax.markdown.export.mainFont sets the font
Markdown supportMarkdown CompatibilityDocument Structure, Speed Commands, Source Blocks
Merge conflictsVersion Control: smerge modeConflicts Menu - n/p, m/t/b keep mine/theirs/both at a marker line, C-c ^ prefix
Markdown tablesMarkdown CompatibilityTables - GFM pipe tables keep alignment colons
Markdown tasksMarkdown CompatibilityAgenda - ## TODO [#A] Title, SCHEDULED/DEADLINE lines, hashtags
Mark ringKeybindingsEmacs-style mark and region commands
Markup (text)Basic SyntaxExport, bold, italic, underline, code
MyST / Jupyter BookMyST Markdown PreviewMarkdown Compatibility - admonitions, figures, roles, citations and equation refs
Math previewLaTeX PreviewExport
New windows (C-x 5)Find FileKeybindings - floating editor windows, like Emacs frames
Non-standard featuresNon-Standard FeaturesReferences, Export
NotebooksNotebookProjectile, Journal
Org file modificationOrg APISource Code Blocks, Tables
Org-mode syntaxBasic SyntaxDocument Structure, Source Code Blocks, Tables
Org previewOrg PreviewExport, Keybindings - live rendered preview, Cmd+Shift+V / Cmd+K V, scroll sync
org-ref citationsNon-Standard FeaturesReferences, Links
PDF exportExportLaTeX Preview
PrioritiesTODO ItemsAgenda
Project agendaAgendaProjectile - C-c a v, Current Project
Project view, GanttProject ManagementAgenda - webview chart, Excel and PDF export
Assignee filterAgendaProject Management - @ in the agenda buffer
Agenda item hoverAgendaTODO Items - entry preview, open, cycle TODO, ignore file
Agenda viewAgenda ViewProject Management - filter menus, custom agendas, right-click task actions
Version control (git)Version ControlKeybindings - C-x v v next action, C-x v p push
Several files in gitVersion Control: filesetsDired - mark files, then C-x v v / = / l / u on all of them
Changed files (vc-dir)Version Control: vc-dirDired - C-x v d lists every changed file; v commits, = diffs, s stages
Commit message bufferVersion ControlHydra Menus - vc-log buffer, C-c C-c to commit
Crucible knowledge baseCrucibleReferences - search, concepts, back-links, derivation history
Directory linksLinksDired - a link to a folder opens it in dired
Gantt tag filterProject ManagementAgenda - Tags checklist in the project view
Gantt drag to moveProject ManagementTask Dependencies - drag bars, dependents follow, undo
ProjectileProjectileNotebook
PropertiesDocument StructureTODO Items
Quarto (.qmd)Markdown CompatibilityScimax structure editing alongside the Quarto extension; C-c C-c runs a chunk with Quarto
Quick captureCaptureJournal, TODO Items
Recent filesNavigation`C-x b` fuzzy-picks recently modified org/md files
SchedulingTimestampsAgenda, TODO Items
Search viewSearch ViewAgenda - live search; tag, property and path filters; C-c d v
Semantic searchDatabase and SearchConfiguration
Session executionSource Code BlocksJupyter Integration
Spelling navigationKeybindingsCommands - Navigate between spelling errors
Speed commandsSpeed CommandsKeybindings, Navigation
TablesTablesExport
TagsDocument StructureAgenda, TODO Items
Tags view (all tags)Database and SearchTODO Items - `scimax.db.searchByTag`, like org-tags-view
Task dependenciesTask DependenciesTODO Items, Agenda, Granular Addressing
Project managementProject ManagementTask Dependencies, TODO Items, Agenda
Gantt chartsProject ManagementTask Dependencies - project view, Excel/PDF export
People / assigneesProject ManagementTODO Items
Contacts / locationsContacts & EntitiesProject Management, Database & Search
Entity selectorContacts & EntitiesDatabase & Search
Contacts (C-c S-c)Contacts & EntitiesProject Management, Export (Email a Heading)
Email client (Gmail)Contacts & EntitiesConfiguration, Export (Email a Heading)
Snippets (ti, <py)Document TemplatesConfiguration - Tab expands prefixes
TemplatesDocument TemplatesCapture, Journal, Configuration
Terminal navigationCommand Line InterfaceOpen CLI-output file paths from the integrated terminal
TODO statesTODO ItemsAgenda, Configuration
TODO custom keywordsTODO ItemsPer-file #+TODO: definitions
Track changesEditmarksDocument Structure
TroubleshootingGetting StartedCommands not found, activation failures, Scimax output channel, scimax.showDiagnostics
Unsupported featuresUnsupported FeaturesEmacs features not in VS Code
Vector searchDatabase and SearchConfiguration
Web links in exportLinksExport - plain and <...> URLs become links

Quick Start by Use Case

I want to...

Take notes and organize information

Manage tasks and projects

Write scientific documents

Keep a journal

Navigate efficiently

✅ 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

Navigation