ThesisAgents

Languages

  • ThesisAgents User Guide
    • For AI agents driving this project
      • Decision tree
      • 6-step MCP workflow
      • Mandatory: URL / DOI verification
      • Don’ts
    • Installation
      • Optional dependency groups
    • CLI
      • Search mode
      • Single-paper mode
      • Available source plugins
      • Localised deck + LLM enrichment
    • Output artefacts
      • PPTX layout
      • Designed-deck visual identity
      • Dark mode
      • zh-tw / zh-cn vocabulary guard
    • MCP server
    • Editing a generated deck
    • Packaging as a standalone executable
    • Architecture
      • Core vs source plugins
      • Two enrichment paths
      • Network safety
    • Development workflow
      • Definition of Done
      • Tests
      • Linting + security
    • Troubleshooting
      • error: refusing non-HTTPS request
      • error: could not classify identifier
      • error: no source plugin available yet for doi identifiers
      • arXiv rate-limit hits
    • License + attribution
  • ThesisAgents 使用手冊
    • 給驅動本專案的 AI agent 看
      • 決策樹
      • MCP 6 步流程
      • 必做:交付前驗證 URL / DOI
      • 禁忌
    • 安裝
      • 可選相依群組
    • CLI
      • 搜尋模式
      • 單篇論文模式
      • 可用的 source plugin
      • 在地化 deck 與 LLM enrichment
    • 輸出檔
      • PPTX 配置
    • MCP server
    • 編輯產生好的投影片
    • 架構
      • 核心 vs 來源外掛
      • 兩條 enrichment 路徑
      • 網路安全
    • 開發流程
      • Definition of Done
      • 測試
      • Lint + 安全
    • 疑難排解
      • error: refusing non-HTTPS request
      • error: could not classify identifier
      • error: no source plugin available yet for doi identifiers
      • arXiv rate-limit hits
    • 授權與致謝
  • ThesisAgents 使用手册
    • 给驱动本项目的 AI agent 看
      • 决策树
      • MCP 6 步流程
      • 必做:交付前验证 URL / DOI
      • 禁忌
    • 安装
      • 可选依赖组
    • CLI
      • 搜索模式
      • 单篇论文模式
      • 可用的 source plugin
      • 本地化 deck 与 LLM enrichment
    • 输出文件
      • PPTX 布局
    • MCP server
    • 编辑生成好的幻灯片
    • 架构
      • 核心 vs 来源插件
      • 两条 enrichment 路径
      • 网络安全
    • 开发流程
      • Definition of Done
      • 测试
      • Lint + 安全
    • 故障排查
      • error: refusing non-HTTPS request
      • error: could not classify identifier
      • error: no source plugin available yet for doi identifiers
      • arXiv rate-limit hits
    • 授权与致谢
  • ThesisAgents ユーザーガイド
    • このプロジェクトを駆動する AI エージェントへ
      • 判断フローチャート
      • MCP 6 ステップ
      • 必須: 納品前 URL / DOI 検証
      • 禁止事項
    • インストール
    • クイックスタート
    • さらに詳しく
  • Guía de usuario de ThesisAgents
    • Para agentes de IA que dirigen este proyecto
      • Árbol de decisión
      • Flujo MCP de 6 pasos
      • Obligatorio: verificación URL / DOI antes de entregar
      • Prohibiciones
    • Instalación
    • Inicio rápido
    • Dónde buscar más
  • Guide utilisateur ThesisAgents
    • Pour les agents IA pilotant ce projet
      • Arbre de décision
      • Workflow MCP en 6 étapes
      • Obligatoire : vérification URL / DOI avant livraison
      • À ne pas faire
    • Installation
    • Démarrage rapide
    • Où chercher plus loin
  • ThesisAgents Benutzerhandbuch
    • Für KI-Agenten, die dieses Projekt steuern
      • Entscheidungsbaum
      • MCP-Workflow in 6 Schritten
      • Pflicht: URL / DOI-Verifikation vor Auslieferung
      • Verbote
    • Installation
    • Schnellstart
    • Weiterführende Quellen
  • ThesisAgents 사용자 가이드
    • 본 프로젝트를 구동하는 AI 에이전트에게
      • 의사결정 트리
      • MCP 6 단계 워크플로
      • 필수: 인도 전 URL / DOI 검증
      • 금지
    • 설치
    • 빠른 시작
    • 더 자세히
  • Guia de uso ThesisAgents
    • Para agentes de IA que dirigem este projeto
      • Árvore de decisão
      • Fluxo MCP de 6 passos
      • Obrigatório: verificação URL / DOI antes da entrega
      • Proibições
    • Instalação
    • Início rápido
    • Onde procurar mais
  • Руководство пользователя ThesisAgents
    • Для ИИ-агентов, управляющих этим проектом
      • Дерево решений
      • MCP в 6 шагов
      • Обязательно: проверка URL / DOI перед сдачей
      • Запреты
    • Установка
    • Быстрый старт
    • Где искать дальше
  • Guida utente ThesisAgents
    • Per agenti IA che pilotano questo progetto
      • Albero decisionale
      • Flusso MCP in 6 passi
      • Obbligatorio: verifica URL / DOI prima della consegna
      • Divieti
    • Installazione
    • Avvio rapido
    • Dove cercare oltre
  • Hướng dẫn người dùng ThesisAgents
    • Dành cho AI agent điều khiển dự án này
      • Cây quyết định
      • Quy trình MCP 6 bước
      • Bắt buộc: xác minh URL / DOI trước khi giao
      • Cấm
    • Cài đặt
    • Bắt đầu nhanh
    • Tìm hiểu thêm
  • ThesisAgents उपयोगकर्ता मार्गदर्शिका
    • इस परियोजना को चलाने वाले AI एजेंट के लिए
      • निर्णय वृक्ष
      • MCP 6 चरण
      • अनिवार्य: डिलीवरी से पहले URL / DOI सत्यापन
      • निषेध
    • स्थापना
    • त्वरित शुरुआत
    • आगे कहाँ देखें
  • Panduan Pengguna ThesisAgents
    • Untuk agen AI yang menjalankan proyek ini
      • Pohon keputusan
      • Alur MCP 6 langkah
      • Wajib: verifikasi URL / DOI sebelum penyerahan
      • Larangan
    • Instalasi
    • Mulai cepat
    • Bacaan lebih lanjut

