This page describes some of the tools that I find useful for academic research and development. I will begin with Zotero which is an excellent reference management software and requires the least effort to learn. I will then discuss LaTeX along with the repository of resources that I created to help new users get started using VSCodium to edit LaTeX and Markdown documents. I will conclude with the NeoVim configuration that I maintain which integrates Claude Code, Avante, and Lectic for AI-assisted workflows along with the NixOS system configuration that provides the foundation for this development environment.

Zotero

Even if you have no interest in using LaTeX, Zotero is a must for managing your PDF database as well as bibliographic data. Zotero is an open-source reference management software which does all the work for you of saving bibliographic data, PDFs, notes, or other files. Rather than ending up with a dizzying array of folders on your hard drive (or desktop!) crammed with documents, Zotero lets you easily create and destroy project folders without creating multiple versions of each paper (unless you want that). Additionally, Zotero will download and organize the associated PDF with the reference, all with the click of a single button in your web browser. That way, building your reference database is the passive result of sorting through papers that interest you online. Most importantly, this software allows you to generate bibliographies from any selected project folders or files and is compatible with most word processors. I’ve given detailed instructions below on how to install Zotero.

VSCodium

An easy way to get started without spending too much time in configuration is to use an IDE like VSCodium to write LaTeX (this is the community-maintained fork of Microsoft’s VS Code to preserve your privacy). Using VSCodium is a huge step up from Overleaf and TexShop/TexMaker with not much more work required to get it configured to your needs. In order to streamline the process of configuring this tool, I have provided a number of resources with detailed installation instructions.

Git

Git is a powerful version control software which can help you manage your workflow, track changes as you work, leaving yourself or others notes, and backing up a complete history of your project as it progresses. I have compiled some resources for getting started with Git in VSCodium and NeoVim.

NixOS

NixOS revolutionizes system configuration through its declarative, functional approach to package management and system administration. Unlike traditional Linux distributions where packages are installed imperatively and configurations are set piecemeal, NixOS configures the entire system for reproducible builds that can be versioned, rolled back, and easy to maintain across different machines.

This configuration of NixOS provides a modern terminal experience through WezTerm and Kitty, advanced Neovim setup with Language Server Protocol integration, and comprehensive AI tool integration including Claude Code and MCP-Hub. The flake-based architecture ensures reproducible dependencies while Home Manager handles declarative user environment management separate from system configuration. The setup includes hardened security, GNOME desktop with Wayland support, and specialized tools for academic workflows including LaTeX support and PDF management, all while maintaining the precision and reliability that NixOS provides.

Annotation

Instead of hand typing quotes, or cutting and pasting quotes and notes from PDF files, pdfannots is a convenient utility for exporting all highlighted text and notes from a PDF to markdown, organized by page number. I have included a key-binding in my Vim config for using pdfannots in conjunction with vimtex which looks up and export all highlights and notes from the PDF corresponding to the citation-key that your cursor is hovering over, creating a new markdown file in an annotations folder in your project directory.

Pandoc

Pandoc is a convenient utility for converting between different text formats. I have included key-bindings for using Pandoc in my NeoVim config.

LaTeX

Writing formal symbols is by no means the only reason to use LaTeX, which is a powerful and flexible typesetting tool, allowing you to separate composition from formatting. Additionally, by writing in LaTeX, you can take advantage of the tools included in text editors such as NeoVim and VSCodium (see below). In order to write in LaTeX, you will have to install a text editor. Although it is common to use Overleaf or TexShop/TexMaker, I recommend starting with VSCodium, which will make writing in LaTeX and Markdown a lot easier. Alternatively, see the section on NeoVim below.

NeoVim

While VSCodium offers a significant improvement over basic editors, NeoVim provides a lightweight yet highly customizable text editor that can be configured precisely to your needs. The result is a faster, more efficient editing environment compared to heavier IDEs. This configuration is specifically optimized for academic researchers and technical writers, which combines cutting-edge AI integration with powerful academic tools. This configuration includes AI-powered workflows through Claude Code and Avante (supporting Claude, ChatGPT, and Gemini), complete LaTeX environment with VimTeX, Jupyter notebook support, Lean theorem proving, and seamless Zotero integration for citation management.

The configuration features over 45 carefully curated plugins organized across five categories, with Mason-managed LSP servers for 20+ languages, an advanced completion engine, and comprehensive documentation. The repository includes detailed instructions for platform specific installation as well as customizing the configuration to suit your specific needs.

Claude Code

I have integrated Anthropic’s coding CLI Claude Code is into my NeoVim configuration with comprehensive tooling including intelligent worktree integration and a hierarchical command browser for managing Claude commands. The integration also features smart terminal management with ready-state detection, command queuing, and session persistence that survives NeoVim restarts. This allows for seamless multi-project workflows where you can maintain separate Claude conversations for the same codebase, easily switching between development tasks and contexts.

Lectic

Lectic streamlines research within NeoVim, allowing you to create persistent conversations rather than ephemeral AI chats. Lectic supports both .lec and .lectic.markdown file types, allowing for flexible document composition that combines traditional markdown with AI-enhanced content workflows. The system provides intelligent filetype detection and specialized commands for academic workflows, making it possible to iteratively refine research papers, generate literature reviews, and enhance technical documentation without leaving your editing environment.

Avante

Avante is a context aware, multi-provider AI system that integrates Claude, GPT, and Gemini models, offering inline suggestions that can understand and make edits throughout your codebase. The system provides real-time visual editing capabilities where you can see AI suggestions highlighted directly in your code, with smart diff views that make it easy to accept, reject, or modify changes. MCP-Hub integration has also been included for custom tool communication, allowing for specialized workflows that feel native to your development environment.

Markdown

Instead of taking notes in LaTeX, Word, or some other note-taking application, you can recover some of the elegance of LaTeX without any of the trouble by writing in Markdown. The syntax for Markdown is designed to be as simple as possible while still producing a good-looking document which you can then convert via Pandoc into other formats.