DevHunt DEVHUNT

⬡ DOCUMENTATION v1.0 Beta

🔍 Ctrl K

01. Welcome & Overview

DevHunt is a local-first, developer-centric environment designed by developers, for developers. It functions as an integrated center displaying analytics, a terminal-like environment (Hunt Terminal), and a RAG-powered cognitive assistant.

A core feature in this ecosystem is the Multi-Agent Document Intelligence and Forensics tool (Doc Forensics). This subsystem acts independently from the Intel Vault, giving developers a dedicated interface to scan and audit ticket invoices, documents, and cards for evidence of forgery or compliance issues.

Modern & Offline Tech Stack

DevHunt is structured as a high-performance offline codebase designed for safety, low memory usage, and minimal latency. By keeping resources local and avoiding heavy cloud telemetry loops, the platform achieves instant responsiveness.

Tech Component Technology Used How We Use It & Details
Backend Core & Routing Python 3.10+ / Flask Flask serves as our micro-routing controller. It starts instantly, maintains a tiny memory footprint (~40MB RAM at idle), processes REST endpoints, and manages Server-Sent Events (SSE) for streaming AI assistant responses.
Frontend Architecture Vite / React 18 The client shell utilizes React 18 for high-performance concurrent rendering. Vite packages modular components into static files that Flask hosts directly, allowing sub-second UI switches.
Native Desktop Window Tauri v2 / Rust Instead of standard browsers, Tauri runs a Rust shell wrapping the system's native WebView2 rendering engine. This bypasses the massive RAM and storage overhead typical of Electron-based systems (saving over 500MB RAM).
Local Storage SQLite Database All application data (chat logs, Kanban tasks, key status flags, indexed RAG files, system logs, LinkedIn drafts) is persisted in a local database file (backend/data/devhunt.db). It supports raw SQLite transactions directly within the same process.
Code Editor Module CodeMirror 6 Editor Powering the IDE workspace, CodeMirror 6 provides syntax highlighting, automatic indentation, search and replace, and drag-and-drop actions. Optimized for editing massive codebase scripts.
PyInstaller Bundling PyInstaller Bundler Bundles the Flask core, Python runtime, and libraries (OpenCV, cryptography, keyring, PyMuPDF) into a standalone backend executable sidecar, ensuring developers do not need to manually configure Python dependencies on their host.
AI Assistant API Google Gemini SDK Interactions with Gemini (flash, flash-lite, embeddings) are routed through the Google GenAI SDK. Features rotation pools, response latency auditing, and local rule-based offline fallbacks.
Open Source License MIT License Fully open-source, allowing you to modify, self-host, and distribute installers freely.

Key Platform Features

DevHunt exposes multiple functional panes to consolidate all dev activities into a single premium interface:

  • AI Assistant: Chat with the model powered by custom knowledge index (RAG) and grammar helpers to perfect writing.
  • Hunt Path: Tracks daily streaks and progress through dynamically calculated topics.
  • Quest Board: Interactive backlog table persistent in SQLite database for organizing quests.
  • Intel Vault: Standard RAG indexing workspace supporting PDF/Text indexing.
  • Doc Forensics: Tamper scanning checklist (ELA, digital signature checks, metadata verification).
  • Hunt Terminal: Executable CLI interface running both system processes and sandbox utility commands.
  • Music Player: Integrated local audio manager with global playback controllers and YouTube converter.
  • Terminal Stats: High-fidelity telemetry metrics dashboard monitoring actual token volume and key distributions.
  • System Notifications: Actionable notification panel for events, updates, and key alerts with read/dismiss controls.
  • Feature Toggles: Granular settings switches to dynamically enable or disable workspace panels.
  • Game Arcade: Set of offline, flat-colored mini games to unwind during compile breaks.
  • LinkedIn Drafts: Native draft notebook for LinkedIn posts, with AI-powered refinement and chat auto-detection.

In-Depth Features Walkthrough

◎ AI Cognitive Assistant

The AI Assistant provides real-time chat with LLMs using a customized SSE (Server-Sent Events) streaming architecture. It incorporates document-specific knowledge sources automatically if a document context is active. It also utilizes a localized feedback helper to refine grammatical syntax and answer developer prompts. System parameters such as temperature, system instructions, and token limitations are adjustable, and chat sessions are preserved in the local SQLite database. The interface features a premium interactive control panel side card showing Today's Targets (active curriculum day lessons and tasks linked directly to the Hunt Path) and Quick Quests (to-dos with custom styled checkboxes and dim/strikethrough animations), asymmetric rounded chat message bubbles, and a unified rounded chat input pill.

◎ Hunt Path (Learning Track)

The Hunt Path is a curriculum map tailored to developer activity. It dynamically builds sequence tracks (streaks, progress, nodes) based on developer habits, database interactions, and console operations. Active nodes update automatically as files are created, commands executed, or quizzes answered, logging progress milestones inside backend/data/learning_path.json.

◎ Quest Board (Task Engine)

The Quest Board acts as an integrated to-do management engine. It connects directly with the SQLite database, tracking priorities (low, medium, high), status markers, and titles. Developers can interact with it either through the graphical dashboard or using the Hunt Terminal command interface (hunt quest), making it easy to create, update, or remove backlog tasks programmatically.

◎ Intel Vault (RAG Pipeline)

The Intel Vault serves as the central point for RAG (Retrieval-Augmented Generation). Uploaded files are segmented into logical chunks, parsed, and embedded using either local embeddings or Gemini models. The computed vectors are cataloged in the SQLite database. During queries, a cosine similarity algorithm pulls the most relevant text blocks to append as context headers in LLM prompts, ensuring answers are grounded in your files.

◎ Doc Forensics & Compliance

The Doc Forensics tab performs local weighted scans to assess document safety and authenticity. It executes verification procedures across five distinct vectors: metadata integrity (photoshop tracers or timestamp variance), Error Level Analysis (pixels variance heatmap delta checks), cryptographically signed PKCS7 envelope checks, regex-based regulatory keyword text parsing (identifying SSNs, IDs, and licenses), and QR code registration validation against trusted domain lists.

◎ Hunt Terminal Node

The Hunt Terminal is a sandbox CLI console running directly inside the web browser. It routes customized commands beginning with the hunt prefix to the backend engine, which handles path context persistence across executions, sanitizes input streams to prevent execution escape vulnerabilities, and falls back to system subprocess calls for commands outside its standard database list.

◎ Music Player & Global Decks

The Music Player provides developers with an integrated background soundscape. It supports uploading local audio files (MP3, WAV, OGG, FLAC, AAC, M4A, OPUS) and downloading them locally. Additionally, users can paste YouTube links to extract and cache audio tracks automatically using a zero-dependency native WebM/Opus streaming fallback if ffmpeg is not present. The system synchronizes playback state (seek, tracks, volumes, shuffle/sequential modes) with global persistent layouts: a topbar mini-deck and a detailed sidebar deck showing spinning album art and active playback time overlays on every single tab page.

◎ Terminal Stats & Token Analytics

The Terminal Stats dashboard exposes aggregated metrics regarding LLM utilization. Instead of estimates, the platform integrates direct API telemetry, capturing prompt and completion token sizes using the usage_metadata object returned by the Gemini SDK. It visualizes model requests split, active keys workload distribution, and 14-day history timelines dynamically using client-side canvas charts. It also monitors model variants distribution and calculates accumulated token metrics for local model telemetry.

◎ Feature Access & Layout Toggles

Located under Settings, the Feature Toggle framework allows developers to modularize the workspace by toggling core feature panes (Music Player, Hunt Path, Quest Board, Intel Vault, Doc Forensics, Game Arcade) on or off. Hiding a module immediately strips its navigation elements from the layout, pauses any active services (like background audio or running game rendering loops), and automatically redirects active pane focuses to the AI Cognitive Assistant home screen. Additionally, the settings tab offers a Minimize Sidebar option to collapse the left navigation bar into a compact icon-only column. Minimization can also be toggled dynamically using the header hamburger button or via the global Ctrl+B (or Cmd+B) keyboard shortcut. These configurations persist locally and serialize in the database or browser's local cache.

◎ Game Arcade Stations

The Game Arcade panel delivers classic developer-themed mini-games designed to run entirely offline with clean, flat-color styling. The selection menu displays all four games in a top-aligned, 4-column horizontal grid. It runs four discrete games: Git Commit Snake (control a git branch to consume commits and dodge conflicts), Data Lane Runner (lane dodge falling malware blocks and compile RAM buffers with index splicing safety), Terminal Decrypt (deductive word likeness passcode decrypt console), and Hex Malware Sweeper (a 100-cell hex address block Minesweeper clone). High scores persist in the browser's local cache. Win, loss, and lockout screens display using premium, non-blocking glassmorphic overlays with RESTART and MENU shortcut actions, preventing blocking alert interruptions. Keyboard controls: Arrow keys or WASD to navigate Snake/Runner, Space to restart, Esc to exit arena.

◎ LinkedIn Post Drafts

The LinkedIn Drafts module is a native workspace panel for creating, editing, and managing LinkedIn post drafts. It features AI-powered auto-detection during AI chat: when the AI returns LinkedIn post content, a Save to LinkedIn Drafts button appears inline. Drafts are organized date-wise with a split list/detail view, a character count indicator, and status tracking (Draft → Ready). The Refine with AI button lets you send any draft back to the AI with a LinkedIn optimization prompt for content polishing.

Offline vs. Online Capabilities

To support air-gapped setups or low-bandwidth environments, DevHunt divides its key features into offline-local capabilities and online-connected modules that require external resources:

Feature Module Status Dependencies Functional Scope
AI Assistant Chat Online Only Gemini API Key & Internet Streams chat messages and responses via server-sent events (SSE).
Grammar helper Online Only Gemini API Key Prepends grammar tips to assistant answers.
Hunt Path (Gen) Online Only Gemini API Key Roadmap tailoring uses LLM queries; runs with local static DevOps curriculum fallback when offline.
Intel Vault (Index) Online Only Gemini Embedding Model Generates high-dimensional vector embeddings for uploaded PDFs or text.
Intel Vault (Query) Online Only Gemini Chat Model Enables RAG chat analysis referencing indexed knowledge documents.
Quest Board Offline Ready SQLite Database (Local) Managing, creating, updating, and rendering tasks in the Kanban grid.
Doc Forensics (Scan) Offline Ready Local Python libraries Performs error level checks (ELA), photoshop signature matches, envelope cryptography checks, domain list QR scans, and regex parses.
Doc Forensics (Chat) Online Only Gemini API Key Chatting with the document analyzer concerning forensics checklist results.
Hunt Terminal Offline Ready Local shell processor Interacting with local files, executing disk audits, or running quest commands. External calls like ping or curl require internet.
Music Player (Local) Offline Ready HTML5 Audio API Uploading local media files, playing tracks, shuffling list, and managing local libraries.
YouTube Converter Online Only Internet connection & yt-dlp Downloads, parses metadata, and converts audio streams from youtube links.
System Logs Viewer Offline Ready SQLite Database (Local) Auditing log streams stored in SQLite.
Game Arcade Offline Ready HTML5 Canvas & DOM Grid Play offline retro developer games (Snake, Runner, Decrypt, Sweeper) styled with clean, standard flat colors.
LinkedIn Drafts Offline Ready SQLite Database (Local) Create, edit, and organize LinkedIn post drafts locally. AI refinement requires Gemini API key.
LinkedIn AI Refine Online Only Gemini API Key Sends existing draft to AI for content polishing and LinkedIn post optimization.

02. Architecture & Files

DevHunt leverages a lightweight stack, utilizing Flask (Python 3.10+) for the API server, SQLite for local persistence, and a Vite + React frontend for the modern IDE interface (compiled to a static bundle). The legacy plain HTML/JS frontend is also available as a fallback in the frontend/ directory.

Directory Structure Map

Understanding the exact locations of configuration files, engines, and persistence caches:

DevHunt/
├── backend/
│   ├── app.py                # Flask controller, static routing, SSE routes
│   ├── config.py             # Server paths (Uploads dir, DB files, and key files)
│   ├── check_requirements.py # Startup verification checks script
│   ├── core/
│   │   ├── document_analyzer.py # Multi-agent Document Forensics Orchestrator
│   │   ├── db.py                # Database connection pools & schema init
│   │   ├── key_manager.py       # API key health validation and rotation
│   │   ├── rag_pipeline.py      # RAG chunker, embedder, and vector database
│   │   ├── chat_engine.py       # SSE message streamer & chat session context
│   │   └── terminal_engine.py   # Command parse loops & OS process runners
│   └── uploads/              # Storage directory for ELA deltas & diagrams
├── frontend-src/          # Vite + React IDE (modern interface)
│   ├── src/                 # React components & pages
│   ├── dist/                # Compiled production bundle (served by Flask)
│   └── public/              # Static assets (docs.html, logs.html, logo.png)
├── frontend/              # Legacy plain HTML/JS interface (fallback)
├── run.bat                # Automated Windows launcher (port 1225)
├── run.sh                 # Automated macOS/Linux launcher
└── build_desktop.bat      # Full desktop EXE build script (Tauri + PyInstaller)

Database Persistence Schemas

The SQLite database file is stored at backend/data/devhunt.db. It serves as the primary persistent data warehouse for the platform. It manages the following tables:

1. Knowledge Sources Table (RAG Master)

Stores indexed documents, files, and URLs uploaded by the developer:

CREATE TABLE IF NOT EXISTS knowledge_sources (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    name TEXT,
    type TEXT,           -- 'pdf', 'url', 'text', 'note', 'image'
    path TEXT,           -- Local absolute file location
    status TEXT,         -- 'indexed', 'pending', 'error'
    chunk_count INTEGER DEFAULT 0,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);

2. Knowledge Chunks Table (RAG Vectors)

Stores raw text segments and their high-dimensional vector embeddings serialized as JSON arrays:

CREATE TABLE IF NOT EXISTS knowledge_chunks (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    source_id INTEGER,
    content TEXT,        -- Extracted chunk text
    embedding TEXT,      -- JSON-serialized float array
    metadata TEXT,       -- JSON-serialized page/position data
    FOREIGN KEY(source_id) REFERENCES knowledge_sources(id) ON DELETE CASCADE
);

3. Document Analyses Table (Forensics Results)

Caches weighted verification checklist results, verdicts, and file locations for generated Matplotlib charts:

CREATE TABLE IF NOT EXISTS document_analyses (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    source_id INTEGER UNIQUE,
    final_score REAL,
    verdict TEXT,
    risk_level TEXT,     -- 'LOW', 'MEDIUM', 'HIGH'
    report_json TEXT,    -- AI detailed local structured entity report
    ela_image_path TEXT,
    dashboard_image_path TEXT,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY(source_id) REFERENCES knowledge_sources(id) ON DELETE CASCADE
);

4. Chat Messages Table (History Tracker)

Maintains persistent conversational log history for standard assistant chats and document-specific forensics chats:

CREATE TABLE IF NOT EXISTS messages (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    session_id TEXT,     -- 'default_session' or 'session_doc_<source_id>'
    role TEXT,           -- 'user' or 'assistant'
    content TEXT,
    model_used TEXT,
    key_used TEXT,       -- Key manager index label
    timestamp DATETIME DEFAULT CURRENT_TIMESTAMP,
    tokens_used INTEGER DEFAULT 0
);

5. Quests Table (Quest Board)

Tracks backlog items, priority values, and lifecycle milestones:

CREATE TABLE IF NOT EXISTS todos (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    title TEXT NOT NULL,
    description TEXT,
    priority TEXT,       -- 'high', 'medium', 'low'
    status TEXT,         -- 'pending', 'in_progress', 'done'
    due_date TEXT,
    tags TEXT,           -- JSON array of strings
    source TEXT,         -- 'manual' or 'ai_detected'
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
    completed_at DATETIME
);

6. Analytics Events Table (Behavior Monitor)

Logs developer actions and triggers for path auto-adjusting logic:

CREATE TABLE IF NOT EXISTS analytics_events (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    event_type TEXT,     -- 'question_asked', 'todo_completed', 'path_updated'
    topic TEXT,
    metadata TEXT,       -- JSON event context details
    timestamp DATETIME DEFAULT CURRENT_TIMESTAMP
);

7. System Logs Table (Logs Console)

Stores detailed system operations accessible in the Log Console `/logs` panel:

CREATE TABLE IF NOT EXISTS system_logs (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    level TEXT,          -- 'INFO', 'WARN', 'ERROR', 'SUCCESS'
    category TEXT,       -- 'api_call', 'key_event', 'chat', 'rag', 'system'
    message TEXT,
    metadata TEXT,       -- JSON payload (e.g. response duration)
    timestamp DATETIME DEFAULT CURRENT_TIMESTAMP
);

8. User Memories Table (AI Facts)

Stores long-term facts extracted from conversations during periodic consolidations:

CREATE TABLE IF NOT EXISTS user_memories (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    session_id TEXT UNIQUE,
    consolidated_facts TEXT, -- JSON-serialized string array
    last_updated DATETIME DEFAULT CURRENT_TIMESTAMP
);

9. LinkedIn Drafts Table

Stores LinkedIn post drafts created via the Drafts panel or auto-saved from the AI chat interface:

CREATE TABLE IF NOT EXISTS linkedin_drafts (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    title TEXT NOT NULL,
    content TEXT NOT NULL,
    status TEXT DEFAULT 'draft',  -- 'draft' or 'ready'
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
    updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
);

Config Files & Filesystem Paths

Key configuration files are kept in the backend/data/ directory:

  • Database Storage (backend/data/devhunt.db): Stores the SQLite tables listed above.
  • Key Configuration (backend/data/keys.json): Stores API keys registered via CLI or GUI. API keys are stored encrypted locally.
  • User Profile (backend/data/profile.json): Stores developer name, streak milestone metrics, current/target skill sets, daily study target times, and interface parameters.
  • Settings file (backend/data/settings.json): Stores default system parameters (e.g. selected LLM overrides, themes).
  • Learning Path Tracker (backend/data/learning_path.json): Stores the dynamically structured learning tracks, streak counts, progress nodes, and completion states.
  • Encryption Secret (backend/data/.secret): Automatically generated key file containing the Fernet encryption secret used to encrypt registered API keys.
  • Uploads Repository (backend/uploads/): Directory used to save raw document files, generated Matplotlib dial graphs, and ELA contrast heatmaps.

03. Setup & Installation

This manual covers how to install, verify, and run the DevHunt application suite. The platform offers compiled native installers for Windows, and automated shell bootstrap scripts for macOS, Linux, and Windows source configurations.

Prerequisites (Running from Source)

  • Python Version: Python >= 3.10 is required on the host system.
  • System Path: Python and pip must be configured in your environment variable PATH.
  • Tesseract OCR: (Optional) Install Tesseract-OCR to enable rule-based local backup text parsing.

1. Precompiled Installers (Windows Desktop)

For a native desktop experience on Windows 10 or 11, use the precompiled installers. These bundle both the frontend shell (Tauri) and python core (PyInstaller) together:

  • Standard Setup (EXE): Double-click DevHunt_Setup.exe to launch the installation wizard. It installs DevHunt into your local profile directory and registers desktop/start menu shortcuts automatically.
  • Enterprise Installer (MSI): Run DevHunt_Setup.msi for system-wide administrative deployments.
NATIVE PACKAGING DETAILS

Upon installation, the client launches a native Rust-based container that silently executes the Python backend executable sidecar in the background on local port 1225 before presenting a sleek WebView workspace container.

2. Shell Automation Launcher (macOS & Linux)

On Unix-based operating systems, use the automated bootstrap script to compile the workspace environment and start the application:

# Make script executable (if needed)
chmod +x run.sh

# Run launcher
./run.sh

The launcher automatically checks the system Python version, initializes a virtual environment (backend/venv/), installs dependencies from `requirements.txt`, sets up local loopback auth tokens, and opens your default browser at `http://localhost:1225`.

3. CLI Launcher (Windows from Source)

If running from source on Windows, execute the command batch file in the root folder:

run.bat

This script replicates the shell verification checks, sets up the local Python virtual environment, and boots the Flask API server side-by-side with Vite compilation.

4. Container Deployment (Docker)

DOCKER SUPPORT COMING SOON

