The Ultimate Academic Research Workflow Manager
π₯ Download v4.1.1 .exe from Releases
π‘ Just want it to work? v4.1.1 portable standalone .exe is available in Releases β download and run, no Python required!
ResearchFlow is a portable, aesthetically pleasing desktop application designed for academic researchers to manage workflows, literature, and ideas. Built with a focus on modern design and fluid user experience, it features a Notion-like interface, rich interactions, and powerful project management tools.
- Fixed: "New Tag" button now works correctly with proper undo/redo support.
- Fixed: Removed duplicate method definitions that were overriding undo-enabled handlers.
- Improved: Tag removal now properly clears the tag from all nodes via
TagRemoveCommand.
- Fixed: Creating groups via drag-drop now uses gatekeeper pattern for proper undo support.
- Added:
add_group()anddelete_group()gatekeeper methods in ResearchScene. - Improved: Group creation, deletion, movement, and renaming are all fully undoable.
- Expanded Workspace: Canvas extends to Β±25,000 units in all directions.
- Seamless Panning: Navigate freely without hitting boundaries.
- Command Batching: Consecutive text edits within 3 seconds merge into one undo action.
- Cursor Preservation: Fixed cursor jumping during undo/redo.
π Previous Versions
- Infinite Canvas: Workspace extends to Β±25,000 units.
- Smart Description Undo: Command batching for text edits.
- Cursor Preservation: Fixed cursor jumping in description field.
- Complete Undo/Redo System: Stable version covering canvas, snippets, metadata, tags, groups, and node states.
- Flag & Lock Undo: Toggling flag or lock state is fully undoable.
- Locked Group Protection: Nodes cannot be added to locked groups.
- Position Preservation: Fixed critical bug with locked nodes resetting to origin.
- Comprehensive Undo/Redo: Every canvas action is undoable with 100-step history.
- Waypoint Nodes: Flexible bend points for connections with adaptive visuals.
- Node Flagging & Locking: Mark important nodes and prevent accidental movement.
- Global Color Sync: Fixed palette and tag color synchronization.
- Node Grouping: Visual containers with auto-containment (Ctrl+Drag).
- TODO Enhancements: Context menu for editing and reordering tasks.
- Tag Customization: Custom colors and reordering.
- Module Palette: Global color management for module types.
- Portable .exe: Standalone build with local data storage.
- Pipeline & Reference: Distinguish between your research pipeline and supporting literature.
- Smart Waypoints: Use waypoints to manage complex flowchart layouts without overlapping lines.
- Snap-to-Grid: Hold
Shiftwhile moving nodes for precise 20px grid alignment. - Node Status: Toggle "Locked" or "Flagged" states for better organization.
- Auto-Save: Project data is saved automatically on every interaction.
- Undo History: Full persistence of your operation history across sessions.
- Markdown Support: Drag
.mdfiles to import papers as reference nodes. - PDF to Markdown: We recommend using MinerU to convert PDF papers to Markdown format for import.
- LaTeX Rendering: Native rendering of inline
$math$and block$$math$$formulas with automatic numbering. - Multimedia Snippets: Paste images (
Ctrl+V) or drag them directly onto nodes. - Snippet Management: Reorder snippets with
β/βkeys, delete withDelete. - Text Snippets: Add text notes with support for Chinese characters (auto-fallback to Microsoft YaHei).
- Tag System: Create, rename, and drag tags onto nodes. Click tags on nodes to remove them.
- TODOs: Integrated task management within your project view.
- Python 3.10 or higher
- Windows 10/11 (primary platform)
# Clone the repository
git clone https://github.com/thefamer/ResearchFlow.git
cd ResearchFlow
# Install dependencies
pip install -r requirements.txtOr install dependencies manually:
pip install PyQt6 latex2mathmlpython main.pyCreate a standalone portable executable that runs without Python installed:
pip install pyinstaller
# Option 1: Single folder (recommended, faster startup)
pyinstaller --noconsole --onedir --icon=icon.ico --add-data "icon.ico;." --collect-all latex2mathml --name="ResearchFlow" main.py
# Option 2: Single file (slower startup, but just one file)
pyinstaller --noconsole --onefile --icon=icon.ico --add-data "icon.ico;." --collect-all latex2mathml --name="ResearchFlow" main.pyThe generated files will be in the dist/ folder.
β True Portable: The
projects/data folder is automatically created next to the.exefile, not in any temp or system folder. Copy the folder and yourprojects/anywhere!
| Action | Shortcut / Gesture |
|---|---|
| Delete | Delete key (Nodes, Edges, Snippets) |
| Snap Move | Hold Shift + Drag Node |
| Reorder Snippets | β / β keys |
| Paste Image | Ctrl+V (with node selected) |
| Pan Canvas | Middle Mouse Button Drag |
| Zoom | Mouse Wheel (Smooth animated) |
| Save Project | Ctrl+S |
| New Project | Ctrl+N |
| Open Project | Ctrl+O |
| Undo | Ctrl+Z |
| Redo | Ctrl+Y / Ctrl+Shift+Z |
| Delete | Delete key |
| Snap Move | Hold Shift + Drag |
| Group Bind | Hold Ctrl + Drag into Group |
| Multi-Select | Ctrl + Click |
| Zoom | Mouse Wheel |
| Pan | Middle Mouse Button Drag |
ResearchFlow/
βββ main.py # Application Entry & MainWindow
βββ models.py # Data Models (Dataclasses)
βββ undo.py # Undo/Redo Engine & Commands (V3.9.0)
βββ graphics_items.py # Custom QGraphicsItems (Nodes, Groups, Waypoints)
βββ widgets.py # Custom UI (Sidebar, Color Palette, Tags)
βββ utils.py # Theme & Project Logic
βββ projects/ # Local Data Storage
βββ <project_name>/
βββ project_data.json
βββ assets/
βββ papers/
βββ images/
| Component | Technology |
|---|---|
| Language | Python 3.10+ |
| UI Framework | PyQt6 |
| Math Rendering | latex2mathml |
| Data Storage | JSON (portable, no database) |
| Graphics | QGraphicsView Framework |
Contributions are welcome! Here's how you can help:
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
- Follow PEP 8 style guidelines
- Add type hints to new functions
- Update documentation for new features
- Test on Windows before submitting
- macOS / Linux support
- Export to PNG / PDF
- Cloud sync integration
- Plugin system
- Dark theme
This project is licensed under the MIT License - see the LICENSE file for details.
- Inspired by Notion and Obsidian
- Built with PyQt6
- Icons and design inspired by Apple Human Interface Guidelines
Made with β€οΈ for researchers everywhere