First steps

  • Installation
    • Install paths at a glance
    • Supported runtimes
    • The full dependency surface
      • Core (pip install thesisagents)
      • [intelligence] extra
      • [mcp] extra
      • [gui] extra
      • [dev] extra
    • Recommended local setup
      • Windows (PowerShell)
      • macOS / Linux (bash / zsh)
    • Linux: extra system packages for the GUI
    • Windows: prebuilt .exe
    • Installing from a pre-release / development branch
    • Verifying an install
    • Uninstall
    • Common install failures
  • Configuration reference
    • Environment variables
      • LLM enrichment
      • Source plugin keys
      • PDF download
      • Logging / debug
      • Qt / GUI
    • QSettings on-disk store
      • Storage locations
      • Keys
    • CLI flags ↔ env var equivalents
    • CLI defaults
    • Per-source rate limits
    • Cache layout
    • Suppressing Scholar captchas with a persistent Chrome profile
    • Settings the project explicitly does NOT have

Driving the project

  • CLI reference
    • Usage
    • Flags
    • Examples
      • Keyword search
      • Single paper
      • Local PDF (single or batch)
      • Localised deck
      • Enriched thesis-style deck (Python pipeline)
    • Exit codes
    • Output structure
    • Source plugin opt-ins
  • MCP server
    • Two enrichment paths
    • Install
    • Configure your MCP client
    • Tools
      • list_sources
      • list_exports
      • search
      • fetch_paper
      • fetch_pdf_text
      • download_pdfs
      • export
      • pptx_inspect
      • pptx_update_slide
      • pptx_delete_slide
      • pptx_reorder_slides
      • pptx_add_slide
    • Path safety
    • Adding a new tool
  • Desktop GUI (PySide6)
    • Install
    • Launch
    • Tabs
      • Search
      • Settings
      • Enrich
      • Deck
    • i18n
    • Responsive layout & HiDPI
    • Threading model
    • Testing the GUI
    • Known limitations
  • PPTX editing & layout
    • Shape naming convention
    • i18n
    • Layout rules the exporter enforces
    • Python API
    • MCP equivalents
    • How slide deletion / reordering works
    • Avoiding overflow when adding rich content

Concepts

  • Architecture
    • One-paragraph summary
    • Layered view
    • Top-level layout
    • Core vs source plugins
    • The pipeline
      • OA PDF resolution
      • Dedup
      • Ranking
      • Enrichment
    • The data model
    • Surfaces
      • CLI (thesisagents.cli)
      • MCP server (thesisagents.mcp)
      • Desktop GUI (thesisagents.gui)
      • Python library
    • Infrastructure
      • HTTPS-only HTTP client
      • Rate limiting
      • Cache
      • i18n
    • Source plugin contract
    • Slide-deck rendering tiers
      • Post-build visual-identity passes
    • Why the design choices
    • Performance notes
  • Data model
    • Query
    • Paper
      • Field reference
      • Derived methods
    • PaperSummary
      • When each tier is populated
    • Nested types (rich tier)
      • ContributionDetail
      • Metric
      • TechniqueRow
      • LiteratureRow
      • MethodSection
      • EvaluationSection
      • RqResult
    • PaperCollection
      • Helpers
    • ExportOptions
    • Identifier parsing
    • Exceptions