A unified Dockerfile and docker-compose orchestration configuration is currently in development to support fully containerized local hosting environments.

5. Startup Verification Checks

To verify that all local computer vision, file analysis, and database libraries are correctly imported inside your virtual environment, run the requirement verifier:

# Activate virtual env first, then run:
python check_requirements.py

04. Troubleshooting Guide

Common installation anomalies and developer instructions on how to bypass them immediately:

Database Lock Resolution

DATABASE LOCKED ALERT

Occurs when SQLite encounters multiple write hooks on different threads, commonly when duplicate python app.py servers run concurrently on port 1225. Force kill all active python threads using PowerShell:

Stop-Process -Name "python" -Force

Port 1225 Address Busy

PORT OCCUPIED ALERT

If the terminal prints OSError: [Errno 98] Address already in use, it means port 1225 is held by an orphaned instance. Free port 1225 in Windows using:

netstat -ano | findstr 1225
# Kill process using the PID found at the end of output line
taskkill /PID <PID> /F

Pyzbar DLL Loading Mismatches

DLL LOAD EXCEPTION

Windows builds of `pyzbar` depend on the Visual C++ Redistributable. If DLL fails to load, download and install VC Redist packages from Microsoft. The VerifierAgent will automatically skip QR checks gracefully if this DLL is missing.

05. REST API Specification

DevHunt exposes standard REST endpoints alongside stream interfaces. All parameters, JSON schemas, and streaming SSE responses are detailed below.

1. Document Forensics Endpoints

Analyze Document Check

POST /api/knowledge/<source_id>/analyze

Executes VerifierAgent, AnalystAgent, and ReporterAgent processes, caching details into `document_analyses` table.

// Response (200 OK)
{
  "success": true,
  "source_id": 16,
  "score": 72.8,
  "verdict": "⚠️ Suspicious (Review Recommended)",
  "risk_level": "MEDIUM",
  "ela_image": "receipt.pdf_ela.png",
  "dashboard_image": "receipt.pdf_dashboard.png"
}

Get Analysis Report

GET /api/knowledge/<source_id>/analysis

Fetches cached analysis checks results details.

// Response (200 OK)
{
  "success": true,
  "analyzed": true,
  "score": 72.8,
  "verdict": "⚠️ Suspicious (Review Recommended)",
  "risk_level": "MEDIUM",
  "ela_image_path": "receipt.pdf_ela.png",
  "dashboard_image_path": "receipt.pdf_dashboard.png",
  "report_json": { ... }
}

2. Chat & SSE Stream Specification

JSON Chat Query

POST /api/chat

Submit questions about an indexed document. Include source_id to fetch document RAG blocks.

// Request payload
{
  "message": "What is the PNR code of this travel ticket?",
  "session_id": "session_doc_16",
  "source_id": 16
}

Server-Sent Events (SSE) Stream

POST /api/chat/stream

Submits a message and establishes a connection header text/event-stream to stream response tokens:

data: {"text": "The"}
data: {"text": " PNR"}
data: {"text": " code"}
data: {"text": " is..."}

3. Chat History Endpoints

Fetch Session Chat Logs

GET /api/chat/history?session_id=<session_id>

Retrieves all message blocks associated with the active session identifier. Standard chats use default_session, whereas forensics document chats use the format session_doc_<source_id>.

// Response (200 OK)
{
  "success": true,
  "history": [
    {"role": "user", "content": "What is ELA?", "timestamp": "..."},
    {"role": "assistant", "content": "Error Level Analysis resaves...", "timestamp": "..."}
  ]
}

Delete Session Chat Logs

DELETE /api/chat/history?session_id=<session_id>

Clears chat logs associated with the session.

// Response (200 OK)
{
  "success": true,
  "message": "History cleared"
}

4. Quest Board (Todos) Endpoints

List Active Quests

GET /api/todos?status=<filter>&priority=<filter>

Lists todos in the SQLite database.

// Response (200 OK)
{
  "success": true,
  "todos": [
    {"id": 4, "title": "Configure SSL", "priority": "high", "status": "pending"}
  ]
}

Create New Quest

POST /api/todos

Adds a new quest item.

// Request payload
{
  "title": "Configure local virtual environment",
  "description": "Install libraries inside venv",
  "priority": "medium",
  "due_date": "2026-06-20",
  "tags": ["setup", "env"]
}

Update / Modify Quest Details

PUT /api/todos/<todo_id>

Updates priority, description, title, or status details.

Mark Quest Complete

POST /api/todos/<todo_id>/complete

Marks quest completed and logs timestamp.

Delete Quest Entry

DELETE /api/todos/<todo_id>

Removes quest item completely.

5. Learning Path Endpoints

Get Curriculum Map

GET /api/path

Fetches the learning tracks structure from learning_path.json.

Generate Dynamic Path

POST /api/path/generate

Dynamically compiles path modules based on user profiles skill settings.

Update Progression Node

PUT /api/path/update

Modifies study day status (e.g. {"day": 2, "status": "completed"}).

Fetch Today's Study Target

GET /api/path/today

Returns daily goals and active checkpoints.

6. Intel Vault (Knowledge Base) Endpoints

List Vault Sources

GET /api/knowledge

Lists metadata for all uploaded documents.

Upload File to Vault

POST /api/knowledge/upload

Uploads PDF, TXT, MD, or Image files. Automatically triggers asynchronous RAG background sync chunking.

Index URL Web Content

POST /api/knowledge/url

Extracts web content from a URL, index as RAG vectors.

Save Note to Vault

POST /api/knowledge/note

Indexes custom title and text content nodes directly.

Delete Vault Source

DELETE /api/knowledge/<source_id>

Removes RAG chunks and master sources entries.

Retrieve Source Content

GET /api/knowledge/<source_id>/content

Returns full text contents compiled from raw knowledge chunks.

7. LinkedIn Drafts Endpoints

Full CRUD interface for managing LinkedIn post drafts. Drafts can be created, updated, refined with AI, or deleted. All data is stored locally in SQLite.

List All Drafts

GET /api/linkedin/drafts

Returns all drafts sorted by created date (newest first).

Create Draft

POST /api/linkedin/drafts

// Request: { "title": "...", "content": "..." }
// Response: { "success": true, "id": 42 }

Update Draft

PUT /api/linkedin/drafts/<id>

// Request: { "title": "...", "content": "...", "status": "ready" }
// Response: { "success": true }

Delete Draft

DELETE /api/linkedin/drafts/<id>

Refine Draft with AI

POST /api/linkedin/drafts/<id>/refine

Passes existing draft content through the AI model with a LinkedIn optimization prompt.

// Response: { "success": true, "refined": "Polished post content..." }

06. Forensics Agents Checklist

During the document analyze execution, the orchestrator triggers VerifierAgent which runs a weighted 5-layer checklist check on the uploaded file:

Check Layer Weight Technical Verification Scope
Metadata Forensics 20% Checks binary streams for editing tools (Photoshop, Foxit, Nitro PDF) and mismatched creation/modification timestamps. Counts `/Prev` cross-reference pointers to identify multiple incremental saves.
Error Level Analysis (ELA) 25% Resaves image blocks at quality 75, calculating pixel error variance against the original matrix. High standard deviations (anomalous hotspots) highlight spliced elements.
Digital Signature Check 30% Checks PDF file envelopes looking for cryptographic dictionary entries: /ByteRange and /PKCS7 blocks. Flags unsigned tickets/receipts.
Text & Regulatory Check 15% Runs regex checks to locate standard formatted card IDs (Aadhaar, PAN) and tests for official administrative headers (e.g. Income Tax, DigiLocker).
QR Code Integrity Check 10% Decodes QR values via OpenCV/Pyzbar and parses hostname domains, matching them against a government allowlist (e.g. .gov.in, nic.in).

Visual Dashboard Rendering

Upon analysis completion, ReporterAgent compiles the weighted checklists scores and saves a premium vertically-stacked Matplotlib dashboard image (dimensions: 6.5x7.5 inches) containing:

  1. An **Authenticity Dial** (half-arc gauge) mapping the combined score from green (authentic) to red (tampering detected).
  2. A **Horizontal Bar Graph** displaying individual layer scores on a normalized percentage base.

07. Rule-Based Engine (Quota Safety)

Free-tier Gemini API connections are subject to strict rate limits (20 requests per day), which will trigger **429 RESOURCE_EXHAUSTED** errors when scanning multiple files or testing pipelines.

Local Rule-Based Scans

To ensure reliability, the document analyze step bypasses Gemini API calls entirely. AnalystAgent uses a fast local heuristics engine to populate fields:

  • Text Snippet Summary: Compiles summaries detailing character size and file format details.
  • Entity Extractor: Regex-based parses that pull dates, amounts, e-mails, phone numbers, Aadhaar IDs, and PANs locally.
  • Authenticity View: Resolves risk assessments based on VerifierAgent scores (Risk Levels: LOW, MEDIUM, or HIGH).
  • Zero Latency: Cuts scan times in half (from 17.20 seconds down to 8.93 seconds).

Preserved Chat Capabilities

Gemini API usage is preserved exclusively for interactive document chat sessions. Chat queries use indexed RAG blocks to answer questions while scanning remains rate-limit free.

08. Hunt Terminal (CLI)

The Hunt Terminal is an interactive console that processes system shell scripts and custom commands. Each command is detailed below:

Terminal Command Purpose & Parameters Functional Scope
hunt help List all commands Prints description list of all available commands.
hunt neofetch System specifications Displays Host OS, shell configuration, and active python version.
hunt pwd Print working directory Returns the current system directory path.
hunt ls List directory contents Lists files, folder dimensions, and child node metrics.
hunt cd <path> Change directory Changes working directory context on the server node.
hunt cat <file> View file content Reads file streams (UTF-8 safe) directly to terminal output.
hunt mkdir <name> Create directory Creates a new folder at target path.
hunt rm <file/dir> Delete file or folder Removes files or directories recursively.
hunt myip Inspect IP addresses Returns local interfaces and queries public router IP.
hunt ping <host> Ping remote host Pings host and prints response latency.
hunt dns <domain> Perform DNS query Queries nameservers for A, MX, TXT, and CNAME records.
hunt dig <domain> Detailed DNS lookup Alternative lookup query to inspect nameservers routing.
hunt whois <domain> Domain registrar queries Fetches domain registrant information and creation dates.
hunt headers <url> Inspect HTTP headers Sends request and displays raw response headers.
hunt ssl <host> SSL certificate check Audits remote SSL certificates, validating expiration dates.
hunt port <host> <port> Check target port status Validates if a specific port is open on target server.
hunt trace <host> Trace network hops Simulates network path traceroute to target host.
hunt subdomains <dom> Enumerate subdomains Scans DNS endpoints to find subdomains.
hunt git <args> Git shell wrapper Executes version controls queries (e.g. `git status`, `git log`).
hunt python <cmd> Python command exec Runs custom python code blocks inside virtual environment.
hunt calc <expr> Equation calculator Solves mathematical inputs.
hunt localports Local host ports check Audits ports open on localhost interfaces (127.0.0.1).
hunt portscan <host> TCP scanner Scans active target ports (e.g. 21, 22, 80, 443, 8080).
hunt quest <args> Manage quests Lists, adds, or completes to-dos via database hooks.
hunt keys API key manager check Checks status and cooldown counters of the key manager pool.
hunt memory AI facts list Lists learned developer facts cached in memory.
hunt backup Full backup export Exports database entries and settings JSON.
hunt history Chat sessions history Lists active conversations in database.
hunt notifications System warning warnings Displays list of warnings and errors logged.
hunt stats Analyze token & API stats Displays aggregated token usage, model workload distributions, and key metrics.

In-Depth Command Index

Each terminal command is mapped below with its specific flags, operational behavior, parameters, and example output formats.

◎ 01. hunt help

Syntax: hunt help [command]

Lists all available terminal commands. If a command name is provided as an argument, it pulls specific usage text and available flags from the command-level help mapper.

$ hunt help ls
Usage: hunt ls [options] [path]

Lists directory contents in a cross-platform format.

Options:
  -a          Show hidden files (filenames starting with '.')
  -l          Display detailed listing (type, size, last modified)

◎ 02. hunt neofetch

Syntax: hunt neofetch

Displays system details about the active DevHunt server node. It compiles Host OS details, kernel version, shell runtime, active CPU core metrics, memory usage, and active workspace paths, side-by-side with a premium ASCII logo.

$ hunt neofetch
      /\_/\      guest@devhunt
     ( o.o )     -------------------
      > ^ <      OS: Windows 10 (AMD64)
    /  | |  \    Kernel: 10.0.19045 Build 19045
   (  |_|_|  )   Shell: Hunt Terminal v1.0
    \_______/    CPU: AMD Ryzen 5 (12 Cores)
   DEVHUNT NODE  Memory: 8192MB / 16384MB (50%)
                 Workspace Path: e:\git-projects\DevHunt

◎ 03. hunt pwd

Syntax: hunt pwd

Prints the current absolute directory path where the terminal session is operating. Used to check context state before executing relative file paths.

$ hunt pwd
e:\git-projects\DevHunt

◎ 04. hunt ls

Syntax: hunt ls [options] [path]

Lists contents of the active directory in a clean, colored format (directories in cyan, executables/scripts in green). If path is supplied, scans the target path.

Options:

  • -a : Include hidden files starting with a dot (e.g. .gitignore).
  • -l : Long list format displaying permissions, file sizes, last modified times, and names.
$ hunt ls -l
-rw-r--r--  1 guest staff     1048 Jun 13 11:17 config.py
drwxr-xr-x  1 guest staff        - Jun 13 11:17 core/
-rwxr-xr-x  1 guest staff     5514 Jun 13 11:17 run.bat*

