Skip to content

Repository files navigation

Shoulders

"If I have seen further, it is by standing on the shoulders of giants."
– Isaac Newton, 1675 (echoing Bernard of Chartres, c. 1120)

The AI Workspace for Researchers. Writing, reference management, and coding, combined with truly capable AI assistance.

Screenshot

Shoulders screenshots

tl;dr:

Shoulders is a local-first document editor for researchers. It has multi-provider AI assistance (Anthropic, OpenAI, Google) and version control; handles Markdown (compiled to PDF with Typst), LaTeX (compiled with Tectonic), DOCX (via SuperDoc), as well as code (e.g. R, Python, Jupyter); and has a built-in reference management system.

Features

  • Multi-format editing — Edit Markdown, LaTeX, DOCX, Jupyter notebooks, CSV, and code files side by side in a resizable, splittable pane interface with tabbed browsing.
  • Integrated AI assistance — Inline ghost text completions (triggered with ++), context-aware chat sidebar, image generation, and task threads powered by Anthropic, OpenAI, and Google models; switch providers mid-conversation.
  • Task agents & inline edit review — Select any text to start a threaded task with AI and apply safe, reviewable AI edit suggestions via inline diff overlays.
  • Reference management — Built-in CSL-JSON reference library with DOI/BibTeX/PDF import, smart autocomplete for Pandoc citations, and drag-and-drop PDF metadata extraction.
  • Git version control — Automatic and manual commits, full file history browser, inline comparison and one-click restore, designed for researchers with less git experience.
  • Embedded terminal & code execution — Persistent xterm.js terminals (multi-tab), built-in R/Python/Julia REPLs, Jupyter kernel—run code and manage workflows without leaving the app.
  • PDF and notebook support — Native PDF viewer with search, selection, and annotation; open, edit, and execute Jupyter .ipynb notebooks directly in the workspace.
  • Customizable UI & privacy first — Multiple themes, fully local by default, works offline, all files are plain-text and stored on your own machine (no vendor lock-in).

Architecture

Tauri v2 Shell
  Rust Backend (src-tauri/)
    fs_commands.rs  — File I/O, git, file watching, API proxy, content search
    pty.rs          — Terminal sessions via portable-pty
    chat.rs         — AI streaming proxy (SSE via reqwest + tokio)
    lib.rs          — App setup, state management, command registration

  Vue 3 Frontend (src/)
    stores/         — Pinia: workspace, files, editor, chat, reviews, tasks
    services/       — AI providers, chat orchestration, git, references, system prompt
    editor/         — CodeMirror 6: setup, theme, ghost suggestions, diff overlay, tasks, wiki links
    components/     — Vue components: layout, sidebar, editor, right panel, modals

Desktop shell is Tauri v2 (Rust + webview). All file operations and API calls go through custom Rust commands — no browser filesystem access, no CORS issues. The frontend is Vue 3 + Pinia + Tailwind CSS 3.

Prerequisites

  • Bun — install from bun.sh
  • Node.js (v25+) — required by Tauri's build toolchain
  • Rust — install via rustup if needed:
    curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
  • API key (optional) — AI features require an Anthropic, OpenAI, or Google API key. Configure in Settings after launch.

Build and Run

bun install
bunx tauri dev          # Development (hot-reload)
bunx tauri build        # Production build

If cargo isn't found, add the Rust toolchain to your PATH:

export PATH="$HOME/.cargo/bin:$PATH"

Web Backend

The web/ directory contains an optional Nuxt 3 backend that powers the Shoulders website and backend server at shoulde.rs. It is not required to build or run the desktop app.

Peer Review (discontinued)

New peer review submissions are disabled. /review shows a closure notice and POST /api/review/upload returns 410 Gone; existing review links remain available until they expire. Serving PDF exports for existing reviews requires Typst:

# Ubuntu
sudo snap install typst

# macOS
brew install typst

See docs/web-peer-review.md for full documentation.

Application Guide

See shoulde.rs/docs for a comprehensive user manual.

Code Documentation

See docs/_MAP.md for the central registry of every system, documentation file, and source file in this project.

Feedback

If you encounter an issue or would like to suggest a new feature, please open an issue at github.com/shoulders-ai/shoulders/issues or contact us at contact@shoulde.rs.

About

The AI Workspace for Researchers

Resources

Stars

37 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages