Repository files navigation

GangDan (纲担)

LLM-powered knowledge management and teaching assistant with offline support.

GangDan (纲担) — Principled and Accountable.

Chat Panel

Overview

GangDan is a local-first, offline programming assistant powered by Ollama and ChromaDB. It combines RAG-based knowledge management with teaching assistance tools, all running entirely on your machine — no cloud APIs required.

System Architecture

Features

Knowledge Management

  • Unified Literature Search — Search arXiv, bioRxiv, medRxiv, Semantic Scholar, CrossRef, OpenAlex, DBLP, PubMed, and GitHub in one interface. AI-powered query refinement with automatic translation and synonym expansion.
  • Batch Operations — Multi-select, select-all, batch convert (PDF/HTML/TeX to Markdown with image and formula preservation), batch add to knowledge base. Sort by relevance, date, or title.
  • Smart Renaming — Downloaded papers automatically renamed to citation format: Author et al. (Year) - Title.pdf
  • LLM-Generated Wiki — Build structured wiki pages from knowledge base content with cross-KB concept linking. Like Wikipedia for your documents.
  • Image Gallery — Browse and search images stored in knowledge bases with context and source attribution.
  • Document Manager — One-click download and indexing of 30+ library docs (Python, Rust, Go, JS, CUDA, Docker, etc.). Upload custom docs, batch operations, GitHub repo search, web search to KB.
  • Custom Knowledge Base Upload — Upload your own Markdown (.md) and plain text (.txt) documents to create named knowledge bases with automatic indexing.

Teaching Assistant

  • Question Generator — MCQ, short answer, fill-in-the-blank, true/false from KB content.
  • Guided Learning — Auto-extract knowledge points, generate interactive lessons with Q&A.
  • Deep Research — Multi-phase research pipeline: topic decomposition → RAG research → comprehensive reports.
  • Lecture Maker — Generate structured lecture content from KB materials.
  • Exam Generator — Create complete exam papers with answer keys from KB content.
  • Literature Review & Paper Writer — Generate academic reviews and papers from KB content.

Core Features

  • RAG Chat — Streaming chat with knowledge base retrieval and web search. Strict KB mode ensures grounded answers.
  • Cross-Lingual Search — Automatically detects query and document languages, enabling cross-lingual RAG (e.g., query English documents in Chinese).
  • Citation References — Each response automatically includes source document references for verification.
  • AI Command Assistant — Natural language → shell commands, draggable to terminal.
  • Built-in Terminal — Run commands with stdout/stderr display directly in the browser.
  • Conversation Save/Load — JSON export/import for session continuity.
  • 10-Language UI — Chinese, English, Japanese, French, Russian, German, Italian, Spanish, Portuguese, Korean.
  • Dark/Light Theme — Full theme support with CSS variables.
  • Offline by Design — Runs entirely on your machine. No cloud APIs required.

Feature Map

Multi-Provider LLM Support

GangDan supports a separated mode: local Ollama for chat/embedding/reranking, with optional external LLM providers for deep research and paper writing.

Provider System

ProviderAPI TypeUse Case
Ollama (local)ollamaChat, Embedding, Reranking
DashScopeOpenAI-compatibleDeep Research, Paper Writing
MiniMaxOpenAI-compatibleDeep Research
Bailian CodingAnthropic-compatibleDeep Research
OpenAI / DeepSeek / MoonshotOpenAI-compatibleDeep Research
CustomOpenAI-compatibleAny compatible API

CLI

  • Streaming chat (gangdan chat "question"), interactive REPL (gangdan cli)
  • KB operations, doc management, config, conversation persistence
  • AI command generation, shell execution with safety checks
  • Rich terminal output with formatted tables and syntax highlighting

Screenshots

ChatTerminal
ChatTerminal
DocumentationSettings
DocsSettings
Upload DocumentsKB Scope Selection
UploadKnowledge
Strict KB Chat with Citations
Strict Chat

The above screenshot demonstrates Strict KB Mode in action: after selecting a specific knowledge base, the system retrieves content only from that KB and automatically appends a reference list at the end of each response, citing the source documents.

Load ConversationConversation Loaded
LoadLoaded

Save your chat as a JSON file and load it anytime to continue the conversation.

RAG Pipeline

RAG Pipeline

The complete pipeline from document ingestion to retrieval:

  1. Document Ingestion — Download from GitHub repositories or upload custom files (.rst, .py, .html, .cpp, .md)
  2. Format Conversion — Automatic conversion to unified Markdown format
  3. Sliding Window Chunking — Fixed-size segmentation with configurable overlap (default: 800 chars, 150 overlap)
  4. Vector Embedding — nomic-embed-text model via Ollama API (768-dim vectors, 500-char truncation)
  5. Vector Storage — ChromaDB with HNSW indexing and cosine similarity
  6. Query Retrieval — Top-K search with distance filtering (threshold 1.5), deduplication, and context construction

Chunking Strategy

Chunking Strategy

The sliding window approach ensures contextual continuity across chunk boundaries. Key parameters:

ParameterDefaultRangeDescription
CHUNK_SIZE800 chars100-2000Characters per chunk
CHUNK_OVERLAP150 charsN/AOverlap between consecutive chunks
MIN_CHUNK50 charsN/AMinimum chunk length threshold

