by dovvnloading
A private, modular node based AI workspace for thinking and creation. Seamlessly connect to Ollama, OpenAI, Gemini, Anthropic, and Groq models in one unified, node-based interface for reasoning, visualization, and exploration — all running locally or via API.
# Add to your Claude Code skills
git clone https://github.com/dovvnloading/GraphiteGraphite 2 is here! (formerly Graphite) - https://github.com/dovvnloading/Graphlink
Graphite is an advanced desktop environment for human–AI collaboration. It transforms traditional chat into a visual reasoning workspace where ideas branch, connect, and evolve.
Built with Python and PySide6, Graphite integrates Ollama, OpenAI, Gemini, Anthropic, and Groq models to provide a secure, local-first environment designed for research, creative exploration, and structured reasoning.
Big news at bottom of repo
Traditional chatbot interfaces confine conversations to a single chronological timeline. While convenient, this format makes it difficult to revisit ideas, branch alternative reasoning paths, or organize complex lines of thought.
No comments yet. Be the first to share your thoughts!
Graphite addresses this limitation by transforming conversation into a visual graph structure on an infinite canvas. Each prompt and response becomes a distinct node, visually connected to represent the evolving structure of the dialogue.
This approach allows users to trace how ideas develop, branch conversations from any point, explore alternative reasoning paths, and build an interconnected knowledge workspace while keeping all data fully private on the local machine.
matplotlib charts (Bar, Line, Pie, Histogram, and Sankey) directly on the canvas.Graphite is built on a modular architecture designed for maintainability and scalability. The application is written in Python 3 and leverages the PySide6 framework to provide a cross-platform graphical interface. The architecture emphasizes a clear separation of concerns between UI components, core application logic, and AI services.
The project is organized into several primary modules:
graphite_app.py: The main application entry point. It contains the primary ChatWindow class responsible for assembling the UI, initializing backend services, and managing the main event loop.
graphite_ui.py: The full user interface layer. This module defines all Qt-based components, including dialogs (APISettingsDialog, ChatLibraryDialog) and custom-rendered QGraphicsItem objects that power the interactive canvas, such as ChatNode, ConnectionItem, Frame, Note, and ChartItem.
graphite_core.py: The application's central state management and persistence layer.
ChatSessionManager serializes the canvas scene graph (nodes, connections, frames, etc.) into JSON and reconstructs sessions from stored data.ChatDatabase manages the local SQLite database used to store and retrieve saved chat sessions.graphite_agents.py: Contains the logic for AI-driven tasks. Agents include the base ChatAgent along with specialized agents such as KeyTakeawayAgent, ExplainerAgent, and ChartDataAgent. Each agent performs network operations within a dedicated QThread worker to ensure the interface remains responsive.
api_provider.py: An abstraction layer responsible for routing requests to the appropriate model provider. It supports both local Ollama instances and OpenAI-compatible remote APIs, allowing the application to remain independent of specific providers.
graphite_config.py: Centralized configuration file containing global constants, task identifiers (TASK_CHAT, TASK_CHART), and default model names.
Follow these steps to run Graphite locally.
Pull the default model used by the application:
ollama pull qwen2.5:7b-instruct
Additional models can be configured inside the application using the model selection dialog.
Clone the repository:
git clone https://github.com/dovvnloading/Graphite.git
cd Graphite
Create a virtual environment (recommended):
# Windows
python -m venv venv
.\venv\Scripts\activate
# macOS/Linux
python3 -m venv venv
source venv/bin/activate
Install dependencies:
pip install -r requirements.txt
If no requirements.txt is available:
pip install PySide6 ollama matplotlib qtawesome
python graphite_app.py
Sending Messages: Enter a prompt in the input box and press Enter to create a new node followed by the AI response.
Branching Conversations: Select any existing node to use it as the context for a new branch.
Node Interaction
Ctrl + F — Create a Frame around selected nodesCtrl + N — Create a Note at the cursor positionDelete — Delete selected itemsCtrl + S — Save the current chat sessionCtrl + L — Open the Chat LibraryKnown issue: Graph generation can sometimes be unstable. Larger models generally produce better chart data but require significantly greater system resources. Using coding-oriented models may improve chart accuracy.
Contributions are welcome.
git checkout -b feature/your-feature-name).For major changes, please open an issue first to discuss the proposed modification.
This project is licensed under the MIT License. See the LICENSE file for details.
Updated - 3 / 28 / 2026
Graphite 2 has arrived under a new name: Graphlink.
The name Graphite has become saturated across multiple unrela