◎ 05. hunt cd

Syntax: hunt cd [path]

Changes the working directory of the terminal session. If executed without arguments, returns to the project workspace root. It warns the user if they navigate outside the DevHunt workspace boundaries.

$ hunt cd backend
Switched session context to e:\git-projects\DevHunt\backend

◎ 06. hunt cat

Syntax: hunt cat <filename>

Reads and displays the text contents of a file in the terminal. The output is bounded at 5,000 characters to prevent crashing browser page rendering.

$ hunt cat config.py
import os
UPLOADS_DIR = "uploads"
KEYS_PATH = "data/keys.json"

◎ 07. hunt mkdir

Syntax: hunt mkdir <directory_name>

Creates a new directory folder at the specified target path. Creates intermediate directories automatically if they do not exist.

$ hunt mkdir temp_data
Directory successfully created: temp_data

◎ 08. hunt rm

Syntax: hunt rm [options] <path>

Deletes a file or directory. Directory deletion requires the recursive option flag.

Options:

  • -r : Recursive deletion. Required to delete directories and their sub-contents.
$ hunt rm -r temp_data
Successfully deleted directory tree: temp_data

◎ 09. hunt myip

Syntax: hunt myip

Performs an external network check to retrieve the server's public IP address, ISP provider name, ASN, routing city, country, coordinates, and local timezone offset.

$ hunt myip
NODE NETWORK COORDINATES:
  Public IP Address : 203.0.113.50
  ISP/Provider      : Reliance Jio Infocomm (AS55836)
  Location          : Mumbai, Maharashtra, India
  Coordinates       : Lat: 19.076, Lon: 72.8777
  Timezone          : Asia/Kolkata (Offset: +05:30)

◎ 10. hunt ping

Syntax: hunt ping <host> [options]

Checks network latency to a remote server. Because standard ICMP packets require administrative root access, this command performs TCP handshake timing checks against target ports.

Options:

  • -c <count> : Number of handshake tests to run (default: 4).
  • -p <port> : Target TCP port to connect to (default: 80).
$ hunt ping google.com -c 3
HUNT PING google.com (142.250.190.46) using port 80/TCP:
Testing 3 handshakes...
  Connection from 142.250.190.46: seq=1 time=24.15 ms status=CONNECTED
  Connection from 142.250.190.46: seq=2 time=22.80 ms status=CONNECTED
  Connection from 142.250.190.46: seq=3 time=23.45 ms status=CONNECTED

--- google.com ping statistics ---
  3 packets transmitted, 3 received, 0.0% packet loss
  rtt min/avg/max = 22.80/23.47/24.15 ms

◎ 11. hunt dns (and hunt dig)

Syntax: hunt dns <domain> [record_type]

Queries DNS records for a domain using Google's secure DNS-over-HTTPS API. Displays records, TTL values, and response IP metadata.

Record Types: A, AAAA, MX, TXT, NS, CNAME (default is A).

$ hunt dns github.com MX
DNS lookup for github.com (Record Type: MX)
Resolving via secure DNS-over-HTTPS...
TYPE   TTL      DATA
--------------------------------------------------
MX     3600     10 mxb-01.play.spf.protonmail.ch.
MX     3600     20 mxb-02.play.spf.protonmail.ch.

◎ 12. hunt whois

Syntax: hunt whois <domain>

Queries public registrar databases to find registration ownership details, name servers, creation dates, and expiration intervals.

$ hunt whois google.com
WHOIS Query for 'google.com' via port 43 socket connection:
Connecting to whois.iana.org...
Redirecting query to registry server: 'whois.verisign-grs.com'...

DOMAIN SUMMARY:
  Domain Name       : google.com
  Registrar         : MarkMonitor Inc.
  Created On        : 1997-09-15T04:00:00Z
  Expires On        : 2028-09-14T04:00:00Z
  Name Servers      : ns1.google.com, ns2.google.com

◎ 13. hunt headers

Syntax: hunt headers <url>

Fetches HTTP response headers from a web address and verifies critical security settings such as Content Security Policy (CSP), HSTS, and Frame protections.

$ hunt headers google.com
Checking headers for https://google.com...
Response received in 120.45 ms with Status Code: 200

HTTP HEADERS:
  content-type: text/html; charset=ISO-8859-1
  cache-control: private, max-age=0
  x-frame-options: SAMEORIGIN
  x-xss-protection: 0

◎ 14. hunt ssl

Syntax: hunt ssl <host>

Establishes a TLS connection to check a domain's SSL/TLS certificate chain. It audits the certificate's issuer, cryptographic strength, common name validity, and expiration details.

$ hunt ssl google.com
SSL Certificate Audit for google.com:
  Common Name  : *.google.com
  Issuer       : Google Trust Services LLC
  Validity     : Valid (Expires in 58 days)
  Algorithm    : sha256WithRSAEncryption

◎ 15. hunt port

Syntax: hunt port <host> <port>

Checks if a specific TCP port is open and listening on a target host. Uses socket connection timeouts to assess port connectivity quickly.

$ hunt port localhost 1225
Port 1225 is OPEN on localhost

◎ 16. hunt trace

Syntax: hunt trace <host>

Simulates a network traceroute path to a target host, checking hop latency and attempting to resolve geolocations for each gateway node.

$ hunt trace 8.8.8.8
Tracing route to 8.8.8.8 (dns.google):
  Hop 1: 192.168.1.1 (1.24 ms)
  Hop 2: 10.0.0.1 (10.50 ms)
  Hop 3: 8.8.8.8 (22.10 ms) [Target Reached]

◎ 17. hunt subdomains

Syntax: hunt subdomains <domain>

Scans for active subdomains of a target domain passively by resolving common DNS host prefixes (e.g. mail, api, dev, blog) against the domain.

$ hunt subdomains github.com
Scanning subdomains for github.com...
  Found: api.github.com
  Found: pages.github.com
  Found: status.github.com

◎ 18. hunt git

Syntax: hunt git <arguments>

A wrapper command that runs native git commands securely in the current workspace. Allows tracking modifications, staging changes, or checking logs without leaving the console.

$ hunt git status
On branch main
Your branch is up to date with 'origin/main'.

Changes not staged for commit:
  modified:   frontend/docs.html

◎ 19. hunt python

Syntax: hunt python -c "<code>"

Runs a single Python command line statement within the active virtual environment context. Returns standard output or syntax errors immediately.

$ hunt python -c "import sys; print(sys.version)"
3.10.11 (tags/v3.10.11:7d4061c, May 17 2023, 20:06:55)

◎ 20. hunt calc

Syntax: hunt calc <expression>

Evaluates math expressions safely without allowing execution injection vectors. It supports trigonometric functions, logarithms, roots, and standard arithmetic operations.

$ hunt calc "sqrt(144) * log2(256)"
Result: 96.00

