devmine
v1.4.32
Published
Autonomous desktop AI agent — 22 tools, multi-provider LLM, self-learning skills, sub-agent parallelism, mistake memory. Runs locally with OpenAI, Anthropic, DeepSeek, Ollama or any OpenAI-compatible API.
Maintainers
Readme
DevMine Desktop
Универсальный AI-агент для десктопа и сервера — работает с кодом, данными, физикой, математикой и любыми задачами.
Встроенная поддержка Telegram, 28+ инструментов, автономные skills, суб-агенты, Pattern DNA, Shadow Compilation и Digital Mine UI.
Возможности
Ядро агента
- Универсальная экспертиза — не только код: физика, математика, game design, data analysis, архитектура
- 28+ встроенных инструментов — bash, file read/write/edit, grep, glob, web search/fetch, memory, diagnose, LSP, agent (суб-агенты), remote SSH, computer use, worktree и др.
- Автономные Skills — автоматический подбор и создание навыков через
skill_list/skill_execute/skill_create - Суб-агенты — параллельное выполнение независимых задач через
agenttool с Promise.allSettled() - Pattern DNA — автоматическое извлечение стиля кода проекта (naming, imports, error handling, frameworks) и инъекция в system prompt
- Error Memory Bank — самообучающаяся память ошибок модели с Jaccard similarity fingerprinting и 7-дневным half-life decay
- Shadow Compilation v2 — фоновая компиляция с авто-исправлением (semicolons, unused vars, missing .js extensions, implicit any) до 3 итераций без участия модели
- Context Phoenix — 5-уровневая tier-based компакция контекста (none → trim → compact → aggressive → nuclear) с авто-восстановлением при overflow
- God Mode — каскадный эскалационный движок с 3 уровнями (Unchained → Sovereign → Apex)
Telegram Gateway
- Полноценный бот — polling (dev) и webhook (production) через Bot API
- Mining Dashboard — живой дашборд в Telegram с фазами (analyzing → thinking → tooling → writing → done), progress bar ▓▓▓▓░░, tool timeline, token counter
- Dual-message система — dashboard message (редактируется каждые 2с) + streaming response message
- Auto-Continue — автоматическое продолжение длительных задач (до 24 циклов по 60 мин = 24 часа)
- Команды:
/start,/help,/reset,/status,/stop - Авторизация — по Telegram user ID, поддержка каналов и групп с configurable requireMention
- Безопасность — webhook secret verification, rate limiting (2 concurrent per user), 1MB body limit, SSRF защита
- Session persistence — JSON file persistence с debounced save, TTL-based cleanup, per-channel-peer scope
UI режимы
Desktop (Tauri v2)
- Нативное десктопное приложение с React UI
- Setup wizard с выбором провайдера и вводом API ключа
- Мультимодальный ввод: изображения, PDF, DOCX, XLSX, PPTX, TXT, CSV, JSON
- Tool Call Display с mining-иконками, живым таймером, badge результатов
- Thinking indicator с анимированными точками
TUI (Ink/React Terminal UI)
- Digital Mine тема — золотая/медная палитра (#D4A847, #CD7F32, #50C878)
- Activity Bar — горизонтальная полоса с фазами работы агента
- Tool Timeline — последние 3 инструмента с иконками статуса
- Markdown rendering (headers, bullets, bold, code fences, separators)
- SpinnerStore (external store) — анимация без лишних re-рендеров
- InkErrorBoundary + graceful shutdown (SIGINT/SIGTERM)
REPL (Readline)
- Multiline input (
\в конце строки) - Slash-команды:
/help,/clear,/model,/status,/resume,/sessions - Digital Mine ANSI formatting (gold/amber/copper)
- Double Ctrl+C для exit
Провайдеры моделей
- OpenAI (GPT-4o, o1, o3 и др.)
- Anthropic (Claude 4 Sonnet, Opus)
- Google Gemini (2.5 Flash/Pro)
- GLM (ChatGLM)
- Ollama (локальные модели)
- OpenRouter (aggregator — доступ к 200+ моделям)
- MCP (Model Context Protocol) — подключение внешних tools через stdio/SSE
Безопасность
- Plan Mode — режим планирования без выполнения изменений
- Verification Gate — предварительная проверка до записи файлов
- Rate Limiting — ограничение частоты вызовов инструментов
- SSRF Protection — блокировка private IPs в web_fetch
- File Validation — проверка path/content в file_write
- Tool Metadata — risk levels (low/medium/high) для каждого инструмента
Архитектура
┌─────────────────────────────────────────────────────────┐
│ DevMine Desktop │
├─────────┬──────────┬──────────┬────────────────────────┤
│ Desktop │ TUI │ REPL │ Telegram Gateway │
│ (Tauri) │ (Ink) │(readline)│ (HTTP + Bot API) │
├─────────┴──────────┴──────────┴────────────────────────┤
│ Agent Core │
│ ┌────────────┬──────────────┬───────────────────────┐ │
│ │ Agent Loop │ Query Engine │ Streaming Tool Exec │ │
│ └────────────┴──────────────┴───────────────────────┘ │
├─────────────────────────────────────────────────────────┤
│ ┌──────────┬──────────┬──────────┬──────────────────┐ │
│ │ 28 Tools │ Services │ Prompts │ Connect Adapters │ │
│ └──────────┴──────────┴──────────┴──────────────────┘ │
├─────────────────────────────────────────────────────────┤
│ ┌──────────┬──────────┬──────────┬──────────────────┐ │
│ │ Pattern │ Error │ Shadow │ Context Phoenix │ │
│ │ DNA │ Memory │Compiler │ (Compaction) │ │
│ └──────────┴──────────┴──────────┴──────────────────┘ │
├─────────────────────────────────────────────────────────┤
│ MCP Protocol │ Memory │ Skills │
└─────────────────────────────────────────────────────────┘Быстрый старт
Установка (Desktop)
# Скачать последнюю версию с GitHub Releases
# Windows: DevMine-Setup-1.2.0.exe
# macOS: DevMine-1.2.0.dmg
# Linux: devmine_1.2.0_amd64.debУстановка (CLI / Server)
npm install -g devmine-desktop
# или из исходников
git clone https://github.com/cliskill/devmine-desktop.git
cd devmine-desktop
npm install
npm run buildЗапуск
# Desktop (Tauri)
npm run tauri:dev
# CLI — автоматически выберет лучший UI
devmine
# CLI — форсированный TUI
devmine --tui
# CLI — форсированный REPL
devmine --repl
# Server — Telegram Gateway
devmine serve --config ./devmine-server.jsonКонфигурация
Desktop / CLI (.devminerc.json)
{
"activeProvider": "openai",
"providers": {
"openai": {
"apiKey": "sk-...",
"model": "gpt-4o",
"baseUrl": "https://api.openai.com/v1",
"maxTokens": 16384,
"temperature": 0.7
},
"anthropic": {
"apiKey": "sk-ant-...",
"model": "claude-sonnet-4-20250514",
"maxTokens": 16384
},
"ollama": {
"baseUrl": "http://localhost:11434",
"model": "llama3"
}
},
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/dir"]
}
}
}Telegram Gateway (devmine-server.json)
{
"server": {
"port": 8787,
"host": "0.0.0.0"
},
"telegram": {
"botToken": "123456:ABC-...",
"polling": false, // true = polling (dev), false = webhook (prod)
"webhookUrl": "https://your.domain",
"webhookSecret": "your-secret", // verification secret
"allowAll": false, // restrict access
"allowFrom": [123456789], // authorized Telegram user IDs
"channels": [
{
"id": "-1001234567890",
"requireMention": false // bot responds to all messages in group
}
],
"streaming": {
"mode": "partial",
"textChunkLimit": 4000
}
},
"agent": {
"model": "anthropic/claude-sonnet-4-20250514",
"maxTokens": 16384,
"maxTurns": 50,
"maxContextTokens": 256000,
"systemPrompt": "You are a helpful assistant.",
"workspacePath": "/path/to/workspace" // IDENTITY.md, SOUL.md, AGENTS.md, TOOLS.md
},
"providers": [
{
"name": "main",
"format": "anthropic", // openai-compatible | anthropic | glm
"apiKey": "sk-ant-...",
"model": "claude-sonnet-4-20250514",
"baseUrl": "https://api.anthropic.com"
}
],
"session": {
"ttlMinutes": 1440, // 24 часа
"maxHistory": 200,
"scope": "per-channel-peer" // изоляция сессий
}
}28+ инструментов
| # | Инструмент | Категория | Risk | Описание |
|---|-----------|-----------|------|----------|
| 1 | bash | system | medium | Выполнение shell команд |
| 2 | file_read | file | low | Чтение файлов с line ranges |
| 3 | file_edit | file | medium | Точечное редактирование файлов |
| 4 | file_write | file | high | Создание/перезапись файлов |
| 5 | glob | search | low | Поиск файлов по паттерну |
| 6 | grep | search | low | Поиск по содержимому файлов |
| 7 | search_symbol | search | low | Поиск определений (functions, classes, types) |
| 8 | web_search | network | low | Поиск в интернете |
| 9 | web_fetch | network | medium | Чтение URL |
| 10 | memory | memory | low | Персистентная память между сессиями |
| 11 | diagnose | system | low | Диагностика ошибок и project health |
| 12 | agent | agent | medium | Суб-агенты для параллельного выполнения |
| 13 | skill_list | skill | low | Список доступных навыков |
| 14 | skill_execute | skill | medium | Выполнение навыка |
| 15 | skill_create | skill | medium | Создание нового навыка |
| 16 | todo_write | ui | low | Управление задачами |
| 17 | lsp | search | low | Language Server Protocol (go_to_definition, find_references, hover) |
| 18 | computer_use | system | high | Взаимодействие с экраном через accessibility |
| 19 | remote | system | high | SSH сессии и удалённое выполнение |
| 20 | worktree | system | medium | Git worktree управление |
| 21 | background_bash | system | medium | Фоновые shell процессы |
| 22 | task_list | system | low | Список фоновых задач |
| 23 | task_output | system | low | Результат фоновой задачи |
| 24 | task_stop | system | medium | Остановка фоновой задачи |
| 25 | tool_search | search | low | Поиск по инструментам |
| 26 | enter_plan_mode | system | low | Переход в режим планирования |
| 27 | exit_plan_mode | system | low | Выход из режима планирования |
| 28 | file_outline | file | low | Структура файла (outline) |
Сервисы
Pattern DNA (src/services/pattern-dna.ts)
Автоматическое извлечение стиля кода проекта:
- Naming conventions (camelCase, snake_case, PascalCase)
- Import patterns (relative, barrel, deep)
- Error handling (try/catch, Result, throws)
- Test patterns (describe/it, test())
- Export style (named, default, barrel)
- Frameworks detection (React, Express, Tauri)
- Styling approach (CSS modules, Tailwind, styled)
- Генерация компактного DNA prompt (~300 tokens)
Error Memory Bank (src/services/error-memory.ts)
Самообучающаяся память ошибок:
- Jaccard similarity fingerprinting для дедупликации
- 7-дневный half-life decay — старые ошибки забываются
- Max 500 entries с auto-eviction
- JSON persistence
- Генерация warning prompt для system prompt
Shadow Compilation v2 (src/services/shadow-compiler.ts)
Фоновая компиляция с авто-исправлением:
- Silent compilation loop — пользователь не видит промежуточных ошибок
- Auto-fixes: semicolons, unused vars, missing
.jsextensions, implicit any - До 3 fix итераций без round-trip к модели
- Запись failures в Error Memory Bank
Context Phoenix (src/ui/lib/agent-compaction.ts)
5-уровневая tier-based компакция:
| Tier | Trigger | Действие | |------|---------|----------| | 0 (none) | < 75% контекста | Нет компакции | | 1 (trim) | 75–85% | Strip media + summarize tool results | | 2 (compact) | 85–95% | Strip + summarize + compact messages | | 3 (aggressive) | 95–100% | Keep only 6 exchanges | | 4 (nuclear) | > 100% | Keep only 3 exchanges |
Skills System
DevMine автоматически подбирает и использует навыки:
21 встроенный skill:
| Категория | Skills | |-----------|--------| | Code | Code Review, Smart Refactor, Test Generator, Explain Code | | Security | Security Audit (OWASP) | | Docs | Doc Generator | | Performance | Performance Analyzer | | Mode | God Mode (3-tier escalation) | | Design | Animated Video, Interactive Prototype, Make a Deck, Make Tweakable, Frontend Design, Wireframe | | Export | Export PPTX (Editable), Export PPTX (Screenshots), Save as PDF, Save as Standalone HTML, Send to Canva | | Workflow | Create Design System, Handoff to Code |
Автоматическое поведение:
- Анализ задачи →
findMatchingSkills()(keyword + fuzzy Levenshtein) - Scoring: name (0.4) + tag (0.2) + category (0.15) + desc keyword (0.1)
- Если нет подходящего skill →
skill_createавтоматически - Если задача сложная → делегирование суб-агентам через
agenttool
Структура проекта
devmine-desktop/
├── src/ # TypeScript source (297 .ts + 44 .tsx = 341 files, 50 522 lines)
│ ├── bootstrap/ # CLI entry point (1 file)
│ ├── config/ # Конфигурация и Zod-схемы (6 files)
│ ├── connect/ # Provider adapters (14 files)
│ │ ├── anthropic-adapter.ts # Anthropic Claude
│ │ ├── generic-adapter.ts # OpenAI-compatible
│ │ ├── glm-adapter.ts # ChatGLM
│ │ ├── ollama-adapter.ts # Ollama local
│ │ └── types.ts # ContentBlock types
│ ├── core/ # Agent core (7 files)
│ │ ├── loop.ts # Agent loop engine
│ │ └── query-engine.ts # Query execution
│ ├── extensions/ # Расширения (10 files)
│ │ └── skill-registry.ts # Skill matching engine
│ ├── hooks/ # React hooks (5 files)
│ ├── infra/ # Infrastructure (4 files)
│ ├── mcp/ # MCP Protocol (6 files)
│ │ └── mcp-tool-adapter.ts # MCP → Tool bridge
│ ├── memory/ # Memory system (9 files)
│ ├── prompts/ # System prompts (4 files)
│ ├── remote/ # SSH remote (2 files)
│ ├── safety/ # Safety & permissions (5 files)
│ ├── server/ # Telegram Gateway (6 files)
│ │ ├── gateway.ts # HTTP server + Telegram pipeline
│ │ ├── telegram-bot.ts # Bot API integration
│ │ ├── session-store.ts # Session management
│ │ ├── server-config.ts # Zod config schema
│ │ ├── mining-dashboard.ts # Live progress dashboard
│ │ └── entry.ts # CLI: devmine serve
│ ├── services/ # Core services (64 files)
│ │ ├── pattern-dna.ts # Code style extraction
│ │ ├── error-memory.ts # Error memory bank
│ │ ├── shadow-compiler.ts # Shadow compilation
│ │ ├── god-mode.ts # God Mode engine
│ │ ├── orchestrator.ts # Unified orchestrator
│ │ ├── plan-mode.ts # Plan mode state machine
│ │ ├── adaptive-strategy.ts # Adaptive strategy selector
│ │ ├── streaming-tool-executor.ts # Parallel tool execution
│ │ ├── tool-pool.ts # Tool pooling
│ │ ├── cost-tracker.ts # Token cost tracking
│ │ └── ... # +53 more services
│ ├── swarm/ # Swarm coordination (4 files)
│ ├── tasks/ # Task management (5 files)
│ ├── tools/ # Tool system (37 files)
│ │ ├── builtins/ # 28 built-in tools
│ │ │ ├── agent-tool.ts # Sub-agent system
│ │ │ ├── bash-tool.ts # Shell execution
│ │ │ ├── file-*.ts # File operations
│ │ │ ├── grep-tool.ts # Content search
│ │ │ ├── web-*.ts # Web tools
│ │ │ ├── memory-tool.ts # Persistent memory
│ │ │ ├── lsp-tool.ts # Language Server
│ │ │ └── ... # +20 more tools
│ │ ├── tool-schemas.ts # Zod schemas
│ │ └── tauri-tools.ts # Desktop re-exports
│ ├── ui/ # User interfaces (148 files)
│ │ ├── components/ # React components
│ │ │ ├── ChatPanel.tsx # Chat interface
│ │ │ ├── ToolCallDisplay.tsx # Tool visualization
│ │ │ └── MessageBubble.tsx # Message rendering
│ │ ├── hooks/ # React hooks
│ │ │ └── useAgent.ts # Agent hook with Phoenix recovery
│ │ ├── lib/ # UI logic
│ │ │ ├── agent-loop-impl.ts # UI agent loop
│ │ │ ├── agent-compaction.ts # Context Phoenix
│ │ │ └── context-manager.ts # Context management
│ │ ├── stores/ # Zustand stores
│ │ ├── styles/ # CSS styles
│ │ ├── ink-app.tsx # TUI (582 lines, Ink/React)
│ │ ├── repl.ts # REPL (628 lines, readline)
│ │ ├── App.tsx # Desktop React app
│ │ └── main.tsx # Entry point
│ └── utils/ # Utilities (5 files)
├── src-tauri/ # Rust/Tauri backend (14 files, 3 983 lines)
│ └── src/
│ ├── main.rs # Tauri app entry
│ └── lib.rs # Native commands
├── package.json # v1.2.0, Apache-2.0
├── tsup.config.ts # 3 entry points
├── Cargo.toml # Tauri v2
└── vite.config.ts # Vite bundlerСтатистика
| Метрика | Значение | |---------|----------| | TypeScript файлов | 297 | | TSX файлов | 44 | | Rust файлов | 14 | | Всего исходников | 355 файлов | | Строк TypeScript | 50 522 | | Строк Rust | 3 983 | | Встроенных инструментов | 28+ | | Встроенных skills | 21 | | Provider адаптеров | 6 (OpenAI, Anthropic, Gemini, GLM, Ollama, OpenRouter) | | UI режимов | 3 (Desktop, TUI, REPL) | | Серверных модулей | 6 | | Сервисов | 64 файла | | TypeScript компиляция | 0 ошибок | | Rust компиляция | 0 ошибок, 0 warnings |
Tech Stack
| Слой | Технология | |------|-----------| | Desktop | Tauri v2 (Rust + WebView) | | Frontend | React 19 + TypeScript 5.8 | | CLI/TUI | Ink (React in Terminal) + readline | | State | Zustand | | Validation | Zod | | Build | Vite + tsup (3 entry points) | | Server | Node.js HTTP + Telegram Bot API | | LSP | vscode-languageclient | | MCP | Model Context Protocol (stdio/SSE) | | Package Manager | npm |
Entry Points
{
"bin": {
"devmine": "dist/bootstrap/cli.js",
"devmine-serve": "dist/server/entry.js"
}
}| Команда | Режим | Описание |
|---------|-------|----------|
| devmine | Auto (TUI > REPL) | Автоматический выбор лучшего UI |
| devmine --tui | TUI (Ink) | Форсированный terminal UI |
| devmine --repl | REPL (readline) | Форсированный REPL |
| devmine serve | Server | Telegram Gateway сервер |
| devmine --verbose | Debug | Вывод timing каждой фазы |
License
Apache-2.0