Operations

  • Packaging with PyInstaller
    • Install
    • The project-specific gotcha
    • Build the CLI (thesisagents)
    • Build the MCP server (thesisagents-mcp)
    • Build with a .spec file (cleaner for repeated builds)
    • Verify the executable works
    • Optional dependencies ([intelligence], [mcp])
    • Common issues
    • Verifying the same flow in CI
  • Packaging with Nuitka
    • Install
    • The project-specific gotcha
    • Build the CLI (thesisagents)
    • Build the MCP server (thesisagents-mcp)
    • Standalone vs onefile
    • Verify the executable works
    • Optional dependencies ([intelligence], [mcp])
    • Common issues
    • Optional CI job
    • When to pick which
  • Releases
    • The pipeline
    • What gets published per release
    • Version bump strategy
    • Opting out of a release: [skip release]
    • Loop prevention
    • Why --standalone not --onefile
    • Why Windows only
    • Build timings
    • Repo settings the pipeline needs
    • Recovering from a failed release
    • Branch protection (recommended)
    • Watching a release in progress
  • Troubleshooting
    • Install / import errors
      • error: Microsoft Visual C++ 14.0 or greater is required (Windows)
      • ImportError: libEGL.so.1: cannot open shared object file (Linux)
      • ModuleNotFoundError: No module named 'pptx'
      • ModuleNotFoundError: No module named 'PySide6'
      • ModuleNotFoundError: No module named 'thesisagents.gui' from thesisagents gui
    • CLI errors
      • error: refusing non-HTTPS request
      • error: could not classify identifier
      • error: no source plugin available yet for <kind> identifiers
      • error: Unknown source(s): <name>
      • Lightweight deck — no ANTHROPIC_API_KEY in env.
      • error: --enrich requires the [intelligence] extra
      • Warning: 18/20 papers (90%) have no public PDF URL
      • arXiv rate-limit hits
      • Springer plugin raises ConfigError
      • error: --pdf path does not exist
      • error: --pdf file is empty / not a PDF / encrypted
    • MCP errors
      • MCP client doesn’t see any tools
      • download_pdfs returns mostly skipped
      • fetch_pdf_text returns truncated text
    • PPTX / export errors
      • Slide overflowed the footer guard at 7.05"
      • BibTeX key collision
      • Excel “Source” column shows openalex for a Nature paper
    • GUI errors
      • Window opens but text is blurry on a HiDPI display
      • tofu boxes for some characters
      • Settings page values don’t persist between launches
      • Search button does nothing
      • Window resize cuts off form fields
    • CI / Release errors
      • Nuitka build timed out at 45 min
      • Failed to locate package 'arxiv' you asked to include
      • publish-pypi succeeded but publish-release was skipped
    • Test errors
      • RuntimeError: Event loop is closed during pytest
      • pytest_configure INTERNALERROR ... libEGL.so.1
      • A specific GUI test passes locally but fails in CI
    • Asking for help

Contributing

  • Contributing
    • Quick start
    • Definition of Done
    • Commit message rules
    • Test coverage expected
    • Code quality rules
      • Complexity
      • Style
      • Errors
      • Smells
      • Security
      • Typing & docs
      • Suppression comments
    • Branch / PR conventions
    • Local CI reproduction
    • What lives where (for adding code)
    • What NOT to add
    • Reviewing PRs
    • Releases
    • Asking for help
  • Source plugin authoring guide
    • When to write a plugin
    • File layout
    • Step-by-step
      • 1. Pick a name and register it
      • 2. Declare the rate limit + endpoint
      • 3. Write the parser
      • 4. Write the fetcher
      • 5. Wire up the registration
      • 6. Record a fixture and write the test
      • 7. Verify
      • 8. Update docs
    • Common pitfalls
      • Constructing your own httpx.AsyncClient
      • Hardcoding an API key
      • Returning records without source_id
      • Returning HTML rendered into abstract
      • Forgetting to set pdf_url=None when the link isn’t public
      • Using xml.etree on untrusted input
      • Putting source-specific HTML selectors in core
    • When a plugin should be promoted to core
    • Worked examples in-tree
ThesisAgents
  • Search


© Copyright 2025-2026, ThesisAgents Contributors.

Built with Sphinx using a theme provided by Read the Docs.