◎ 21. hunt localports

Syntax: hunt localports [options]

Lists active network sockets, listening ports, and connection states on the localhost machine. Helps diagnose port occupancy conflicts.

Options:

  • -a : Show all connections (including established active sockets).
  • -l : Show listening sockets only (default behaviour).
$ hunt localports
ACTIVE LOCAL LISTENERS:
  Proto  Local Address          State
  TCP    127.0.0.1:1225         LISTENING
  TCP    127.0.0.1:27017        LISTENING

◎ 22. hunt portscan

Syntax: hunt portscan <host> [options]

Scans TCP ports on a host to identify active listening services. Scans are run in parallel to minimize wait times.

Options:

  • -r <range> : Specific port ranges (e.g. 20-100) or search profiles (e.g. common to test ports 21, 22, 23, 25, 53, 80, 443, 8080).
  • -t <timeout> : Socket timeout duration in seconds per port connection (default: 0.5s).
$ hunt portscan localhost -r common
Scanning common ports on localhost...
  Port 80/TCP   : CLOSED
  Port 443/TCP  : CLOSED
  Port 1225/TCP : OPEN (Flask server)

◎ 23. hunt quest

Syntax: hunt quest [add <title> [priority] [desc] | done <id> | rm <id>]

Provides command-line management for the SQLite-backed Quest Board. Running the command without arguments lists all active quest items in a tabular format.

$ hunt quest add "Complete Docs" high "Write detailed feature walkthroughs"
Quest successfully added! ID: 12

$ hunt quest
ID  TITLE            PRIORITY  STATUS
------------------------------------------
12  Complete Docs    high      backlog
08  Database fix     medium    in_progress

◎ 24. hunt keys

Syntax: hunt keys [list | add <key> [label] | rm <id> | test <id>]

Interacts with the Key Manager to register, audit, test, or delete Gemini API keys. Displays rate-limit metrics and cooldown trackers.

$ hunt keys list
ID   KEY PREFIX  LABEL         STATUS    REQUESTS (24H)
-------------------------------------------------------
1    AIzaSyB...  Gemini Key 1  Active    14 / 20
2    AIzaSyD...  Gemini Key 2  Active    0 / 20

◎ 25. hunt memory

Syntax: hunt memory [refine | clear]

Lists, refines, or clears long-term cognitive developer facts cached by the AI assistant during chat interactions.

$ hunt memory
AI CONSOLIDATED DEVELOPER MEMORIES:
  - User prefers dark mode.
  - Python project uses Flask backend at port 1225.

◎ 26. hunt backup

Syntax: hunt backup export

Exports all SQLite tables (quests, key statuses, chat history metadata) and local config JSON files into a consolidated backup directory structure.

$ hunt backup export
Backing up DevHunt Database...
Backing up Configuration profiles...
Backup file successfully created: backend/data/backup_20260613.json

◎ 27. hunt history

Syntax: hunt history [limit]

Retrieves the message logs of the active chat session from the database, helping developers debug recent prompts and token flows.

$ hunt history 2
[2026-06-13 11:15] User: How is ELA computed?
[2026-06-13 11:15] AI: ELA resaves image blocks at 75% quality...

◎ 28. hunt notifications

Syntax: hunt notifications [list | read [all | <id>] | detail <id>]

Lists, displays, or marks notifications and system log messages. Helps monitor background scanner alerts or database locks.

$ hunt notifications list
ID   SEVERITY  MESSAGE                              READ
--------------------------------------------------------
1    WARNING   Gemini API Key 1 hit quota 429 limit  No
2    SUCCESS   Database schema check completed       Yes

◎ 29. hunt stats

Syntax: hunt stats

Aggregates conversation messages from the SQLite database to analyze approximate token counts, key workloads, and model choices.

$ hunt stats
DEVHUNT TOKEN & API METRICS ANALYSIS
==================================================
  Total Conversations Logged : 32 exchanges
  Total Approximate Tokens   : 14502 tokens

MODEL USAGE DISTRIBUTION:
  MODEL NAME                | REQUESTS   | EST. TOKENS 
  -----------------------------------------------------
  gemini-3.1-flash-lite     | 24         | 8940        
  gemini-2.5-flash          | 8          | 5562        

API KEY WORKLOAD ANALYSIS:
  KEY LABEL / MASKED        | REQUESTS   | EST. TOKENS 
  -----------------------------------------------------
  Primary Gemini Key        | 30         | 13802       
  Backup Key 2              | 2          | 700         

* Token approximations are estimated as character length divided by 4.

Host CLI Terminal Launcher

DevHunt provides native launcher scripts (hunter.bat for Windows and hunter for Unix/macOS) to interface with the DevHunt CLI engine directly from your system shell.

Usage:

Run the launcher script with the -dt (direct terminal) flag from your command line to launch an interactive container shell context on your host system:

$ hunter -dt
guest@devhunt:~$ 

09. Workspace IDE & Themes

The DevHunt Workspace IDE transforms the traditional RAG cognitive helper dashboard into a fully featured offline developer center. It introduces real-time file tree traversal, workspace document editing, custom line styling, and a multi-theme environment.

File Explorer Tree

The left side layout hosts a collapsible panel rendering directory listings dynamically from the local workspace. Built recursive traversal logic automatically filters out build, configuration, and environment files such as .git, node_modules, venv, and __pycache__. Clicking folders opens/closes sub-trees locally, and clicking individual files retrieves text contents for code auditing.

Integrated Workspace Editor

The main workspace tab hosts a charcoal-colored monospaced text editor pane featuring:

  • Line Numbers Indicator: Scroll-synchronized layout tracking document heights.
  • Keyboard Hook Tab Override: Pressing Tab inserts 4 space characters instead of shifting focus elements.
  • Instant disk syncing: Save modifications instantly back to disk with the Save button or Ctrl+S keyboard shortcuts.
  • Centered Window Title: A central title bar dynamically displays the open relative file path (e.g. frontend/app.js - DevHunt) or defaults to DevHunt when cleared.
  • VS Code-Style Sidebar Toggling: Clicking an active Activity Bar icon toggles the File Explorer sidebar visibility; clicking another icon switches panels and expands the sidebar.
  • Collapsible File Explorer Sidebar Visibility: The File Explorer sidebar is restricted to only show/open when the Code Editor panel is active. Switching to any other panel (AI Assistant, stats, settings, etc.) automatically collapses/hides the explorer sidebar to keep the workspace clean.
  • Inline New File Creator: Avoids browser-level prompt() dialogues. Click the + button in the file explorer sidebar header or press Ctrl+N to render an inline text input box at the top of the tree. Type the filename and press Enter to save an empty file to disk via POST /api/ide/file, refresh the file tree explorer, and load it in the editor. Pressing Escape or blurring cancels.
  • Keyboard Shortcut (⌘K / Ctrl+K): Instantly focuses the AI Assistant chat input (#chat-input).
  • Collapsible Bottom Terminal Pane: Pressing the Terminal button in the editor header menu splits the main text editing workspace horizontally to display an integrated container shell CLI. This terminal panel maintains unified navigation context and command history.
  • Default Workspace Protection (Isolation): Launches in a safe empty_workspace/ subdirectory by default to isolate project resources and prevent traversal until a specific local folder is explicitly loaded via the File menu or keyboard shortcuts.

Backend IDE REST API endpoints

HTTP Method Endpoint Path Query / Payload Description
GET /api/ide/files None Recursively reads files starting at workspace roots, building a JSON tree hierarchy.
GET /api/ide/file ?path=relative_path Validates boundaries against traversal attacks, reads, and returns the raw file string.
POST /api/ide/file { "path": relative, "content": string } Saves incoming content edits directly back to the specified relative file path.

Multi-Theme Control System & Accent Polishing

DevHunt implements dynamic theme modifications switching color variables under body tags:

  • Industrial Slate (Default): Pervasive dark slate and charcoal tones, professional blue borders, and low-contrast labels to reduce eye fatigue.
  • Cyberpunk Neon: Glowing accent rules, purple card outlines, cyan badges, and a custom canvas background particle thread.
  • Minimalist Light (Polished): A clean, premium white/light-gray theme using a premium Indigo accent (#4f46e5) instead of cyan. All inputs, textareas, and selects feature a white background with dark charcoal text. User chat bubbles are solid Indigo with white text, and AI bubbles are clean light gray. Quest Kanban cards are set to solid white backgrounds for readability against columns.
  • Theme-Aware Charts: The analytics canvases dynamically adapt to the Light theme. They check body.theme-light and paint grid lines, borders, labels, and text colors in dark, legible tones automatically.

To optimize performance, when the Slate or Light theme is active, the backend canvas animation thread is automatically bypassed, saving local CPU cycles. Theme selections automatically persist in SQLite database profiles and local cache arrays.

10. LinkedIn Post Drafts

The LinkedIn Post Drafts module is a native workspace panel that captures LinkedIn-oriented content generated during AI chat sessions and organizes it as a private draft notebook. It integrates AI detection with a full CRUD management interface for drafts.

How It Works

When you chat with the AI Assistant and ask it to create a LinkedIn post, the system automatically detects relevant content in the assistant's response. A Save to LinkedIn Drafts button appears directly on the AI message bubble, allowing you to one-click save the content without leaving the chat.

All saved drafts are stored persistently in the local SQLite database and are accessible via the LinkedIn Drafts tab in the left activity bar.

LinkedIn Drafts Panel

The LinkedIn Drafts panel features two views side-by-side:

  • Draft List (Left): A chronological list of saved drafts with dates, titles, and status labels (Draft / Ready). Organized by date headers.
  • Draft Detail (Right): A full read-and-edit view showing the post content, a character count indicator, refine options, and action buttons.

Draft Actions

  • ✦ Refine with AI: Sends the draft content back to the AI Assistant with a LinkedIn-optimization prompt, generating improved text that can replace the original.
  • Copy to Clipboard: One-click copy for pasting directly into LinkedIn's post editor.
  • Mark as Ready: Toggles draft status from Draft → Ready to track which posts are approved for publishing.
  • Delete Draft: Permanently removes a single draft entry.
  • Add Draft Manually: Opens a new draft form in the panel for creating drafts from scratch without AI input.

AI Chat Auto-Detection

The detection logic works by scanning the AI assistant's response text for LinkedIn-related keywords, including:

  • Trigger phrases: LinkedIn post, post on LinkedIn, LinkedIn draft, Here are some LinkedIn post options
  • Structured sections: Content blocks starting with Option 1:, Post:, or similar LinkedIn post format headers

When a match is detected, a LinkedIn button is injected into the message bubble footer. Clicking it extracts the draft text and opens a save confirmation dialog showing a title field and the content preview.

API Endpoints

List All Drafts

GET /api/linkedin/drafts

Returns all LinkedIn drafts ordered by created date descending.

// Response (200 OK)
{
  "success": true,
  "drafts": [
    {
      "id": 1,
      "title": "Celebrating 1 Year at DevHunt",
      "content": "Excited to share...",
      "status": "draft",
      "created_at": "2026-06-14 10:30:00"
    }
  ]
}

Create a Draft

POST /api/linkedin/drafts

// Request body (JSON)
{ "title": "My Post Title", "content": "Full post text..." }

// Response (201 Created)
{ "success": true, "id": 42 }

Update a Draft

PUT /api/linkedin/drafts/<id>

// Request body (JSON)
{ "title": "Updated Title", "content": "Updated content...", "status": "ready" }

Delete a Draft

DELETE /api/linkedin/drafts/<id>

// Response
{ "success": true }

Refine a Draft

POST /api/linkedin/drafts/<id>/refine

Sends the draft content to the AI model with a LinkedIn optimization prompt. Returns refined post copy.

// Response (200 OK)
{
  "success": true,
  "refined": "✨ Polished LinkedIn post text here..."
}

Settings Toggle

The LinkedIn Drafts feature can be toggled from the Settings tab under Feature Access Toggles. Disabling it hides the LinkedIn Drafts tab from the activity bar and panel navigation. Enabling it restores the tab and reloads the drafts list automatically.

Setting Location Effect
toggle-feat-linkedin Settings → Feature Access Hides/shows the LinkedIn Drafts tab in the workspace navigation
Chat save button AI Assistant chat bubbles Appears automatically on LinkedIn-detected responses; click to save draft

11. Contributing & Support

DevHunt is open-source. We welcome contributions to optimize the forensic engines and add more CLI tools.

GitHub Issue Tracker

If you encounter database lockups, rate limit errors, or missing DLLs, please create a ticket in our issue tracker:

Raise GitHub Issue

Found a bug, rate limits, or library loading issues? Create a ticket directly in our repository tracker.

Report Bug / Ask Help ↗

Contribute Code

Fork the repository, create a branch, write clean code, and submit a Pull Request. We review contributions daily.

Create Pull Request ↗

Version Changelog

A chronological history of releases and security patches implemented in the DevHunt workspace:

Version Date Key Enhancements & Security Fixes
v1.0.3-beta.1 June 27, 2026
  • Security Hardening: Mitigated CodeQL path expression warnings by implementing absolute path canonicalization and character whitelists.
  • Dependency Management: Resolved Tauri dependency conflicts by force-tracking and locking node dependencies.
  • Error Handling: Fixed potential information exposure through exceptions in Flask read/write endpoints.
v1.0.2 June 23, 2026
  • Initial Beta Release: Setup of core modules including AI Cognitive Assistant, Hunt Path, Quest Board, and Intel Vault.
GITHUB REPOSITORY: hitehsolanki2006/DevHunt ↗ AUTHOR: Hitesh Solanki · Hunter Group