Requirements

  • Python 3.10+
  • Ollama running locally (default http://localhost:11434)
  • Chat model (e.g. ollama pull qwen3)
  • Embedding model (e.g. ollama pull nomic-embed-text)

Installation

Method 1: Install from PyPI (Recommended)

pip install gangdan
gangdan # Web GUI
gangdan cli # Interactive CLI
gangdan --port 8080 # Custom port

Method 2: Install from Source

git clone https://github.com/cycleuser/GangDan.git
cd GangDan
pip install -e .
gangdan

Open http://127.0.0.1:5000 in your browser.

Ollama Setup

ollama serve
ollama pull qwen3
ollama pull nomic-embed-text

Project Structure

GangDan/
├── pyproject.toml
├── README.md / README_CN.md
├── gangdan/
│ ├── __init__.py / __main__.py
│ ├── cli.py / cli_app.py # CLI entry + REPL
│ ├── app.py # Flask backend
│ ├── learning_routes.py # Learning module blueprint
│ ├── preprint_routes.py # Preprint search + convert
│ ├── research_routes.py # Paper search
│ ├── kb_routes.py # Custom KB management
│ ├── export_routes.py # Export API
│ ├── core/ # Shared modules
│ │ ├── config.py # Config, i18n, translations
│ │ ├── ollama_client.py # Ollama API
│ │ ├── chroma_manager.py # ChromaDB
│ │ ├── vector_db.py # Multi-backend vector DB
│ │ ├── kb_manager.py # Custom KB CRUD
│ │ ├── conversation.py # Chat history
│ │ ├── doc_manager.py # Doc download/index
│ │ ├── wiki_builder.py # LLM wiki generation
│ │ ├── preprint_fetcher.py # Preprint search
│ │ ├── preprint_converter.py # HTML/TeX/PDF → MD
│ │ ├── pdf_converter.py # PDF → MD (marker/mineru/docling)
│ │ ├── export_manager.py # Batch convert/export
│ │ ├── web_searcher.py # Web search
│ │ └── ...
│ ├── templates/index.html # Main SPA template
│ └── static/{css,js}/ # Frontend assets
├── tests/ # Test suite
├── images/ # Screenshots
└── diagrams/ # Architecture diagrams (SVG)

Configuration

All settings through the Settings tab: Ollama URL, chat/embedding/reranker models, proxy, context length, output language, vector DB type, LLM provider selection, and API keys.

Testing

pip install pytest pytest-cov
pytest tests/ -v
pytest tests/ --cov=gangdan

Academic Paper

For a detailed empirical study of the RAG pipeline and chunking strategies, see Article.md / Article_CN.md.

License

GPL-3.0-or-later. See LICENSE for details.

About

A tool to use local LLM to help to Code.

Resources

Stars

8 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

GangDan (纲担)

LLM-powered knowledge management and teaching assistant with offline support.

GangDan (纲担) — Principled and Accountable.

Chat Panel

Overview

GangDan is a local-first, offline programming assistant powered by Ollama and ChromaDB. It combines RAG-based knowledge management with teaching assistance tools, all running entirely on your machine — no cloud APIs required.

System Architecture

Features

Knowledge Management

  • Unified Literature Search — Search arXiv, bioRxiv, medRxiv, Semantic Scholar, CrossRef, OpenAlex, DBLP, PubMed, and GitHub in one interface. AI-powered query refinement with automatic translation and synonym expansion.
  • Batch Operations — Multi-select, select-all, batch convert (PDF/HTML/TeX to Markdown with image and formula preservation), batch add to knowledge base. Sort by relevance, date, or title.
  • Smart Renaming — Downloaded papers automatically renamed to citation format: Author et al. (Year) - Title.pdf
  • LLM-Generated Wiki — Build structured wiki pages from knowledge base content with cross-KB concept linking. Like Wikipedia for your documents.
  • Image Gallery — Browse and search images stored in knowledge bases with context and source attribution.
  • Document Manager — One-click download and indexing of 30+ library docs (Python, Rust, Go, JS, CUDA, Docker, etc.). Upload custom docs, batch operations, GitHub repo search, web search to KB.
  • Custom Knowledge Base Upload — Upload your own Markdown (.md) and plain text (.txt) documents to create named knowledge bases with automatic indexing.

Teaching Assistant

  • Question Generator — MCQ, short answer, fill-in-the-blank, true/false from KB content.
  • Guided Learning — Auto-extract knowledge points, generate interactive lessons with Q&A.
  • Deep Research — Multi-phase research pipeline: topic decomposition → RAG research → comprehensive reports.
  • Lecture Maker — Generate structured lecture content from KB materials.
  • Exam Generator — Create complete exam papers with answer keys from KB content.
  • Literature Review & Paper Writer — Generate academic reviews and papers from KB content.

Core Features

  • RAG Chat — Streaming chat with knowledge base retrieval and web search. Strict KB mode ensures grounded answers.
  • Cross-Lingual Search — Automatically detects query and document languages, enabling cross-lingual RAG (e.g., query English documents in Chinese).
  • Citation References — Each response automatically includes source document references for verification.
  • AI Command Assistant — Natural language → shell commands, draggable to terminal.
  • Built-in Terminal — Run commands with stdout/stderr display directly in the browser.
  • Conversation Save/Load — JSON export/import for session continuity.
  • 10-Language UI — Chinese, English, Japanese, French, Russian, German, Italian, Spanish, Portuguese, Korean.
  • Dark/Light Theme — Full theme support with CSS variables.
  • Offline by Design — Runs entirely on your machine. No cloud APIs required.

Feature Map

Multi-Provider LLM Support

GangDan supports a separated mode: local Ollama for chat/embedding/reranking, with optional external LLM providers for deep research and paper writing.

Provider System

ProviderAPI TypeUse Case
Ollama (local)ollamaChat, Embedding, Reranking
DashScopeOpenAI-compatibleDeep Research, Paper Writing
MiniMaxOpenAI-compatibleDeep Research
Bailian CodingAnthropic-compatibleDeep Research
OpenAI / DeepSeek / MoonshotOpenAI-compatibleDeep Research
CustomOpenAI-compatibleAny compatible API

CLI

  • Streaming chat (gangdan chat "question"), interactive REPL (gangdan cli)
  • KB operations, doc management, config, conversation persistence
  • AI command generation, shell execution with safety checks
  • Rich terminal output with formatted tables and syntax highlighting

Screenshots

ChatTerminal
ChatTerminal
DocumentationSettings
DocsSettings
Upload DocumentsKB Scope Selection
UploadKnowledge
Strict KB Chat with Citations
Strict Chat

The above screenshot demonstrates Strict KB Mode in action: after selecting a specific knowledge base, the system retrieves content only from that KB and automatically appends a reference list at the end of each response, citing the source documents.

Load ConversationConversation Loaded
LoadLoaded

Save your chat as a JSON file and load it anytime to continue the conversation.

RAG Pipeline

RAG Pipeline

The complete pipeline from document ingestion to retrieval:

  1. Document Ingestion — Download from GitHub repositories or upload custom files (.rst, .py, .html, .cpp, .md)
  2. Format Conversion — Automatic conversion to unified Markdown format
  3. Sliding Window Chunking — Fixed-size segmentation with configurable overlap (default: 800 chars, 150 overlap)
  4. Vector Embedding — nomic-embed-text model via Ollama API (768-dim vectors, 500-char truncation)
  5. Vector Storage — ChromaDB with HNSW indexing and cosine similarity
  6. Query Retrieval — Top-K search with distance filtering (threshold 1.5), deduplication, and context construction

Chunking Strategy

Chunking Strategy

The sliding window approach ensures contextual continuity across chunk boundaries. Key parameters:

ParameterDefaultRangeDescription
CHUNK_SIZE800 chars100-2000Characters per chunk
CHUNK_OVERLAP150 charsN/AOverlap between consecutive chunks
MIN_CHUNK50 charsN/AMinimum chunk length threshold

Requirements

  • Python 3.10+
  • Ollama running locally (default http://localhost:11434)
  • Chat model (e.g. ollama pull qwen3)
  • Embedding model (e.g. ollama pull nomic-embed-text)

Installation

Method 1: Install from PyPI (Recommended)

pip install gangdan
gangdan # Web GUI
gangdan cli # Interactive CLI
gangdan --port 8080 # Custom port

Method 2: Install from Source

git clone https://github.com/cycleuser/GangDan.git
cd GangDan
pip install -e .
gangdan

Open http://127.0.0.1:5000 in your browser.

Ollama Setup

ollama serve
ollama pull qwen3
ollama pull nomic-embed-text

Project Structure

GangDan/
├── pyproject.toml
├── README.md / README_CN.md
├── gangdan/
│ ├── __init__.py / __main__.py
│ ├── cli.py / cli_app.py # CLI entry + REPL
│ ├── app.py # Flask backend
│ ├── learning_routes.py # Learning module blueprint
│ ├── preprint_routes.py # Preprint search + convert
│ ├── research_routes.py # Paper search
│ ├── kb_routes.py # Custom KB management
│ ├── export_routes.py # Export API
│ ├── core/ # Shared modules
│ │ ├── config.py # Config, i18n, translations
│ │ ├── ollama_client.py # Ollama API
│ │ ├── chroma_manager.py # ChromaDB
│ │ ├── vector_db.py # Multi-backend vector DB
│ │ ├── kb_manager.py # Custom KB CRUD
│ │ ├── conversation.py # Chat history
│ │ ├── doc_manager.py # Doc download/index
│ │ ├── wiki_builder.py # LLM wiki generation
│ │ ├── preprint_fetcher.py # Preprint search
│ │ ├── preprint_converter.py # HTML/TeX/PDF → MD
│ │ ├── pdf_converter.py # PDF → MD (marker/mineru/docling)
│ │ ├── export_manager.py # Batch convert/export
│ │ ├── web_searcher.py # Web search
│ │ └── ...
│ ├── templates/index.html # Main SPA template
│ └── static/{css,js}/ # Frontend assets
├── tests/ # Test suite
├── images/ # Screenshots
└── diagrams/ # Architecture diagrams (SVG)

Configuration

All settings through the Settings tab: Ollama URL, chat/embedding/reranker models, proxy, context length, output language, vector DB type, LLM provider selection, and API keys.

Testing

pip install pytest pytest-cov
pytest tests/ -v
pytest tests/ --cov=gangdan

Academic Paper

For a detailed empirical study of the RAG pipeline and chunking strategies, see Article.md / Article_CN.md.

License

GPL-3.0-or-later. See LICENSE for details.

About

A tool to use local LLM to help to Code.

Resources

Stars

8 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

GangDan (纲担)

LLM-powered knowledge management and teaching assistant with offline support.

GangDan (纲担) — Principled and Accountable.

Chat Panel

Overview

GangDan is a local-first, offline programming assistant powered by Ollama and ChromaDB. It combines RAG-based knowledge management with teaching assistance tools, all running entirely on your machine — no cloud APIs required.

System Architecture

Features

Knowledge Management

  • Unified Literature Search — Search arXiv, bioRxiv, medRxiv, Semantic Scholar, CrossRef, OpenAlex, DBLP, PubMed, and GitHub in one interface. AI-powered query refinement with automatic translation and synonym expansion.
  • Batch Operations — Multi-select, select-all, batch convert (PDF/HTML/TeX to Markdown with image and formula preservation), batch add to knowledge base. Sort by relevance, date, or title.
  • Smart Renaming — Downloaded papers automatically renamed to citation format: Author et al. (Year) - Title.pdf
  • LLM-Generated Wiki — Build structured wiki pages from knowledge base content with cross-KB concept linking. Like Wikipedia for your documents.
  • Image Gallery — Browse and search images stored in knowledge bases with context and source attribution.
  • Document Manager — One-click download and indexing of 30+ library docs (Python, Rust, Go, JS, CUDA, Docker, etc.). Upload custom docs, batch operations, GitHub repo search, web search to KB.
  • Custom Knowledge Base Upload — Upload your own Markdown (.md) and plain text (.txt) documents to create named knowledge bases with automatic indexing.

Teaching Assistant

  • Question Generator — MCQ, short answer, fill-in-the-blank, true/false from KB content.
  • Guided Learning — Auto-extract knowledge points, generate interactive lessons with Q&A.
  • Deep Research — Multi-phase research pipeline: topic decomposition → RAG research → comprehensive reports.
  • Lecture Maker — Generate structured lecture content from KB materials.
  • Exam Generator — Create complete exam papers with answer keys from KB content.
  • Literature Review & Paper Writer — Generate academic reviews and papers from KB content.

Core Features

  • RAG Chat — Streaming chat with knowledge base retrieval and web search. Strict KB mode ensures grounded answers.
  • Cross-Lingual Search — Automatically detects query and document languages, enabling cross-lingual RAG (e.g., query English documents in Chinese).
  • Citation References — Each response automatically includes source document references for verification.
  • AI Command Assistant — Natural language → shell commands, draggable to terminal.
  • Built-in Terminal — Run commands with stdout/stderr display directly in the browser.
  • Conversation Save/Load — JSON export/import for session continuity.
  • 10-Language UI — Chinese, English, Japanese, French, Russian, German, Italian, Spanish, Portuguese, Korean.
  • Dark/Light Theme — Full theme support with CSS variables.
  • Offline by Design — Runs entirely on your machine. No cloud APIs required.

Feature Map

Multi-Provider LLM Support

GangDan supports a separated mode: local Ollama for chat/embedding/reranking, with optional external LLM providers for deep research and paper writing.

Provider System

ProviderAPI TypeUse Case
Ollama (local)ollamaChat, Embedding, Reranking
DashScopeOpenAI-compatibleDeep Research, Paper Writing
MiniMaxOpenAI-compatibleDeep Research
Bailian CodingAnthropic-compatibleDeep Research
OpenAI / DeepSeek / MoonshotOpenAI-compatibleDeep Research
CustomOpenAI-compatibleAny compatible API

CLI

  • Streaming chat (gangdan chat "question"), interactive REPL (gangdan cli)
  • KB operations, doc management, config, conversation persistence
  • AI command generation, shell execution with safety checks
  • Rich terminal output with formatted tables and syntax highlighting

Screenshots

ChatTerminal
ChatTerminal
DocumentationSettings
DocsSettings
Upload DocumentsKB Scope Selection
UploadKnowledge
Strict KB Chat with Citations
Strict Chat

The above screenshot demonstrates Strict KB Mode in action: after selecting a specific knowledge base, the system retrieves content only from that KB and automatically appends a reference list at the end of each response, citing the source documents.

Load ConversationConversation Loaded
LoadLoaded

Save your chat as a JSON file and load it anytime to continue the conversation.

RAG Pipeline

RAG Pipeline

The complete pipeline from document ingestion to retrieval:

  1. Document Ingestion — Download from GitHub repositories or upload custom files (.rst, .py, .html, .cpp, .md)
  2. Format Conversion — Automatic conversion to unified Markdown format
  3. Sliding Window Chunking — Fixed-size segmentation with configurable overlap (default: 800 chars, 150 overlap)
  4. Vector Embedding — nomic-embed-text model via Ollama API (768-dim vectors, 500-char truncation)
  5. Vector Storage — ChromaDB with HNSW indexing and cosine similarity
  6. Query Retrieval — Top-K search with distance filtering (threshold 1.5), deduplication, and context construction

Chunking Strategy

Chunking Strategy

The sliding window approach ensures contextual continuity across chunk boundaries. Key parameters:

ParameterDefaultRangeDescription
CHUNK_SIZE800 chars100-2000Characters per chunk
CHUNK_OVERLAP150 charsN/AOverlap between consecutive chunks
MIN_CHUNK50 charsN/AMinimum chunk length threshold

Requirements

  • Python 3.10+
  • Ollama running locally (default http://localhost:11434)
  • Chat model (e.g. ollama pull qwen3)
  • Embedding model (e.g. ollama pull nomic-embed-text)

Installation

Method 1: Install from PyPI (Recommended)

pip install gangdan
gangdan # Web GUI
gangdan cli # Interactive CLI
gangdan --port 8080 # Custom port

Method 2: Install from Source

git clone https://github.com/cycleuser/GangDan.git
cd GangDan
pip install -e .
gangdan

Open http://127.0.0.1:5000 in your browser.

Ollama Setup

ollama serve
ollama pull qwen3
ollama pull nomic-embed-text

Project Structure

GangDan/
├── pyproject.toml
├── README.md / README_CN.md
├── gangdan/
│ ├── __init__.py / __main__.py
│ ├── cli.py / cli_app.py # CLI entry + REPL
│ ├── app.py # Flask backend
│ ├── learning_routes.py # Learning module blueprint
│ ├── preprint_routes.py # Preprint search + convert
│ ├── research_routes.py # Paper search
│ ├── kb_routes.py # Custom KB management
│ ├── export_routes.py # Export API
│ ├── core/ # Shared modules
│ │ ├── config.py # Config, i18n, translations
│ │ ├── ollama_client.py # Ollama API
│ │ ├── chroma_manager.py # ChromaDB
│ │ ├── vector_db.py # Multi-backend vector DB
│ │ ├── kb_manager.py # Custom KB CRUD
│ │ ├── conversation.py # Chat history
│ │ ├── doc_manager.py # Doc download/index
│ │ ├── wiki_builder.py # LLM wiki generation
│ │ ├── preprint_fetcher.py # Preprint search
│ │ ├── preprint_converter.py # HTML/TeX/PDF → MD
│ │ ├── pdf_converter.py # PDF → MD (marker/mineru/docling)
│ │ ├── export_manager.py # Batch convert/export
│ │ ├── web_searcher.py # Web search
│ │ └── ...
│ ├── templates/index.html # Main SPA template
│ └── static/{css,js}/ # Frontend assets
├── tests/ # Test suite
├── images/ # Screenshots
└── diagrams/ # Architecture diagrams (SVG)

Configuration

All settings through the Settings tab: Ollama URL, chat/embedding/reranker models, proxy, context length, output language, vector DB type, LLM provider selection, and API keys.

Testing

pip install pytest pytest-cov
pytest tests/ -v
pytest tests/ --cov=gangdan

Academic Paper

For a detailed empirical study of the RAG pipeline and chunking strategies, see Article.md / Article_CN.md.

License

GPL-3.0-or-later. See LICENSE for details.

About

A tool to use local LLM to help to Code.

Resources

Stars

8 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

GangDan (纲担)

LLM-powered knowledge management and teaching assistant with offline support.

GangDan (纲担) — Principled and Accountable.

Chat Panel

Overview

GangDan is a local-first, offline programming assistant powered by Ollama and ChromaDB. It combines RAG-based knowledge management with teaching assistance tools, all running entirely on your machine — no cloud APIs required.

System Architecture

Features

Knowledge Management

  • Unified Literature Search — Search arXiv, bioRxiv, medRxiv, Semantic Scholar, CrossRef, OpenAlex, DBLP, PubMed, and GitHub in one interface. AI-powered query refinement with automatic translation and synonym expansion.
  • Batch Operations — Multi-select, select-all, batch convert (PDF/HTML/TeX to Markdown with image and formula preservation), batch add to knowledge base. Sort by relevance, date, or title.
  • Smart Renaming — Downloaded papers automatically renamed to citation format: Author et al. (Year) - Title.pdf
  • LLM-Generated Wiki — Build structured wiki pages from knowledge base content with cross-KB concept linking. Like Wikipedia for your documents.
  • Image Gallery — Browse and search images stored in knowledge bases with context and source attribution.
  • Document Manager — One-click download and indexing of 30+ library docs (Python, Rust, Go, JS, CUDA, Docker, etc.). Upload custom docs, batch operations, GitHub repo search, web search to KB.
  • Custom Knowledge Base Upload — Upload your own Markdown (.md) and plain text (.txt) documents to create named knowledge bases with automatic indexing.

Teaching Assistant

  • Question Generator — MCQ, short answer, fill-in-the-blank, true/false from KB content.
  • Guided Learning — Auto-extract knowledge points, generate interactive lessons with Q&A.
  • Deep Research — Multi-phase research pipeline: topic decomposition → RAG research → comprehensive reports.
  • Lecture Maker — Generate structured lecture content from KB materials.
  • Exam Generator — Create complete exam papers with answer keys from KB content.
  • Literature Review & Paper Writer — Generate academic reviews and papers from KB content.

Core Features

  • RAG Chat — Streaming chat with knowledge base retrieval and web search. Strict KB mode ensures grounded answers.
  • Cross-Lingual Search — Automatically detects query and document languages, enabling cross-lingual RAG (e.g., query English documents in Chinese).
  • Citation References — Each response automatically includes source document references for verification.
  • AI Command Assistant — Natural language → shell commands, draggable to terminal.
  • Built-in Terminal — Run commands with stdout/stderr display directly in the browser.
  • Conversation Save/Load — JSON export/import for session continuity.
  • 10-Language UI — Chinese, English, Japanese, French, Russian, German, Italian, Spanish, Portuguese, Korean.
  • Dark/Light Theme — Full theme support with CSS variables.
  • Offline by Design — Runs entirely on your machine. No cloud APIs required.

Feature Map

Multi-Provider LLM Support

GangDan supports a separated mode: local Ollama for chat/embedding/reranking, with optional external LLM providers for deep research and paper writing.

Provider System

ProviderAPI TypeUse Case
Ollama (local)ollamaChat, Embedding, Reranking
DashScopeOpenAI-compatibleDeep Research, Paper Writing
MiniMaxOpenAI-compatibleDeep Research
Bailian CodingAnthropic-compatibleDeep Research
OpenAI / DeepSeek / MoonshotOpenAI-compatibleDeep Research
CustomOpenAI-compatibleAny compatible API

CLI

  • Streaming chat (gangdan chat "question"), interactive REPL (gangdan cli)
  • KB operations, doc management, config, conversation persistence
  • AI command generation, shell execution with safety checks
  • Rich terminal output with formatted tables and syntax highlighting

Screenshots

ChatTerminal
ChatTerminal
DocumentationSettings
DocsSettings
Upload DocumentsKB Scope Selection
UploadKnowledge
Strict KB Chat with Citations
Strict Chat

The above screenshot demonstrates Strict KB Mode in action: after selecting a specific knowledge base, the system retrieves content only from that KB and automatically appends a reference list at the end of each response, citing the source documents.

Load ConversationConversation Loaded
LoadLoaded

Save your chat as a JSON file and load it anytime to continue the conversation.

RAG Pipeline

RAG Pipeline

The complete pipeline from document ingestion to retrieval:

  1. Document Ingestion — Download from GitHub repositories or upload custom files (.rst, .py, .html, .cpp, .md)
  2. Format Conversion — Automatic conversion to unified Markdown format
  3. Sliding Window Chunking — Fixed-size segmentation with configurable overlap (default: 800 chars, 150 overlap)
  4. Vector Embedding — nomic-embed-text model via Ollama API (768-dim vectors, 500-char truncation)
  5. Vector Storage — ChromaDB with HNSW indexing and cosine similarity
  6. Query Retrieval — Top-K search with distance filtering (threshold 1.5), deduplication, and context construction

Chunking Strategy

Chunking Strategy

The sliding window approach ensures contextual continuity across chunk boundaries. Key parameters:

ParameterDefaultRangeDescription
CHUNK_SIZE800 chars100-2000Characters per chunk
CHUNK_OVERLAP150 charsN/AOverlap between consecutive chunks
MIN_CHUNK50 charsN/AMinimum chunk length threshold

Requirements

  • Python 3.10+
  • Ollama running locally (default http://localhost:11434)
  • Chat model (e.g. ollama pull qwen3)
  • Embedding model (e.g. ollama pull nomic-embed-text)

Installation

Method 1: Install from PyPI (Recommended)

pip install gangdan
gangdan # Web GUI
gangdan cli # Interactive CLI
gangdan --port 8080 # Custom port

Method 2: Install from Source

git clone https://github.com/cycleuser/GangDan.git
cd GangDan
pip install -e .
gangdan

Open http://127.0.0.1:5000 in your browser.

Ollama Setup

ollama serve
ollama pull qwen3
ollama pull nomic-embed-text

Project Structure

GangDan/
├── pyproject.toml
├── README.md / README_CN.md
├── gangdan/
│ ├── __init__.py / __main__.py
│ ├── cli.py / cli_app.py # CLI entry + REPL
│ ├── app.py # Flask backend
│ ├── learning_routes.py # Learning module blueprint
│ ├── preprint_routes.py # Preprint search + convert
│ ├── research_routes.py # Paper search
│ ├── kb_routes.py # Custom KB management
│ ├── export_routes.py # Export API
│ ├── core/ # Shared modules
│ │ ├── config.py # Config, i18n, translations
│ │ ├── ollama_client.py # Ollama API
│ │ ├── chroma_manager.py # ChromaDB
│ │ ├── vector_db.py # Multi-backend vector DB
│ │ ├── kb_manager.py # Custom KB CRUD
│ │ ├── conversation.py # Chat history
│ │ ├── doc_manager.py # Doc download/index
│ │ ├── wiki_builder.py # LLM wiki generation
│ │ ├── preprint_fetcher.py # Preprint search
│ │ ├── preprint_converter.py # HTML/TeX/PDF → MD
│ │ ├── pdf_converter.py # PDF → MD (marker/mineru/docling)
│ │ ├── export_manager.py # Batch convert/export
│ │ ├── web_searcher.py # Web search
│ │ └── ...
│ ├── templates/index.html # Main SPA template
│ └── static/{css,js}/ # Frontend assets
├── tests/ # Test suite
├── images/ # Screenshots
└── diagrams/ # Architecture diagrams (SVG)

Configuration

All settings through the Settings tab: Ollama URL, chat/embedding/reranker models, proxy, context length, output language, vector DB type, LLM provider selection, and API keys.

Testing

pip install pytest pytest-cov
pytest tests/ -v
pytest tests/ --cov=gangdan

Academic Paper

For a detailed empirical study of the RAG pipeline and chunking strategies, see Article.md / Article_CN.md.

License

GPL-3.0-or-later. See LICENSE for details.

About

A tool to use local LLM to help to Code.

Resources

Stars

8 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

GangDan (纲担)

LLM-powered knowledge management and teaching assistant with offline support.

GangDan (纲担) — Principled and Accountable.

Chat Panel

Overview

GangDan is a local-first, offline programming assistant powered by Ollama and ChromaDB. It combines RAG-based knowledge management with teaching assistance tools, all running entirely on your machine — no cloud APIs required.

System Architecture

Features

Knowledge Management

  • Unified Literature Search — Search arXiv, bioRxiv, medRxiv, Semantic Scholar, CrossRef, OpenAlex, DBLP, PubMed, and GitHub in one interface. AI-powered query refinement with automatic translation and synonym expansion.
  • Batch Operations — Multi-select, select-all, batch convert (PDF/HTML/TeX to Markdown with image and formula preservation), batch add to knowledge base. Sort by relevance, date, or title.
  • Smart Renaming — Downloaded papers automatically renamed to citation format: Author et al. (Year) - Title.pdf
  • LLM-Generated Wiki — Build structured wiki pages from knowledge base content with cross-KB concept linking. Like Wikipedia for your documents.
  • Image Gallery — Browse and search images stored in knowledge bases with context and source attribution.
  • Document Manager — One-click download and indexing of 30+ library docs (Python, Rust, Go, JS, CUDA, Docker, etc.). Upload custom docs, batch operations, GitHub repo search, web search to KB.
  • Custom Knowledge Base Upload — Upload your own Markdown (.md) and plain text (.txt) documents to create named knowledge bases with automatic indexing.

Teaching Assistant

  • Question Generator — MCQ, short answer, fill-in-the-blank, true/false from KB content.
  • Guided Learning — Auto-extract knowledge points, generate interactive lessons with Q&A.
  • Deep Research — Multi-phase research pipeline: topic decomposition → RAG research → comprehensive reports.
  • Lecture Maker — Generate structured lecture content from KB materials.
  • Exam Generator — Create complete exam papers with answer keys from KB content.
  • Literature Review & Paper Writer — Generate academic reviews and papers from KB content.

Core Features

  • RAG Chat — Streaming chat with knowledge base retrieval and web search. Strict KB mode ensures grounded answers.
  • Cross-Lingual Search — Automatically detects query and document languages, enabling cross-lingual RAG (e.g., query English documents in Chinese).
  • Citation References — Each response automatically includes source document references for verification.
  • AI Command Assistant — Natural language → shell commands, draggable to terminal.
  • Built-in Terminal — Run commands with stdout/stderr display directly in the browser.
  • Conversation Save/Load — JSON export/import for session continuity.
  • 10-Language UI — Chinese, English, Japanese, French, Russian, German, Italian, Spanish, Portuguese, Korean.
  • Dark/Light Theme — Full theme support with CSS variables.
  • Offline by Design — Runs entirely on your machine. No cloud APIs required.

Feature Map

Multi-Provider LLM Support

GangDan supports a separated mode: local Ollama for chat/embedding/reranking, with optional external LLM providers for deep research and paper writing.

Provider System

ProviderAPI TypeUse Case
Ollama (local)ollamaChat, Embedding, Reranking
DashScopeOpenAI-compatibleDeep Research, Paper Writing
MiniMaxOpenAI-compatibleDeep Research
Bailian CodingAnthropic-compatibleDeep Research
OpenAI / DeepSeek / MoonshotOpenAI-compatibleDeep Research
CustomOpenAI-compatibleAny compatible API

CLI

  • Streaming chat (gangdan chat "question"), interactive REPL (gangdan cli)
  • KB operations, doc management, config, conversation persistence
  • AI command generation, shell execution with safety checks
  • Rich terminal output with formatted tables and syntax highlighting

Screenshots

ChatTerminal
ChatTerminal
DocumentationSettings
DocsSettings
Upload DocumentsKB Scope Selection
UploadKnowledge
Strict KB Chat with Citations
Strict Chat

The above screenshot demonstrates Strict KB Mode in action: after selecting a specific knowledge base, the system retrieves content only from that KB and automatically appends a reference list at the end of each response, citing the source documents.

Load ConversationConversation Loaded
LoadLoaded

Save your chat as a JSON file and load it anytime to continue the conversation.

RAG Pipeline

RAG Pipeline

The complete pipeline from document ingestion to retrieval:

  1. Document Ingestion — Download from GitHub repositories or upload custom files (.rst, .py, .html, .cpp, .md)
  2. Format Conversion — Automatic conversion to unified Markdown format
  3. Sliding Window Chunking — Fixed-size segmentation with configurable overlap (default: 800 chars, 150 overlap)
  4. Vector Embedding — nomic-embed-text model via Ollama API (768-dim vectors, 500-char truncation)
  5. Vector Storage — ChromaDB with HNSW indexing and cosine similarity
  6. Query Retrieval — Top-K search with distance filtering (threshold 1.5), deduplication, and context construction

Chunking Strategy

Chunking Strategy

The sliding window approach ensures contextual continuity across chunk boundaries. Key parameters:

ParameterDefaultRangeDescription
CHUNK_SIZE800 chars100-2000Characters per chunk
CHUNK_OVERLAP150 charsN/AOverlap between consecutive chunks
MIN_CHUNK50 charsN/AMinimum chunk length threshold

Requirements

  • Python 3.10+
  • Ollama running locally (default http://localhost:11434)
  • Chat model (e.g. ollama pull qwen3)
  • Embedding model (e.g. ollama pull nomic-embed-text)

Installation

Method 1: Install from PyPI (Recommended)

pip install gangdan
gangdan # Web GUI
gangdan cli # Interactive CLI
gangdan --port 8080 # Custom port

Method 2: Install from Source

git clone https://github.com/cycleuser/GangDan.git
cd GangDan
pip install -e .
gangdan

Open http://127.0.0.1:5000 in your browser.

Ollama Setup

ollama serve
ollama pull qwen3
ollama pull nomic-embed-text

Project Structure

GangDan/
├── pyproject.toml
├── README.md / README_CN.md
├── gangdan/
│ ├── __init__.py / __main__.py
│ ├── cli.py / cli_app.py # CLI entry + REPL
│ ├── app.py # Flask backend
│ ├── learning_routes.py # Learning module blueprint
│ ├── preprint_routes.py # Preprint search + convert
│ ├── research_routes.py # Paper search
│ ├── kb_routes.py # Custom KB management
│ ├── export_routes.py # Export API
│ ├── core/ # Shared modules
│ │ ├── config.py # Config, i18n, translations
│ │ ├── ollama_client.py # Ollama API
│ │ ├── chroma_manager.py # ChromaDB
│ │ ├── vector_db.py # Multi-backend vector DB
│ │ ├── kb_manager.py # Custom KB CRUD
│ │ ├── conversation.py # Chat history
│ │ ├── doc_manager.py # Doc download/index
│ │ ├── wiki_builder.py # LLM wiki generation
│ │ ├── preprint_fetcher.py # Preprint search
│ │ ├── preprint_converter.py # HTML/TeX/PDF → MD
│ │ ├── pdf_converter.py # PDF → MD (marker/mineru/docling)
│ │ ├── export_manager.py # Batch convert/export
│ │ ├── web_searcher.py # Web search
│ │ └── ...
│ ├── templates/index.html # Main SPA template
│ └── static/{css,js}/ # Frontend assets
├── tests/ # Test suite
├── images/ # Screenshots
└── diagrams/ # Architecture diagrams (SVG)

Configuration

All settings through the Settings tab: Ollama URL, chat/embedding/reranker models, proxy, context length, output language, vector DB type, LLM provider selection, and API keys.

Testing

pip install pytest pytest-cov
pytest tests/ -v
pytest tests/ --cov=gangdan

Academic Paper

For a detailed empirical study of the RAG pipeline and chunking strategies, see Article.md / Article_CN.md.

License

GPL-3.0-or-later. See LICENSE for details.

About

A tool to use local LLM to help to Code.

Resources

Stars

8 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

GangDan (纲担)

LLM-powered knowledge management and teaching assistant with offline support.

GangDan (纲担) — Principled and Accountable.

Chat Panel

Overview

GangDan is a local-first, offline programming assistant powered by Ollama and ChromaDB. It combines RAG-based knowledge management with teaching assistance tools, all running entirely on your machine — no cloud APIs required.

System Architecture

Features

Knowledge Management

  • Unified Literature Search — Search arXiv, bioRxiv, medRxiv, Semantic Scholar, CrossRef, OpenAlex, DBLP, PubMed, and GitHub in one interface. AI-powered query refinement with automatic translation and synonym expansion.
  • Batch Operations — Multi-select, select-all, batch convert (PDF/HTML/TeX to Markdown with image and formula preservation), batch add to knowledge base. Sort by relevance, date, or title.
  • Smart Renaming — Downloaded papers automatically renamed to citation format: Author et al. (Year) - Title.pdf
  • LLM-Generated Wiki — Build structured wiki pages from knowledge base content with cross-KB concept linking. Like Wikipedia for your documents.
  • Image Gallery — Browse and search images stored in knowledge bases with context and source attribution.
  • Document Manager — One-click download and indexing of 30+ library docs (Python, Rust, Go, JS, CUDA, Docker, etc.). Upload custom docs, batch operations, GitHub repo search, web search to KB.
  • Custom Knowledge Base Upload — Upload your own Markdown (.md) and plain text (.txt) documents to create named knowledge bases with automatic indexing.

Teaching Assistant

  • Question Generator — MCQ, short answer, fill-in-the-blank, true/false from KB content.
  • Guided Learning — Auto-extract knowledge points, generate interactive lessons with Q&A.
  • Deep Research — Multi-phase research pipeline: topic decomposition → RAG research → comprehensive reports.
  • Lecture Maker — Generate structured lecture content from KB materials.
  • Exam Generator — Create complete exam papers with answer keys from KB content.
  • Literature Review & Paper Writer — Generate academic reviews and papers from KB content.

Core Features

  • RAG Chat — Streaming chat with knowledge base retrieval and web search. Strict KB mode ensures grounded answers.
  • Cross-Lingual Search — Automatically detects query and document languages, enabling cross-lingual RAG (e.g., query English documents in Chinese).
  • Citation References — Each response automatically includes source document references for verification.
  • AI Command Assistant — Natural language → shell commands, draggable to terminal.
  • Built-in Terminal — Run commands with stdout/stderr display directly in the browser.
  • Conversation Save/Load — JSON export/import for session continuity.
  • 10-Language UI — Chinese, English, Japanese, French, Russian, German, Italian, Spanish, Portuguese, Korean.
  • Dark/Light Theme — Full theme support with CSS variables.
  • Offline by Design — Runs entirely on your machine. No cloud APIs required.

Feature Map

Multi-Provider LLM Support

GangDan supports a separated mode: local Ollama for chat/embedding/reranking, with optional external LLM providers for deep research and paper writing.

Provider System

ProviderAPI TypeUse Case
Ollama (local)ollamaChat, Embedding, Reranking
DashScopeOpenAI-compatibleDeep Research, Paper Writing
MiniMaxOpenAI-compatibleDeep Research
Bailian CodingAnthropic-compatibleDeep Research
OpenAI / DeepSeek / MoonshotOpenAI-compatibleDeep Research
CustomOpenAI-compatibleAny compatible API

CLI

  • Streaming chat (gangdan chat "question"), interactive REPL (gangdan cli)
  • KB operations, doc management, config, conversation persistence
  • AI command generation, shell execution with safety checks
  • Rich terminal output with formatted tables and syntax highlighting

Screenshots

ChatTerminal
ChatTerminal
DocumentationSettings
DocsSettings
Upload DocumentsKB Scope Selection
UploadKnowledge
Strict KB Chat with Citations
Strict Chat

The above screenshot demonstrates Strict KB Mode in action: after selecting a specific knowledge base, the system retrieves content only from that KB and automatically appends a reference list at the end of each response, citing the source documents.

Load ConversationConversation Loaded
LoadLoaded

Save your chat as a JSON file and load it anytime to continue the conversation.

RAG Pipeline

RAG Pipeline

The complete pipeline from document ingestion to retrieval:

  1. Document Ingestion — Download from GitHub repositories or upload custom files (.rst, .py, .html, .cpp, .md)
  2. Format Conversion — Automatic conversion to unified Markdown format
  3. Sliding Window Chunking — Fixed-size segmentation with configurable overlap (default: 800 chars, 150 overlap)
  4. Vector Embedding — nomic-embed-text model via Ollama API (768-dim vectors, 500-char truncation)
  5. Vector Storage — ChromaDB with HNSW indexing and cosine similarity
  6. Query Retrieval — Top-K search with distance filtering (threshold 1.5), deduplication, and context construction

Chunking Strategy

Chunking Strategy

The sliding window approach ensures contextual continuity across chunk boundaries. Key parameters:

ParameterDefaultRangeDescription
CHUNK_SIZE800 chars100-2000Characters per chunk
CHUNK_OVERLAP150 charsN/AOverlap between consecutive chunks
MIN_CHUNK50 charsN/AMinimum chunk length threshold

Requirements

  • Python 3.10+
  • Ollama running locally (default http://localhost:11434)
  • Chat model (e.g. ollama pull qwen3)
  • Embedding model (e.g. ollama pull nomic-embed-text)

Installation

Method 1: Install from PyPI (Recommended)

pip install gangdan
gangdan # Web GUI
gangdan cli # Interactive CLI
gangdan --port 8080 # Custom port

Method 2: Install from Source

git clone https://github.com/cycleuser/GangDan.git
cd GangDan
pip install -e .
gangdan

Open http://127.0.0.1:5000 in your browser.

Ollama Setup

ollama serve
ollama pull qwen3
ollama pull nomic-embed-text

Project Structure

GangDan/
├── pyproject.toml
├── README.md / README_CN.md
├── gangdan/
│ ├── __init__.py / __main__.py
│ ├── cli.py / cli_app.py # CLI entry + REPL
│ ├── app.py # Flask backend
│ ├── learning_routes.py # Learning module blueprint
│ ├── preprint_routes.py # Preprint search + convert
│ ├── research_routes.py # Paper search
│ ├── kb_routes.py # Custom KB management
│ ├── export_routes.py # Export API
│ ├── core/ # Shared modules
│ │ ├── config.py # Config, i18n, translations
│ │ ├── ollama_client.py # Ollama API
│ │ ├── chroma_manager.py # ChromaDB
│ │ ├── vector_db.py # Multi-backend vector DB
│ │ ├── kb_manager.py # Custom KB CRUD
│ │ ├── conversation.py # Chat history
│ │ ├── doc_manager.py # Doc download/index
│ │ ├── wiki_builder.py # LLM wiki generation
│ │ ├── preprint_fetcher.py # Preprint search
│ │ ├── preprint_converter.py # HTML/TeX/PDF → MD
│ │ ├── pdf_converter.py # PDF → MD (marker/mineru/docling)
│ │ ├── export_manager.py # Batch convert/export
│ │ ├── web_searcher.py # Web search
│ │ └── ...
│ ├── templates/index.html # Main SPA template
│ └── static/{css,js}/ # Frontend assets
├── tests/ # Test suite
├── images/ # Screenshots
└── diagrams/ # Architecture diagrams (SVG)

Configuration

All settings through the Settings tab: Ollama URL, chat/embedding/reranker models, proxy, context length, output language, vector DB type, LLM provider selection, and API keys.

Testing

pip install pytest pytest-cov
pytest tests/ -v
pytest tests/ --cov=gangdan

Academic Paper

For a detailed empirical study of the RAG pipeline and chunking strategies, see Article.md / Article_CN.md.

License

GPL-3.0-or-later. See LICENSE for details.

About

A tool to use local LLM to help to Code.

Resources

Stars

8 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

GangDan (纲担)

LLM-powered knowledge management and teaching assistant with offline support.

GangDan (纲担) — Principled and Accountable.

Chat Panel

Overview

GangDan is a local-first, offline programming assistant powered by Ollama and ChromaDB. It combines RAG-based knowledge management with teaching assistance tools, all running entirely on your machine — no cloud APIs required.

System Architecture

Features

Knowledge Management

  • Unified Literature Search — Search arXiv, bioRxiv, medRxiv, Semantic Scholar, CrossRef, OpenAlex, DBLP, PubMed, and GitHub in one interface. AI-powered query refinement with automatic translation and synonym expansion.
  • Batch Operations — Multi-select, select-all, batch convert (PDF/HTML/TeX to Markdown with image and formula preservation), batch add to knowledge base. Sort by relevance, date, or title.
  • Smart Renaming — Downloaded papers automatically renamed to citation format: Author et al. (Year) - Title.pdf
  • LLM-Generated Wiki — Build structured wiki pages from knowledge base content with cross-KB concept linking. Like Wikipedia for your documents.
  • Image Gallery — Browse and search images stored in knowledge bases with context and source attribution.
  • Document Manager — One-click download and indexing of 30+ library docs (Python, Rust, Go, JS, CUDA, Docker, etc.). Upload custom docs, batch operations, GitHub repo search, web search to KB.
  • Custom Knowledge Base Upload — Upload your own Markdown (.md) and plain text (.txt) documents to create named knowledge bases with automatic indexing.

Teaching Assistant

  • Question Generator — MCQ, short answer, fill-in-the-blank, true/false from KB content.
  • Guided Learning — Auto-extract knowledge points, generate interactive lessons with Q&A.
  • Deep Research — Multi-phase research pipeline: topic decomposition → RAG research → comprehensive reports.
  • Lecture Maker — Generate structured lecture content from KB materials.
  • Exam Generator — Create complete exam papers with answer keys from KB content.
  • Literature Review & Paper Writer — Generate academic reviews and papers from KB content.

Core Features

  • RAG Chat — Streaming chat with knowledge base retrieval and web search. Strict KB mode ensures grounded answers.
  • Cross-Lingual Search — Automatically detects query and document languages, enabling cross-lingual RAG (e.g., query English documents in Chinese).
  • Citation References — Each response automatically includes source document references for verification.
  • AI Command Assistant — Natural language → shell commands, draggable to terminal.
  • Built-in Terminal — Run commands with stdout/stderr display directly in the browser.
  • Conversation Save/Load — JSON export/import for session continuity.
  • 10-Language UI — Chinese, English, Japanese, French, Russian, German, Italian, Spanish, Portuguese, Korean.
  • Dark/Light Theme — Full theme support with CSS variables.
  • Offline by Design — Runs entirely on your machine. No cloud APIs required.

Feature Map

Multi-Provider LLM Support

GangDan supports a separated mode: local Ollama for chat/embedding/reranking, with optional external LLM providers for deep research and paper writing.

Provider System

ProviderAPI TypeUse Case
Ollama (local)ollamaChat, Embedding, Reranking
DashScopeOpenAI-compatibleDeep Research, Paper Writing
MiniMaxOpenAI-compatibleDeep Research
Bailian CodingAnthropic-compatibleDeep Research
OpenAI / DeepSeek / MoonshotOpenAI-compatibleDeep Research
CustomOpenAI-compatibleAny compatible API

CLI

  • Streaming chat (gangdan chat "question"), interactive REPL (gangdan cli)
  • KB operations, doc management, config, conversation persistence
  • AI command generation, shell execution with safety checks
  • Rich terminal output with formatted tables and syntax highlighting

Screenshots

ChatTerminal
ChatTerminal
DocumentationSettings
DocsSettings
Upload DocumentsKB Scope Selection
UploadKnowledge
Strict KB Chat with Citations
Strict Chat

The above screenshot demonstrates Strict KB Mode in action: after selecting a specific knowledge base, the system retrieves content only from that KB and automatically appends a reference list at the end of each response, citing the source documents.

Load ConversationConversation Loaded
LoadLoaded

Save your chat as a JSON file and load it anytime to continue the conversation.

RAG Pipeline

RAG Pipeline

The complete pipeline from document ingestion to retrieval:

  1. Document Ingestion — Download from GitHub repositories or upload custom files (.rst, .py, .html, .cpp, .md)
  2. Format Conversion — Automatic conversion to unified Markdown format
  3. Sliding Window Chunking — Fixed-size segmentation with configurable overlap (default: 800 chars, 150 overlap)
  4. Vector Embedding — nomic-embed-text model via Ollama API (768-dim vectors, 500-char truncation)
  5. Vector Storage — ChromaDB with HNSW indexing and cosine similarity
  6. Query Retrieval — Top-K search with distance filtering (threshold 1.5), deduplication, and context construction

Chunking Strategy

Chunking Strategy

The sliding window approach ensures contextual continuity across chunk boundaries. Key parameters:

ParameterDefaultRangeDescription
CHUNK_SIZE800 chars100-2000Characters per chunk
CHUNK_OVERLAP150 charsN/AOverlap between consecutive chunks
MIN_CHUNK50 charsN/AMinimum chunk length threshold

Requirements

  • Python 3.10+
  • Ollama running locally (default http://localhost:11434)
  • Chat model (e.g. ollama pull qwen3)
  • Embedding model (e.g. ollama pull nomic-embed-text)

Installation

Method 1: Install from PyPI (Recommended)

pip install gangdan
gangdan # Web GUI
gangdan cli # Interactive CLI
gangdan --port 8080 # Custom port

Method 2: Install from Source

git clone https://github.com/cycleuser/GangDan.git
cd GangDan
pip install -e .
gangdan

Open http://127.0.0.1:5000 in your browser.

Ollama Setup

ollama serve
ollama pull qwen3
ollama pull nomic-embed-text

Project Structure

GangDan/
├── pyproject.toml
├── README.md / README_CN.md
├── gangdan/
│ ├── __init__.py / __main__.py
│ ├── cli.py / cli_app.py # CLI entry + REPL
│ ├── app.py # Flask backend
│ ├── learning_routes.py # Learning module blueprint
│ ├── preprint_routes.py # Preprint search + convert
│ ├── research_routes.py # Paper search
│ ├── kb_routes.py # Custom KB management
│ ├── export_routes.py # Export API
│ ├── core/ # Shared modules
│ │ ├── config.py # Config, i18n, translations
│ │ ├── ollama_client.py # Ollama API
│ │ ├── chroma_manager.py # ChromaDB
│ │ ├── vector_db.py # Multi-backend vector DB
│ │ ├── kb_manager.py # Custom KB CRUD
│ │ ├── conversation.py # Chat history
│ │ ├── doc_manager.py # Doc download/index
│ │ ├── wiki_builder.py # LLM wiki generation
│ │ ├── preprint_fetcher.py # Preprint search
│ │ ├── preprint_converter.py # HTML/TeX/PDF → MD
│ │ ├── pdf_converter.py # PDF → MD (marker/mineru/docling)
│ │ ├── export_manager.py # Batch convert/export
│ │ ├── web_searcher.py # Web search
│ │ └── ...
│ ├── templates/index.html # Main SPA template
│ └── static/{css,js}/ # Frontend assets
├── tests/ # Test suite
├── images/ # Screenshots
└── diagrams/ # Architecture diagrams (SVG)

Configuration

All settings through the Settings tab: Ollama URL, chat/embedding/reranker models, proxy, context length, output language, vector DB type, LLM provider selection, and API keys.

Testing

pip install pytest pytest-cov
pytest tests/ -v
pytest tests/ --cov=gangdan

Academic Paper

For a detailed empirical study of the RAG pipeline and chunking strategies, see Article.md / Article_CN.md.

License

GPL-3.0-or-later. See LICENSE for details.

About

A tool to use local LLM to help to Code.

Resources

Stars

8 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

GangDan (纲担)

LLM-powered knowledge management and teaching assistant with offline support.

GangDan (纲担) — Principled and Accountable.

Chat Panel

Overview

GangDan is a local-first, offline programming assistant powered by Ollama and ChromaDB. It combines RAG-based knowledge management with teaching assistance tools, all running entirely on your machine — no cloud APIs required.

System Architecture

Features

Knowledge Management

  • Unified Literature Search — Search arXiv, bioRxiv, medRxiv, Semantic Scholar, CrossRef, OpenAlex, DBLP, PubMed, and GitHub in one interface. AI-powered query refinement with automatic translation and synonym expansion.
  • Batch Operations — Multi-select, select-all, batch convert (PDF/HTML/TeX to Markdown with image and formula preservation), batch add to knowledge base. Sort by relevance, date, or title.
  • Smart Renaming — Downloaded papers automatically renamed to citation format: Author et al. (Year) - Title.pdf
  • LLM-Generated Wiki — Build structured wiki pages from knowledge base content with cross-KB concept linking. Like Wikipedia for your documents.
  • Image Gallery — Browse and search images stored in knowledge bases with context and source attribution.
  • Document Manager — One-click download and indexing of 30+ library docs (Python, Rust, Go, JS, CUDA, Docker, etc.). Upload custom docs, batch operations, GitHub repo search, web search to KB.
  • Custom Knowledge Base Upload — Upload your own Markdown (.md) and plain text (.txt) documents to create named knowledge bases with automatic indexing.

Teaching Assistant

  • Question Generator — MCQ, short answer, fill-in-the-blank, true/false from KB content.
  • Guided Learning — Auto-extract knowledge points, generate interactive lessons with Q&A.
  • Deep Research — Multi-phase research pipeline: topic decomposition → RAG research → comprehensive reports.
  • Lecture Maker — Generate structured lecture content from KB materials.
  • Exam Generator — Create complete exam papers with answer keys from KB content.
  • Literature Review & Paper Writer — Generate academic reviews and papers from KB content.

Core Features

  • RAG Chat — Streaming chat with knowledge base retrieval and web search. Strict KB mode ensures grounded answers.
  • Cross-Lingual Search — Automatically detects query and document languages, enabling cross-lingual RAG (e.g., query English documents in Chinese).
  • Citation References — Each response automatically includes source document references for verification.
  • AI Command Assistant — Natural language → shell commands, draggable to terminal.
  • Built-in Terminal — Run commands with stdout/stderr display directly in the browser.
  • Conversation Save/Load — JSON export/import for session continuity.
  • 10-Language UI — Chinese, English, Japanese, French, Russian, German, Italian, Spanish, Portuguese, Korean.
  • Dark/Light Theme — Full theme support with CSS variables.
  • Offline by Design — Runs entirely on your machine. No cloud APIs required.

Feature Map

Multi-Provider LLM Support

GangDan supports a separated mode: local Ollama for chat/embedding/reranking, with optional external LLM providers for deep research and paper writing.

Provider System

ProviderAPI TypeUse Case
Ollama (local)ollamaChat, Embedding, Reranking
DashScopeOpenAI-compatibleDeep Research, Paper Writing
MiniMaxOpenAI-compatibleDeep Research
Bailian CodingAnthropic-compatibleDeep Research
OpenAI / DeepSeek / MoonshotOpenAI-compatibleDeep Research
CustomOpenAI-compatibleAny compatible API

CLI

  • Streaming chat (gangdan chat "question"), interactive REPL (gangdan cli)
  • KB operations, doc management, config, conversation persistence
  • AI command generation, shell execution with safety checks
  • Rich terminal output with formatted tables and syntax highlighting

Screenshots

ChatTerminal
ChatTerminal
DocumentationSettings
DocsSettings
Upload DocumentsKB Scope Selection
UploadKnowledge
Strict KB Chat with Citations
Strict Chat

The above screenshot demonstrates Strict KB Mode in action: after selecting a specific knowledge base, the system retrieves content only from that KB and automatically appends a reference list at the end of each response, citing the source documents.

Load ConversationConversation Loaded
LoadLoaded

Save your chat as a JSON file and load it anytime to continue the conversation.

RAG Pipeline

RAG Pipeline

The complete pipeline from document ingestion to retrieval:

  1. Document Ingestion — Download from GitHub repositories or upload custom files (.rst, .py, .html, .cpp, .md)
  2. Format Conversion — Automatic conversion to unified Markdown format
  3. Sliding Window Chunking — Fixed-size segmentation with configurable overlap (default: 800 chars, 150 overlap)
  4. Vector Embedding — nomic-embed-text model via Ollama API (768-dim vectors, 500-char truncation)
  5. Vector Storage — ChromaDB with HNSW indexing and cosine similarity
  6. Query Retrieval — Top-K search with distance filtering (threshold 1.5), deduplication, and context construction

Chunking Strategy

Chunking Strategy

The sliding window approach ensures contextual continuity across chunk boundaries. Key parameters:

ParameterDefaultRangeDescription
CHUNK_SIZE800 chars100-2000Characters per chunk
CHUNK_OVERLAP150 charsN/AOverlap between consecutive chunks
MIN_CHUNK50 charsN/AMinimum chunk length threshold

Requirements

  • Python 3.10+
  • Ollama running locally (default http://localhost:11434)
  • Chat model (e.g. ollama pull qwen3)
  • Embedding model (e.g. ollama pull nomic-embed-text)

Installation

Method 1: Install from PyPI (Recommended)

pip install gangdan
gangdan # Web GUI
gangdan cli # Interactive CLI
gangdan --port 8080 # Custom port

Method 2: Install from Source

git clone https://github.com/cycleuser/GangDan.git
cd GangDan
pip install -e .
gangdan

Open http://127.0.0.1:5000 in your browser.

Ollama Setup

ollama serve
ollama pull qwen3
ollama pull nomic-embed-text

Project Structure

GangDan/
├── pyproject.toml
├── README.md / README_CN.md
├── gangdan/
│ ├── __init__.py / __main__.py
│ ├── cli.py / cli_app.py # CLI entry + REPL
│ ├── app.py # Flask backend
│ ├── learning_routes.py # Learning module blueprint
│ ├── preprint_routes.py # Preprint search + convert
│ ├── research_routes.py # Paper search
│ ├── kb_routes.py # Custom KB management
│ ├── export_routes.py # Export API
│ ├── core/ # Shared modules
│ │ ├── config.py # Config, i18n, translations
│ │ ├── ollama_client.py # Ollama API
│ │ ├── chroma_manager.py # ChromaDB
│ │ ├── vector_db.py # Multi-backend vector DB
│ │ ├── kb_manager.py # Custom KB CRUD
│ │ ├── conversation.py # Chat history
│ │ ├── doc_manager.py # Doc download/index
│ │ ├── wiki_builder.py # LLM wiki generation
│ │ ├── preprint_fetcher.py # Preprint search
│ │ ├── preprint_converter.py # HTML/TeX/PDF → MD
│ │ ├── pdf_converter.py # PDF → MD (marker/mineru/docling)
│ │ ├── export_manager.py # Batch convert/export
│ │ ├── web_searcher.py # Web search
│ │ └── ...
│ ├── templates/index.html # Main SPA template
│ └── static/{css,js}/ # Frontend assets
├── tests/ # Test suite
├── images/ # Screenshots
└── diagrams/ # Architecture diagrams (SVG)

Configuration

All settings through the Settings tab: Ollama URL, chat/embedding/reranker models, proxy, context length, output language, vector DB type, LLM provider selection, and API keys.

Testing

pip install pytest pytest-cov
pytest tests/ -v
pytest tests/ --cov=gangdan

Academic Paper

For a detailed empirical study of the RAG pipeline and chunking strategies, see Article.md / Article_CN.md.

License

GPL-3.0-or-later. See LICENSE for details.

About

A tool to use local LLM to help to Code.

Resources

Stars

8 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages