@pheem49/mint 1.5.5 → 1.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.codex +0 -0
- package/.github/FUNDING.yml +2 -0
- package/.github/workflows/ci.yml +45 -0
- package/.github/workflows/release.yml +79 -0
- package/Cargo.lock +5792 -0
- package/Cargo.toml +32 -0
- package/README.md +387 -353
- package/assets/icon.png +0 -0
- package/bin/mint +0 -0
- package/crates/mint-cli/Cargo.toml +23 -0
- package/crates/mint-cli/src/agent.rs +851 -0
- package/crates/mint-cli/src/gmail.rs +216 -0
- package/crates/mint-cli/src/image.rs +142 -0
- package/crates/mint-cli/src/main.rs +2837 -0
- package/crates/mint-cli/src/mcp.rs +63 -0
- package/crates/mint-cli/src/onboard.rs +1149 -0
- package/crates/mint-cli/src/setup.rs +390 -0
- package/crates/mint-cli/src/skills.rs +8 -0
- package/crates/mint-cli/src/updater.rs +279 -0
- package/crates/mint-core/Cargo.toml +22 -0
- package/crates/mint-core/src/agent_loop.rs +94 -0
- package/crates/mint-core/src/api_server.rs +991 -0
- package/crates/mint-core/src/channels.rs +248 -0
- package/crates/mint-core/src/chat.rs +895 -0
- package/crates/mint-core/src/code_tools.rs +729 -0
- package/crates/mint-core/src/config.rs +368 -0
- package/crates/mint-core/src/files.rs +159 -0
- package/crates/mint-core/src/knowledge.rs +541 -0
- package/crates/mint-core/src/lib.rs +84 -0
- package/crates/mint-core/src/mcp.rs +273 -0
- package/crates/mint-core/src/memory.rs +673 -0
- package/crates/mint-core/src/orchestration.rs +2157 -0
- package/crates/mint-core/src/pictures.rs +314 -0
- package/crates/mint-core/src/plugins.rs +727 -0
- package/crates/mint-core/src/safety.rs +416 -0
- package/crates/mint-core/src/semantic.rs +254 -0
- package/crates/mint-core/src/shell.rs +317 -0
- package/crates/mint-core/src/skills.rs +71 -0
- package/crates/mint-core/src/symbols.rs +157 -0
- package/crates/mint-core/src/tasks.rs +308 -0
- package/crates/mint-core/src/tts.rs +92 -0
- package/crates/mint-core/src/weather.rs +93 -0
- package/crates/mint-core/src/web_search.rs +200 -0
- package/crates/mint-core/src/workflows.rs +81 -0
- package/crates/mint-core/tests/mcp_stdio.rs +45 -0
- package/crates/mint-core/tests/memory_persistence.rs +172 -0
- package/crates/mint-core/tests/pictures_storage.rs +14 -0
- package/crates/mint-core/tests/task_lifecycle.rs +87 -0
- package/package.json +35 -99
- package/src/bin/index.js +16 -0
- package/src/renderer/index-web.html +17 -0
- package/src/renderer/index.html +17 -0
- package/src/renderer/public/Live2DCubismCore.js +9 -0
- package/src/renderer/public/assets/icon.png +0 -0
- package/src/renderer/public/models/Shiroko_Model/Shiroko/Shiroko_Core/shiroko.model3.json +36 -0
- package/src/renderer/src/App.tsx +33 -0
- package/src/renderer/src/calculator.ts +47 -0
- package/src/renderer/src/components/ChatPanel.tsx +1598 -0
- package/src/renderer/src/components/DashboardSidebar.tsx +358 -0
- package/src/renderer/src/components/Live2DStage.tsx +374 -0
- package/src/renderer/src/components/MintDashboard.tsx +950 -0
- package/src/renderer/src/components/ModelPanel.tsx +154 -0
- package/src/renderer/src/components/PicturesLibrary.tsx +46 -0
- package/src/renderer/src/components/ProactiveGlow.tsx +19 -0
- package/src/renderer/src/components/ScreenPicker.tsx +579 -0
- package/src/renderer/src/components/SettingsWindow.tsx +1467 -0
- package/src/renderer/src/components/SpotlightWindow.tsx +280 -0
- package/src/renderer/src/components/WidgetWindow.tsx +36 -0
- package/src/renderer/src/components/WorkspacePanel.tsx +268 -0
- package/src/{UI → renderer/src/css}/settings.css +69 -16
- package/src/renderer/src/css/spotlight.css +113 -0
- package/src/renderer/src/css/styles.css +3722 -0
- package/src/renderer/src/css/widget.css +185 -0
- package/src/renderer/src/env.d.ts +116 -0
- package/src/renderer/src/index.css +379 -0
- package/src/renderer/src/main.tsx +13 -0
- package/src/renderer/src/tauri.ts +996 -0
- package/src/renderer/src-web/App.tsx +25 -0
- package/src/renderer/src-web/calculator.ts +47 -0
- package/src/renderer/src-web/components/ChatPanel.tsx +1662 -0
- package/src/renderer/src-web/components/DashboardSidebar.tsx +242 -0
- package/src/renderer/src-web/components/MintDashboard.tsx +763 -0
- package/src/renderer/src-web/components/PicturesLibrary.tsx +73 -0
- package/src/renderer/src-web/components/SettingsWindow.tsx +1500 -0
- package/src/renderer/src-web/css/settings.css +1100 -0
- package/src/{UI → renderer/src-web/css}/spotlight.css +4 -4
- package/src/{UI → renderer/src-web/css}/styles.css +1055 -159
- package/src/{UI → renderer/src-web/css}/widget.css +2 -2
- package/src/renderer/src-web/env.d.ts +107 -0
- package/src/renderer/src-web/index.css +379 -0
- package/src/renderer/src-web/main.tsx +13 -0
- package/src/renderer/src-web/tauri.ts +983 -0
- package/tsconfig.json +30 -0
- package/vite.config.ts +33 -0
- package/vite.config.web.ts +51 -0
- package/GUIDE_TH.md +0 -125
- package/assets/Agent_Mint.png +0 -0
- package/assets/CLI_Screen.png +0 -0
- package/assets/Settings.png +0 -0
- package/benchmark_ai.js +0 -71
- package/install.ps1 +0 -64
- package/install.sh +0 -54
- package/main.js +0 -139
- package/mint-cli-logic.js +0 -3
- package/mint-cli.js +0 -410
- package/models/Shiroko_Model/Shiroko/Shiroko_Core//351/235/242/351/245/2740.model3.json +0 -47
- package/models/Shiroko_Model/Shiroko//342/232/241/351/253/230/344/272/256/342/232/241/344/275/277/347/224/250/346/225/231/347/250/213/344/270/216/346/263/250/346/204/217/344/272/213/351/241/271.txt +0 -23
- package/preload-picker.js +0 -11
- package/preload-settings.js +0 -11
- package/preload.js +0 -41
- package/scripts/install_linux_desktop_entry.js +0 -48
- package/src/AI_Brain/Gemini_API.js +0 -813
- package/src/AI_Brain/agent_orchestrator.js +0 -73
- package/src/AI_Brain/autonomous_brain.js +0 -179
- package/src/AI_Brain/behavior_memory.js +0 -135
- package/src/AI_Brain/headless_agent.js +0 -143
- package/src/AI_Brain/knowledge_base.js +0 -349
- package/src/AI_Brain/memory_store.js +0 -662
- package/src/AI_Brain/proactive_engine.js +0 -172
- package/src/AI_Brain/provider_adapter.js +0 -365
- package/src/Automation_Layer/browser_automation.js +0 -149
- package/src/Automation_Layer/file_operations.js +0 -286
- package/src/Automation_Layer/open_app.js +0 -85
- package/src/Automation_Layer/open_website.js +0 -38
- package/src/CLI/approval_handler.js +0 -47
- package/src/CLI/chat_router.js +0 -247
- package/src/CLI/chat_ui.js +0 -1159
- package/src/CLI/cli_colors.js +0 -115
- package/src/CLI/cli_formatters.js +0 -94
- package/src/CLI/code_agent.js +0 -1667
- package/src/CLI/code_session_memory.js +0 -62
- package/src/CLI/gmail_auth.js +0 -210
- package/src/CLI/image_input.js +0 -90
- package/src/CLI/intent_detectors.js +0 -181
- package/src/CLI/interactive_chat.js +0 -658
- package/src/CLI/list_features.js +0 -64
- package/src/CLI/onboarding.js +0 -416
- package/src/CLI/repo_summarizer.js +0 -282
- package/src/CLI/semantic_code_search.js +0 -312
- package/src/CLI/skill_manager.js +0 -41
- package/src/CLI/slash_command_handler.js +0 -418
- package/src/CLI/symbol_indexer.js +0 -231
- package/src/CLI/updater.js +0 -230
- package/src/CLI/workspace_manager.js +0 -90
- package/src/Channels/brave_search_bridge.js +0 -35
- package/src/Channels/discord_bridge.js +0 -66
- package/src/Channels/google_search_bridge.js +0 -38
- package/src/Channels/line_bridge.js +0 -60
- package/src/Channels/slack_bridge.js +0 -48
- package/src/Channels/telegram_bridge.js +0 -41
- package/src/Channels/whatsapp_bridge.js +0 -57
- package/src/Command_Parser/parser.js +0 -45
- package/src/Plugins/dev_tools.js +0 -41
- package/src/Plugins/discord.js +0 -20
- package/src/Plugins/docker.js +0 -47
- package/src/Plugins/gmail.js +0 -251
- package/src/Plugins/google_calendar.js +0 -252
- package/src/Plugins/mcp_manager.js +0 -95
- package/src/Plugins/notion.js +0 -256
- package/src/Plugins/obsidian.js +0 -54
- package/src/Plugins/plugin_manager.js +0 -81
- package/src/Plugins/spotify.js +0 -173
- package/src/Plugins/system_metrics.js +0 -31
- package/src/Plugins/system_monitor.js +0 -72
- package/src/System/action_executor.js +0 -178
- package/src/System/bridge_manager.js +0 -76
- package/src/System/chat_history_manager.js +0 -83
- package/src/System/config_manager.js +0 -194
- package/src/System/custom_workflows.js +0 -163
- package/src/System/daemon_manager.js +0 -67
- package/src/System/google_tts_urls.js +0 -51
- package/src/System/granular_automation.js +0 -157
- package/src/System/ipc_handlers.js +0 -332
- package/src/System/notifications.js +0 -23
- package/src/System/optional_require.js +0 -23
- package/src/System/picture_store.js +0 -109
- package/src/System/proactive_loop.js +0 -153
- package/src/System/safety_manager.js +0 -273
- package/src/System/sandbox_runner.js +0 -182
- package/src/System/screen_capture.js +0 -175
- package/src/System/smart_context.js +0 -227
- package/src/System/system_automation.js +0 -162
- package/src/System/system_events.js +0 -79
- package/src/System/system_info.js +0 -125
- package/src/System/task_manager.js +0 -222
- package/src/System/tool_registry.js +0 -293
- package/src/System/window_manager.js +0 -220
- package/src/UI/floating.css +0 -80
- package/src/UI/floating.html +0 -17
- package/src/UI/floating.js +0 -67
- package/src/UI/live2d_manager.js +0 -600
- package/src/UI/preload-floating.js +0 -7
- package/src/UI/preload-spotlight.js +0 -11
- package/src/UI/preload-widget.js +0 -5
- package/src/UI/proactive-glow.html +0 -42
- package/src/UI/renderer.js +0 -2127
- package/src/UI/screenPicker.html +0 -214
- package/src/UI/screenPicker.js +0 -262
- package/src/UI/settings.html +0 -577
- package/src/UI/settings.js +0 -770
- package/src/UI/spotlight.html +0 -23
- package/src/UI/spotlight.js +0 -185
- package/src/UI/widget.html +0 -29
- package/src/UI/widget.js +0 -10
- /package/{models → src/renderer/public/models}/Shiroko_Model/Shiroko/Shiroko_Core/72d86db84cfa9730b894c241fd24c0db.png +0 -0
- /package/{models/Shiroko_Model/Shiroko/Shiroko_Core//345/233/264/350/243/231.exp3.json" → src/renderer/public/models/Shiroko_Model/Shiroko/Shiroko_Core/apron.exp3.json} +0 -0
- /package/{models/Shiroko_Model/Shiroko/Shiroko_Core//347/214/253/345/222/252/346/273/244/351/225/234.exp3.json" → src/renderer/public/models/Shiroko_Model/Shiroko/Shiroko_Core/catfilter.exp3.json} +0 -0
- /package/{models/Shiroko_Model/Shiroko/Shiroko_Core//347/202/271/344/270/200/344/270/213.exp3.json" → src/renderer/public/models/Shiroko_Model/Shiroko/Shiroko_Core/click.exp3.json} +0 -0
- /package/{models/Shiroko_Model/Shiroko/Shiroko_Core//345/221/206/347/214/253.exp3.json" → src/renderer/public/models/Shiroko_Model/Shiroko/Shiroko_Core/dazed.exp3.json} +0 -0
- /package/{models/Shiroko_Model/Shiroko/Shiroko_Core//345/221/206/347/214/253/347/234/274/347/217/240/346/221/207/346/231/203.exp3.json" → src/renderer/public/models/Shiroko_Model/Shiroko/Shiroko_Core/dazedeyes.exp3.json} +0 -0
- /package/{models/Shiroko_Model/Shiroko/Shiroko_Core//347/234/274/351/225/234.exp3.json" → src/renderer/public/models/Shiroko_Model/Shiroko/Shiroko_Core/glasses.exp3.json} +0 -0
- /package/{models → src/renderer/public/models}/Shiroko_Model/Shiroko/Shiroko_Core/items_pinned_to_model.json +0 -0
- /package/{models/Shiroko_Model/Shiroko/Shiroko_Core//346/213/277/347/254/224.exp3.json" → src/renderer/public/models/Shiroko_Model/Shiroko/Shiroko_Core/pen.exp3.json} +0 -0
- /package/{models/Shiroko_Model/Shiroko/Shiroko_Core//346/213/215/347/205/247.exp3.json" → src/renderer/public/models/Shiroko_Model/Shiroko/Shiroko_Core/photo.exp3.json} +0 -0
- /package/{models/Shiroko_Model/Shiroko/Shiroko_Core//351/235/242/351/245/2740.4096/texture_00.png" → src/renderer/public/models/Shiroko_Model/Shiroko/Shiroko_Core/shiroko.4096/texture_00.png} +0 -0
- /package/{models/Shiroko_Model/Shiroko/Shiroko_Core//351/235/242/351/245/2740.4096/texture_01.png" → src/renderer/public/models/Shiroko_Model/Shiroko/Shiroko_Core/shiroko.4096/texture_01.png} +0 -0
- /package/{models/Shiroko_Model/Shiroko/Shiroko_Core//351/235/242/351/245/2740.4096/texture_02.png" → src/renderer/public/models/Shiroko_Model/Shiroko/Shiroko_Core/shiroko.4096/texture_02.png} +0 -0
- /package/{models/Shiroko_Model/Shiroko/Shiroko_Core//351/235/242/351/245/2740.4096/texture_03.png" → src/renderer/public/models/Shiroko_Model/Shiroko/Shiroko_Core/shiroko.4096/texture_03.png} +0 -0
- /package/{models/Shiroko_Model/Shiroko/Shiroko_Core//351/235/242/351/245/2740.cdi3.json" → src/renderer/public/models/Shiroko_Model/Shiroko/Shiroko_Core/shiroko.cdi3.json} +0 -0
- /package/{models/Shiroko_Model/Shiroko/Shiroko_Core//351/235/242/351/245/2740.moc3" → src/renderer/public/models/Shiroko_Model/Shiroko/Shiroko_Core/shiroko.moc3} +0 -0
- /package/{models/Shiroko_Model/Shiroko/Shiroko_Core//351/235/242/351/245/2740.physics3.json" → src/renderer/public/models/Shiroko_Model/Shiroko/Shiroko_Core/shiroko.physics3.json} +0 -0
- /package/{models/Shiroko_Model/Shiroko/Shiroko_Core//351/235/242/351/245/2740.vtube.json" → src/renderer/public/models/Shiroko_Model/Shiroko/Shiroko_Core/shiroko.vtube.json} +0 -0
package/README.md
CHANGED
|
@@ -1,46 +1,124 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
<p align="center">
|
|
4
|
-
<img src="assets/icon.png" alt="Mint Icon" width="160">
|
|
5
|
-
</p>
|
|
6
|
-
|
|
7
|
-
<p align="center">
|
|
8
|
-
<strong>Unified AI Desktop Assistant, Agentic CLI, and local-first automation workspace.</strong>
|
|
9
|
-
</p>
|
|
10
|
-
|
|
11
|
-
<p align="center">
|
|
12
|
-
<img src="https://img.shields.io/badge/License-AGPL--3.0-blue?style=for-the-badge" alt="License">
|
|
13
|
-
<img src="https://img.shields.io/badge/Node.js-LTS-green?style=for-the-badge&logo=node.js" alt="Node.js">
|
|
14
|
-
<img src="https://img.shields.io/badge/Electron-40.x-47848F?style=for-the-badge&logo=electron" alt="Electron">
|
|
15
|
-
<img src="https://img.shields.io/badge/CLI-Unified_Agent-orange?style=for-the-badge" alt="CLI Agentic">
|
|
16
|
-
<a href="https://pheem49.github.io/Mint/guide.html"><img src="https://img.shields.io/badge/Documentation-View_Guide-00ffa3?style=for-the-badge" alt="Documentation"></a>
|
|
17
|
-
</p>
|
|
18
|
-
|
|
19
|
-
Mint is an AI assistant built to live in your desktop and terminal. It combines a transparent Electron desktop assistant, a unified agentic CLI, project-aware coding tools, local memory, automation, multi-provider AI routing, MCP extensions, and safety controls.
|
|
20
|
-
|
|
21
|
-
## What's New
|
|
22
|
-
|
|
23
|
-
- **Antigravity-style Desktop Layout:** Desktop UI now has a collapsible sidebar, Chat/Pictures navigation, smoother page transitions, startup loading polish, and clearer destructive-action confirmations.
|
|
24
|
-
- **Local Pictures Library:** Images sent from the desktop chat are saved locally under `~/.config/mint/Pictures` after the user sends the message, with an in-app Pictures gallery and local metadata index.
|
|
25
|
-
- **Image Privacy Hardening:** Chat history no longer stores raw image base64 data for saved images; history keeps a text placeholder while the actual file stays in the local Pictures folder.
|
|
26
|
-
- **Theme & UI Controls:** Settings now include theme, accent color, system text color, glass blur, font family, and font size controls that apply to the desktop interface.
|
|
27
|
-
- **Unified CLI Agent:** `mint` now routes every normal message through the same agent loop. It can think, answer conversationally, inspect projects, edit files, run tools, and finish directly for simple chat.
|
|
28
|
-
- **Fast Mode:** `/fast` switches the interactive CLI into a quieter `[Fast]` status that keeps the working indicator visible but hides internal `Thinking:` and tool-progress trace messages.
|
|
29
|
-
- **Live CLI Replies:** Mint responses now appear in one live-updating `Mint` message instead of waiting for the whole final answer to render at once.
|
|
30
|
-
- **Learned Skills:** `mint learn <path>` and `/learn <path>` import local `.md` or `.txt` files as persistent skill/instruction memory. Learned skills can be listed and deleted.
|
|
31
|
-
- **Provider Fallback:** The agent can fall back across supported providers, for example from local OpenAI-compatible backends to Gemini.
|
|
32
|
-
- **Provider Visibility:** Desktop and CLI responses show the provider/model that actually answered, including fallback results.
|
|
33
|
-
- **Live2D Assistant Model:** Desktop UI now supports a Live2D Shiroko model with expression cycling, lip sync while speaking, transparent interaction-area overlays, and click-to-chat reactions.
|
|
34
|
-
- **Google Workspace + Notion Integrations:** Gmail, Google Calendar, and Notion plugins can be configured from onboarding.
|
|
35
|
-
- **Safety Manager:** Central safety policy for shell commands and actions, including deterministic command blocking, permission tiers, path guards, and action logs.
|
|
36
|
-
- **Refactored Main Process:** Electron startup is split into focused modules for windows, IPC, proactive loop, screen capture, and action execution.
|
|
37
|
-
- **CI & Audit Baseline:** GitHub Actions runs install, tests, and security audit. Current local test baseline is `137` passing tests and `0` high vulnerabilities.
|
|
38
|
-
- **Dependency Hardening:** Removed vulnerable `google-tts-api` and `xlsx`; replaced with internal Google TTS URL generation and `read-excel-file`.
|
|
39
|
-
|
|
40
|
-
## Installation & Setup
|
|
1
|
+
<div align="center">
|
|
2
|
+
<img src="assets/icon.png" alt="Mint icon" width="112" />
|
|
41
3
|
|
|
42
|
-
|
|
4
|
+
# Mint
|
|
5
|
+
|
|
6
|
+
**A native desktop AI assistant with a shared Rust core and an optional terminal interface.**
|
|
7
|
+
|
|
8
|
+
[](https://v2.tauri.app/)
|
|
9
|
+
[](https://www.rust-lang.org/)
|
|
10
|
+
[](https://react.dev/)
|
|
11
|
+
[](LICENSE)
|
|
12
|
+
</div>
|
|
13
|
+
|
|
14
|
+
Mint is a local-first AI assistant built with Tauri v2, Rust, React, and TypeScript.
|
|
15
|
+
The desktop application and native CLI share the same Rust domain layer, so chat,
|
|
16
|
+
memory, knowledge, tools, safety policies, and integrations behave consistently
|
|
17
|
+
across both interfaces.
|
|
18
|
+
|
|
19
|
+
## 🌟 What Mint Can Do
|
|
20
|
+
|
|
21
|
+
Mint is a local-first AI assistant running on your machine, capable of handling tasks via either the desktop application or the terminal interface (CLI):
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
### 1. 🤖 AI Chat & Multi-Providers
|
|
26
|
+
- Connect to **Gemini, OpenAI, Anthropic (Claude), Ollama (Local), Hugging Face**, and LM Studio.
|
|
27
|
+
- Run private local LLMs inside your machine using Ollama or connect to leading cloud APIs.
|
|
28
|
+
- Supports system instructions, temperature adjustments, voice replies, and image analysis (Multimodal).
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
### 2. 🎨 Interactive Live2D Desktop Assistant
|
|
33
|
+
- An interactive anime avatar (**Shiroko**) displayed right on your desktop with gaze tracking (eye/face follows your mouse pointer).
|
|
34
|
+
- Toggle expression changes and cycle through character accessories dynamically.
|
|
35
|
+
- Custom interaction zones (Head, Cheek, Hands, Body) that trigger unique animations and message toasts.
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
### 3. 💻 Autonomous Code Agent
|
|
40
|
+
- Run code agent loops via `/code <task>` or the terminal command `mint code agent "<task>"`.
|
|
41
|
+
- Scan your project workspace, build multi-file implementation plans, fix test suite errors, and write edits automatically.
|
|
42
|
+
- Run local tests, cargo checks, and shell commands.
|
|
43
|
+
> [!IMPORTANT]
|
|
44
|
+
> **Safety First:** Risky actions and file writes require your explicit terminal approval first.
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
### 4. 🧠 Long-Term Memory & Knowledge Base
|
|
49
|
+
- Persistent conversation memory stored locally in SQLite. Manage user profile memory with `/memory set/get` or CLI commands.
|
|
50
|
+
- Index local directories, text files, and documentation to build your private searchable knowledge base.
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
### 5. 🔌 Tool & MCP Integrations
|
|
55
|
+
- Support **Model Context Protocol (MCP)** to connect tools like Google/Brave Search, Filesystem servers, and GitHub context.
|
|
56
|
+
- **Auto GitHub Link Resolver:** Automatically detects GitHub URLs in chat messages (CLI, Web, and Desktop) and Code Agent tasks. It fetches and injects the repository's metadata, directory structure, and README as prompt context, serving as an instant fallback when the GitHub MCP server is not active.
|
|
57
|
+
- Local plugins for Spotify playback control, Google Calendar, Gmail drafts, and Notion workspace reading.
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
### 6. 🌐 Messaging Bridges
|
|
62
|
+
- Bridge your local AI assistant to messaging services: **Telegram, Discord Gateway, Discord RPC, Slack, LINE, and WhatsApp**.
|
|
63
|
+
- Host local chatbot webhooks that relay chat traffic into your configured LLM.
|
|
64
|
+
> [!TIP]
|
|
65
|
+
> **Headless Background Execution:** Enabled bridges automatically run in the background when you launch either the desktop application OR the local API/Web server (`mint api` / `mint web`). This allows you to chat with Mint from anywhere without needing the desktop GUI window open.
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
### 7. 📸 Screen Capture & Translation
|
|
70
|
+
- Capture screen snapshots for instant visual analysis by the AI.
|
|
71
|
+
- Real-time continuous overlay translation of specific screen regions.
|
|
72
|
+
|
|
73
|
+
---
|
|
43
74
|
|
|
75
|
+
## Highlights
|
|
76
|
+
|
|
77
|
+
- Multi-provider chat with Gemini, OpenAI, Anthropic, Ollama, Hugging Face, and
|
|
78
|
+
local OpenAI-compatible endpoints.
|
|
79
|
+
- Native streaming responses, SQLite-backed memory, tasks, searchable local
|
|
80
|
+
knowledge, skills, and semantic code search.
|
|
81
|
+
- Desktop dashboard with a Live2D assistant, model interaction areas, pictures,
|
|
82
|
+
screen capture, continuous translation, spotlight, tray, widget, and proactive
|
|
83
|
+
suggestions.
|
|
84
|
+
- Native code-agent workflow for workspace inspection, planning, editing, shell
|
|
85
|
+
execution, and verification with explicit approval for risky actions.
|
|
86
|
+
- MCP servers, local plugins, custom workflows, weather, web search, and
|
|
87
|
+
optional external services.
|
|
88
|
+
- Telegram, Discord Gateway, Discord RPC, Slack Socket Mode, LINE, and WhatsApp
|
|
89
|
+
Cloud API integrations.
|
|
90
|
+
- Signed Tauri update checks with an explicit approval step before installation.
|
|
91
|
+
|
|
92
|
+
## Screenshots
|
|
93
|
+
|
|
94
|
+
| Desktop assistant | Settings |
|
|
95
|
+
| --- | --- |
|
|
96
|
+
|  |  |
|
|
97
|
+
|
|
98
|
+

|
|
99
|
+
|
|
100
|
+
## Prerequisites
|
|
101
|
+
|
|
102
|
+
- Node.js and npm
|
|
103
|
+
- A Rust toolchain
|
|
104
|
+
- Tauri v2 native build dependencies for your operating system
|
|
105
|
+
|
|
106
|
+
On Debian, Ubuntu, or Linux Mint:
|
|
107
|
+
|
|
108
|
+
```bash
|
|
109
|
+
sudo apt-get install -y \
|
|
110
|
+
build-essential curl file pkg-config wget \
|
|
111
|
+
libdbus-1-dev libwebkit2gtk-4.1-dev \
|
|
112
|
+
libayatana-appindicator3-dev librsvg2-dev \
|
|
113
|
+
poppler-utils unzip patchelf
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
See the [Tauri prerequisites guide](https://v2.tauri.app/start/prerequisites/)
|
|
117
|
+
for other platforms.
|
|
118
|
+
|
|
119
|
+
## Installation
|
|
120
|
+
|
|
121
|
+
### Quick Install (Recommended)
|
|
44
122
|
The easiest way to install Mint CLI is using our installation script:
|
|
45
123
|
|
|
46
124
|
**For macOS & Linux:**
|
|
@@ -48,385 +126,341 @@ The easiest way to install Mint CLI is using our installation script:
|
|
|
48
126
|
curl -fsSL https://raw.githubusercontent.com/Pheem49/Mint/main/install.sh | bash
|
|
49
127
|
```
|
|
50
128
|
|
|
51
|
-
**For Windows (PowerShell
|
|
129
|
+
**For Windows (PowerShell):**
|
|
52
130
|
```powershell
|
|
53
131
|
powershell -Command "iwr -useb https://raw.githubusercontent.com/Pheem49/Mint/main/install.ps1 | iex"
|
|
54
132
|
```
|
|
55
133
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
If you prefer to install via NPM directly:
|
|
59
|
-
|
|
134
|
+
---
|
|
135
|
+
### Quick Start
|
|
60
136
|
```bash
|
|
61
|
-
|
|
137
|
+
mint onboard
|
|
138
|
+
mint setup
|
|
139
|
+
mint
|
|
140
|
+
mint web
|
|
141
|
+
mint chat "Hello"
|
|
62
142
|
```
|
|
63
143
|
|
|
64
|
-
|
|
65
|
-
|
|
144
|
+
Most integrations can be configured from:
|
|
66
145
|
```bash
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
146
|
+
mint onboard
|
|
147
|
+
mint setup
|
|
148
|
+
mint
|
|
70
149
|
```
|
|
71
150
|
|
|
72
|
-
###
|
|
151
|
+
### Manual Installation
|
|
73
152
|
|
|
153
|
+
### 1. Configure API Keys
|
|
154
|
+
Copy the template and configure your LLM credentials (Gemini, OpenAI, Anthropic, etc.):
|
|
74
155
|
```bash
|
|
75
|
-
|
|
76
|
-
mint
|
|
77
|
-
npm start
|
|
156
|
+
cp .env.example .env
|
|
78
157
|
```
|
|
158
|
+
Open the `.env` file and insert your API keys (e.g. `GEMINI_API_KEY=your_key_here`).
|
|
79
159
|
|
|
80
|
-
|
|
81
|
-
|
|
160
|
+
### 2. Desktop Application
|
|
161
|
+
Install the dependencies and start the application in development mode:
|
|
82
162
|
```bash
|
|
83
|
-
|
|
163
|
+
npm install
|
|
164
|
+
npm run tauri:dev
|
|
165
|
+
```
|
|
166
|
+
To compile and build a production standalone desktop package:
|
|
167
|
+
```bash
|
|
168
|
+
npm run tauri:build
|
|
84
169
|
```
|
|
170
|
+
*(The Vite renderer output is generated in `out/renderer` and can be manually built via `npm run build:web`)*
|
|
171
|
+
|
|
172
|
+
### 3. Native CLI
|
|
173
|
+
To install the `mint` command-line tool globally:
|
|
174
|
+
|
|
175
|
+
* **Option A (Release Build - Recommended for speed):**
|
|
176
|
+
```bash
|
|
177
|
+
cargo build --release -p mint-cli
|
|
178
|
+
sudo cp target/release/mint /usr/local/bin/
|
|
179
|
+
```
|
|
180
|
+
* **Option B (Cargo Install):**
|
|
181
|
+
```bash
|
|
182
|
+
cargo install --path crates/mint-cli
|
|
183
|
+
```
|
|
184
|
+
* **Option C (Development Shell Alias):**
|
|
185
|
+
If you are actively modifying code and want changes to reflect instantly, set up the alias under the [Setting up the mint Shortcut](#setting-up-the-mint-shortcut) section.
|
|
186
|
+
|
|
187
|
+
## Desktop Assistant
|
|
188
|
+
|
|
189
|
+
The desktop application provides:
|
|
85
190
|
|
|
86
|
-
|
|
191
|
+
- A streaming chat panel with provider selection and optional smart context.
|
|
192
|
+
- A Live2D model panel with gaze tracking, interaction zones, and visual area
|
|
193
|
+
guides.
|
|
194
|
+
- Local conversation memory, tasks, searchable knowledge, and pictures.
|
|
195
|
+
- Screen capture and continuous screen translation.
|
|
196
|
+
- Spotlight, widget, tray, proactive glow, and background task queue windows.
|
|
197
|
+
- Settings for models, API keys, voice, automation, integrations, MCP servers,
|
|
198
|
+
workflows, appearance, updates, and agent collaboration.
|
|
87
199
|
|
|
88
|
-
|
|
200
|
+
The sidebar, Live2D interaction state, and area-guide visibility are stored
|
|
201
|
+
locally so the dashboard restores the previous UI state after restarting.
|
|
89
202
|
|
|
90
|
-
|
|
203
|
+
## Native CLI
|
|
91
204
|
|
|
205
|
+
You can interact with Mint's Rust backend directly using the command line. If you set up the `mint` shortcut alias, you can run commands directly as `mint <command>`. Otherwise, you can fall back to running them through npm as `npm run cli -- <command>`.
|
|
206
|
+
|
|
207
|
+
### Setting up the `mint` Shortcut
|
|
208
|
+
|
|
209
|
+
You can choose one of the following methods to enable the global `mint` command:
|
|
210
|
+
|
|
211
|
+
**Option 1: Using Shell Alias (For active development - updates instantly on code changes)**
|
|
212
|
+
|
|
213
|
+
To run the commands using the prefix `mint` from anywhere in your workspace (automatically compiling your code updates on execution):
|
|
214
|
+
|
|
215
|
+
*For Bash (`~/.bashrc`):*
|
|
92
216
|
```bash
|
|
93
|
-
mint
|
|
94
|
-
|
|
217
|
+
echo 'alias mint="cargo run --manifest-path /home/pheem49/vscode/Project/Mint-CLI/Cargo.toml -p mint-cli --"' >> ~/.bashrc
|
|
218
|
+
source ~/.bashrc
|
|
95
219
|
```
|
|
96
220
|
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
- `googleCalendarId`, usually `primary`
|
|
107
|
-
|
|
108
|
-
The plugin can list events and create events through the Calendar API. If OAuth is not configured, it falls back to opening Google Calendar in the browser.
|
|
109
|
-
|
|
110
|
-
### Notion
|
|
111
|
-
|
|
112
|
-
Notion uses an internal integration secret. After creating an integration in Notion, share the target page or database with that integration, then configure:
|
|
113
|
-
|
|
114
|
-
- `notionApiKey`
|
|
115
|
-
- `notionDatabaseId`, optional default database
|
|
116
|
-
- `notionPageId`, optional default page
|
|
117
|
-
- `notionTitleProperty`, default `Name`
|
|
118
|
-
|
|
119
|
-
The plugin can create pages, query database pages, and append text blocks.
|
|
120
|
-
|
|
121
|
-
## Key Features
|
|
122
|
-
|
|
123
|
-
<details>
|
|
124
|
-
<summary>Show details</summary>
|
|
125
|
-
|
|
126
|
-
### Unified CLI Agent
|
|
127
|
-
|
|
128
|
-
Mint CLI is not just a chat wrapper. It is a workspace-aware agent loop.
|
|
129
|
-
|
|
130
|
-
- **Think Before Acting:** Every request goes through an agent decision step.
|
|
131
|
-
- **Fast Mode:** Toggle `/fast` to hide internal thought/progress messages while keeping the final answer, approvals, tools, and working indicator unchanged.
|
|
132
|
-
- **Live Answer Rendering:** Final answers are streamed into a single Mint message block as they arrive.
|
|
133
|
-
- **Conversational + Coding in One Flow:** Casual messages can finish directly; coding tasks can inspect, plan, edit, and verify.
|
|
134
|
-
- **Workspace Context:** Reads current path, git status, diff summary, package scripts, and previous workspace session memory.
|
|
135
|
-
- **Tool Use:** Supports web search, file listing, file reading, scoped code search, path finding, shell commands, patch edits, file writes, opening folders, and asking the user.
|
|
136
|
-
- **Approval Flow:** Shell commands, patches, and full-file writes require user approval.
|
|
137
|
-
- **Provider Support:** Gemini, OpenAI, Anthropic, and local OpenAI-compatible endpoints for agent tasks.
|
|
138
|
-
- **Agent Collaboration Option:** Optional reviewer pass can be enabled for longer tasks.
|
|
139
|
-
|
|
140
|
-
### Desktop Assistant
|
|
141
|
-
|
|
142
|
-
- **Electron Desktop UI:** Transparent desktop assistant window with tray support.
|
|
143
|
-
- **Collapsible Workspace Sidebar:** Desktop navigation starts collapsed on app launch and can be expanded for Chat, Pictures, model controls, and settings.
|
|
144
|
-
- **Chat Navigation Safety:** `New Chat` and `Clear` ask for confirmation before clearing the current conversation history.
|
|
145
|
-
- **Pictures Gallery:** Sent images are available in a local-only Pictures view inside the desktop app.
|
|
146
|
-
- **Live2D Model View:** Optional Live2D assistant panel with model show/hide persistence. New installs start with the model hidden until the user enables it.
|
|
147
|
-
- **Live2D Expressions:** Cycle model expressions from the toolbar and show an on-canvas expression toast for the active expression.
|
|
148
|
-
- **Click Reactions:** Named model interaction zones (`Head Pat`, `Cheek Poke`, `Hand Tap`, `Shoulder Tap`, and `Careful`) can trigger temporary expressions and send short contextual prompts into the normal chat flow.
|
|
149
|
-
- **Interaction Guide Overlay:** Toggle a transparent overlay that labels clickable model areas without blocking pointer input.
|
|
150
|
-
- **Voice Lip Sync:** When Mint speaks, Live2D mouth parameters animate during TTS playback and reset when speech ends.
|
|
151
|
-
- **Floating Widget:** Always-on-top quick access widget.
|
|
152
|
-
- **Spotlight Launcher:** `Alt+Space` quick prompt window.
|
|
153
|
-
- **Screen Vision:** Capture the screen and send selected regions to the AI.
|
|
154
|
-
- **Live Translation:** Continuously translate a selected screen area.
|
|
155
|
-
- **Proactive Suggestions:** Periodic screen/context analysis with behavior memory.
|
|
156
|
-
- **System Notifications:** Low battery, connection changes, and proactive notices.
|
|
157
|
-
- **Settings UI:** Configure provider, model, theme, keys, bridge options, MCP, and assistant behavior.
|
|
158
|
-
- **Appearance Controls:** Customize theme, accent color, text color, glass blur, font family, and UI font size.
|
|
159
|
-
|
|
160
|
-
### Automation
|
|
161
|
-
|
|
162
|
-
- **Apps and Websites:** Open local apps, URLs, search queries, files, and folders.
|
|
163
|
-
- **Browser Automation:** Use Puppeteer-driven browser workflows.
|
|
164
|
-
- **File Operations:** Create folders, find paths, open files/folders, and move files to trash.
|
|
165
|
-
- **System Automation:** Volume, mute, brightness, suspend, restart, shutdown, and window minimization helpers.
|
|
166
|
-
- **Granular Automation:** Mouse move, mouse click, typing, and key tap actions.
|
|
167
|
-
- **Custom Workflows:** Process-monitoring rules loaded from local config.
|
|
168
|
-
- **Headless Agent:** Queue background tasks with `mint task`.
|
|
169
|
-
|
|
170
|
-
### Knowledge and Memory
|
|
171
|
-
|
|
172
|
-
- **Chat History:** Persistent local chat transcript.
|
|
173
|
-
- **Timestamp Preservation:** Desktop chat history keeps original message timestamps across app restarts and history syncs.
|
|
174
|
-
- **Local Sent-Image Storage:** Desktop image attachments are saved as local files only after sending, under `~/.config/mint/Pictures`.
|
|
175
|
-
- **Behavior Memory:** Stores recurring user context for proactive suggestions.
|
|
176
|
-
- **Long-Term Memory Store:** SQLite-backed user context, session memories, usage patterns, and response cache.
|
|
177
|
-
- **Learned Skill Files:** Import `.md` or `.txt` instruction files with `mint learn <path>` or `/learn <path>`. Mint remembers them as persistent skill/instruction context.
|
|
178
|
-
- **Knowledge Base / RAG:** Index and search local `.txt`, `.md`, `.pdf`, `.docx`, and `.xlsx` files.
|
|
179
|
-
- **Workspace Session Memory:** Remembers previous task summary and verification for each workspace.
|
|
180
|
-
|
|
181
|
-
### Multi-Provider AI
|
|
182
|
-
|
|
183
|
-
- **Gemini:** Main default provider with model selection.
|
|
184
|
-
- **OpenAI:** GPT-compatible cloud provider.
|
|
185
|
-
- **Anthropic:** Claude-compatible provider.
|
|
186
|
-
- **Local OpenAI Compatible:** LM Studio or other local `/v1/chat/completions` servers.
|
|
187
|
-
- **Ollama / Hugging Face:** Available in general provider configuration where supported.
|
|
188
|
-
- **Fallback Routing:** Agent provider selection can fall back when local providers are offline.
|
|
189
|
-
- **Response Badges:** Chat surfaces show the provider/model that produced the final response, such as `gemini • gemini-3.1-flash-lite-preview`.
|
|
190
|
-
|
|
191
|
-
### Messaging Bridges and Plugins
|
|
192
|
-
|
|
193
|
-
- **Discord Bridge**
|
|
194
|
-
- **Telegram Bridge**
|
|
195
|
-
- **Slack Bridge**
|
|
196
|
-
- **LINE Bridge**
|
|
197
|
-
- **WhatsApp Bridge**
|
|
198
|
-
- **Google Search and Brave Search Bridges**
|
|
199
|
-
- **Spotify Plugin**
|
|
200
|
-
- **Docker Plugin**
|
|
201
|
-
- **Obsidian Plugin**
|
|
202
|
-
- **System Monitor and Metrics Plugins**
|
|
203
|
-
- **Google Calendar Plugin:** List events and create calendar events via Google Calendar API, with browser fallback.
|
|
204
|
-
- **Gmail Plugin:** Search/read Gmail and create drafts safely. It does not send email automatically.
|
|
205
|
-
- **Notion Plugin:** Create notes/pages, read databases, and append page blocks through the Notion API.
|
|
206
|
-
- **MCP Manager**
|
|
207
|
-
|
|
208
|
-
### MCP Extensions
|
|
209
|
-
|
|
210
|
-
Mint supports the **Model Context Protocol (MCP)** so external tools can be added without hardcoding them into Mint.
|
|
221
|
+
*For Zsh (`~/.zshrc`):*
|
|
222
|
+
```bash
|
|
223
|
+
echo 'alias mint="cargo run --manifest-path /home/pheem49/vscode/Project/Mint-CLI/Cargo.toml -p mint-cli --"' >> ~/.zshrc
|
|
224
|
+
source ~/.zshrc
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
**Option 2: Install via Cargo (For standard Rust installation)**
|
|
228
|
+
|
|
229
|
+
This will compile the Rust CLI and install it inside your native Cargo binary directory:
|
|
211
230
|
|
|
212
231
|
```bash
|
|
213
|
-
|
|
214
|
-
mint mcp list
|
|
215
|
-
mint mcp remove <name>
|
|
216
|
-
mint mcp clear
|
|
232
|
+
cargo install --path crates/mint-cli
|
|
217
233
|
```
|
|
234
|
+
*Note: Make sure your `~/.cargo/bin` is added to your shell's `$PATH` variable.*
|
|
235
|
+
|
|
236
|
+
**Option 3: Compile and Install Globally (For release binary - fastest run speed)**
|
|
218
237
|
|
|
219
|
-
|
|
238
|
+
If you want to compile the project in release mode and install it directly to your system's global binaries directory (for the fastest startup time without cargo check overhead):
|
|
220
239
|
|
|
221
240
|
```bash
|
|
222
|
-
|
|
241
|
+
# Build the binary in release mode
|
|
242
|
+
cargo build --release -p mint-cli
|
|
243
|
+
|
|
244
|
+
# Copy it into your system binary directory
|
|
245
|
+
sudo cp target/release/mint /usr/local/bin/
|
|
223
246
|
```
|
|
247
|
+
Once copied, you can run `mint` globally from any folder in your terminal!mint chat "Hello"
|
|
224
248
|
|
|
225
|
-
|
|
249
|
+
---
|
|
226
250
|
|
|
227
|
-
|
|
251
|
+
### Start Interactive Chat Assistant
|
|
228
252
|
|
|
229
|
-
|
|
230
|
-
<summary>Show details</summary>
|
|
253
|
+
To start the interactive terminal AI chatbot assistant, simply run:
|
|
231
254
|
|
|
232
|
-
|
|
255
|
+
```bash
|
|
256
|
+
mint
|
|
257
|
+
# Or fallback: npm run cli
|
|
258
|
+
```
|
|
259
|
+
This opens the Mint interactive shell, where you can type prompts naturally or use `/commands` (like `/help`, `/cd`, `/clear`, `/exit`).
|
|
233
260
|
|
|
234
|
-
|
|
235
|
-
- **Deterministic Command Blocking:** Blocks known dangerous shell commands regardless of what the AI requests.
|
|
236
|
-
- **Blocked Examples:** `rm -rf`, `git reset --hard`, `git clean -f`, `mkfs`, raw disk writes, `shutdown`, `reboot`, `sudo`, `chmod -R 777`, `curl | sh`, and `wget | bash`.
|
|
237
|
-
- **Dangerous Actions:** `delete_file` and destructive `system_automation` actions require explicit permission.
|
|
238
|
-
- **Path Guard:** Prevents path traversal outside an allowed root.
|
|
239
|
-
- **Action Logs:** Writes JSONL records to `~/.config/mint/action-log.jsonl`.
|
|
240
|
-
- **Test Coverage:** Safety tests verify destructive command blocking, dangerous action classification, path traversal protection, and action executor enforcement.
|
|
261
|
+
---
|
|
241
262
|
|
|
242
|
-
|
|
263
|
+
### CLI Subcommands
|
|
243
264
|
|
|
244
|
-
|
|
265
|
+
You can run individual subcommands by appending them after `mint`:
|
|
245
266
|
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
- `mint mcp` - Manage MCP servers.
|
|
288
|
-
- `mint update` - Check npm and install the latest Mint CLI version.
|
|
289
|
-
- `mint update --check` - Check for a newer version without installing it.
|
|
290
|
-
- `mint list` - Display available features and commands.
|
|
291
|
-
- `mint onboard` - Configure Mint for first use.
|
|
292
|
-
|
|
293
|
-
</details>
|
|
294
|
-
|
|
295
|
-
## CLI Updates
|
|
296
|
-
|
|
297
|
-
<details>
|
|
298
|
-
<summary>Show details</summary>
|
|
299
|
-
|
|
300
|
-
Mint CLI checks for updates automatically on startup. The auto-check is enabled by default, uses a 24-hour cooldown, and updates from npm with `npm install -g @pheem49/mint@latest` when a newer package version is available.
|
|
301
|
-
|
|
302
|
-
Use manual update commands when you want direct control:
|
|
267
|
+
```bash
|
|
268
|
+
mint onboard
|
|
269
|
+
mint setup
|
|
270
|
+
mint status
|
|
271
|
+
mint web
|
|
272
|
+
mint api
|
|
273
|
+
mint chat "<message>"
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
### Common Commands
|
|
277
|
+
|
|
278
|
+
| Command | Purpose |
|
|
279
|
+
| --- | --- |
|
|
280
|
+
| `mint` | Start the interactive terminal chat assistant |
|
|
281
|
+
| `mint onboard` | Configure Mint for first use |
|
|
282
|
+
| `mint setup` | Interactively manage enabled agent tools |
|
|
283
|
+
| `mint web` | Launch the web UI and local API server |
|
|
284
|
+
| `mint api` | Start only the local API server |
|
|
285
|
+
| `mint status` | Show runtime status |
|
|
286
|
+
| `mint config init` | Create the local configuration file |
|
|
287
|
+
| `mint config path` | Print the configuration file path |
|
|
288
|
+
| `mint config show` | Print the current configuration |
|
|
289
|
+
| `mint config set <key> <value>` | Update a configuration value |
|
|
290
|
+
| `mint config doctor` | Validate the local setup |
|
|
291
|
+
| `mint providers` | List configured AI providers |
|
|
292
|
+
| `mint chat "<message>"` | Send one chat message |
|
|
293
|
+
| `mint memory recent` | Show recent conversation memory |
|
|
294
|
+
| `mint task list` | List all tasks (pending and completed) |
|
|
295
|
+
| `mint task pending` | List pending tasks |
|
|
296
|
+
| `mint knowledge add <path>` | Index a local document |
|
|
297
|
+
| `mint knowledge search "<query>"` | Search indexed knowledge |
|
|
298
|
+
| `mint plugin list` | List local plugins |
|
|
299
|
+
| `mint mcp list` | List configured MCP servers |
|
|
300
|
+
| `mint learn <path>` | Import a persistent learned skill file |
|
|
301
|
+
| `mint update --check` | Check for an available update |
|
|
302
|
+
|
|
303
|
+
|
|
304
|
+
|
|
305
|
+
### Code Agent
|
|
306
|
+
|
|
307
|
+
Mint includes native workspace tools for code inspection, planning, editing, and execution:
|
|
303
308
|
|
|
304
309
|
```bash
|
|
305
|
-
mint
|
|
306
|
-
mint
|
|
307
|
-
mint
|
|
310
|
+
mint code agent "inspect this repo and fix the failing tests"
|
|
311
|
+
mint code github-overview "Pheem49/Mint"
|
|
312
|
+
mint code summary .
|
|
313
|
+
mint code search "shell approval flow" .
|
|
314
|
+
mint symbols .
|
|
315
|
+
mint semantic-code index .
|
|
316
|
+
mint semantic-code search "provider fallback"
|
|
308
317
|
```
|
|
309
318
|
|
|
310
|
-
|
|
319
|
+
Inside interactive mode, use:
|
|
320
|
+
|
|
321
|
+
```text
|
|
322
|
+
/code <task>
|
|
323
|
+
```
|
|
324
|
+
|
|
325
|
+
Code-related fixes, workspace inspection, and test requests are routed into the code-agent loop automatically. Shell commands and file edits require explicit terminal approval before Mint applies them.
|
|
326
|
+
|
|
327
|
+
### Tools And Automation
|
|
311
328
|
|
|
312
329
|
```bash
|
|
313
|
-
|
|
330
|
+
mint files find README
|
|
331
|
+
mint safety path README.md
|
|
332
|
+
mint safety shell cargo test -p mint-core
|
|
333
|
+
mint run --approve -- cargo test -p mint-core
|
|
334
|
+
mint open README.md
|
|
335
|
+
mint open-app code
|
|
336
|
+
mint learn ./skill.md
|
|
314
337
|
```
|
|
315
338
|
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
</details>
|
|
319
|
-
|
|
320
|
-
## Interactive Slash Commands
|
|
321
|
-
|
|
322
|
-
<details>
|
|
323
|
-
<summary>Show details</summary>
|
|
324
|
-
|
|
325
|
-
Inside `mint`:
|
|
326
|
-
|
|
327
|
-
- `/help` - Show commands.
|
|
328
|
-
- `/fast [on|off|status]` - Toggle Fast Mode. Fast Mode shows `[Fast]`, keeps `Mint is thinking...`, and hides `Thinking:`/progress trace messages.
|
|
329
|
-
- `/summarize [path] [--json]` - Summarize the current repository without using the AI agent.
|
|
330
|
-
- `/symbols [path] [--json] [--limit n]` - Build a local source symbol index without using the AI agent.
|
|
331
|
-
- `/semantic-code index` - Create embeddings for source code chunks in the current workspace.
|
|
332
|
-
- `/semantic-code search <query>` - Search the indexed code semantically.
|
|
333
|
-
- `/learn <path>` - Read a local `.md` or `.txt` file and remember it as a persistent Mint skill/instruction.
|
|
334
|
-
- `/memory skills` - Show learned skill files.
|
|
335
|
-
- `/memory skills delete <id|path|name>` - Delete a learned skill.
|
|
336
|
-
- `/image <path> [prompt]` - Attach an image from disk.
|
|
337
|
-
- `/paste [prompt]` - Attach an image from the clipboard.
|
|
338
|
-
- `/code <task>` - Force Code Mode.
|
|
339
|
-
- `/cd <path>` - Change active workspace directory.
|
|
340
|
-
- `/models [name]` - Show or switch model/provider.
|
|
341
|
-
- `/memory [cmd]` - Manage long-term memory.
|
|
342
|
-
- `/config` - Show current configuration.
|
|
343
|
-
- `/copy` - Copy last response.
|
|
344
|
-
- `/clear` / `/reset` - Clear conversation history.
|
|
345
|
-
- `/agent <type>` - Switch specialized persona.
|
|
346
|
-
- `/workspace` - Manage registered workspaces.
|
|
347
|
-
- `/stats` - Show system statistics.
|
|
348
|
-
- `/review` - Ask reviewer persona to critique the last answer.
|
|
349
|
-
- `/exit` - Exit.
|
|
350
|
-
|
|
351
|
-
</details>
|
|
339
|
+
### MCP Servers
|
|
352
340
|
|
|
353
|
-
|
|
341
|
+
Add a local MCP server and call one of its tools:
|
|
354
342
|
|
|
355
|
-
|
|
356
|
-
|
|
343
|
+
```bash
|
|
344
|
+
mint mcp add filesystem npx \
|
|
345
|
+
--args -y \
|
|
346
|
+
--args @modelcontextprotocol/server-filesystem \
|
|
347
|
+
--args .
|
|
348
|
+
|
|
349
|
+
mint mcp list
|
|
350
|
+
mint mcp call filesystem list_directory \
|
|
351
|
+
--arguments '{"path":"."}'
|
|
352
|
+
```
|
|
353
|
+
|
|
354
|
+
### Interactive Commands
|
|
355
|
+
|
|
356
|
+
| Command | Purpose |
|
|
357
|
+
| --- | --- |
|
|
358
|
+
| `/help` | Show interactive help |
|
|
359
|
+
| `/fast [on\|off]` | Toggle fast response mode |
|
|
360
|
+
| `/models [name]` | List or select a model |
|
|
361
|
+
| `/clear` or `/reset` | Clear the active conversation |
|
|
362
|
+
| `/cd <path>` | Change workspace directory |
|
|
363
|
+
| `/image <path> [prompt]` | Send an image with an optional prompt |
|
|
364
|
+
| `/paste [prompt]` | Use an image from the clipboard |
|
|
365
|
+
| `/learn <path>` | Import a local skill |
|
|
366
|
+
| `/memory list` | List stored memories |
|
|
367
|
+
| `/memory clear` | Clear stored memories |
|
|
368
|
+
| `/memory get <key>` | Read one memory value |
|
|
369
|
+
| `/memory set <key> <value>` | Store one memory value |
|
|
370
|
+
| `/stats` | Show session statistics |
|
|
371
|
+
| `/code <task>` | Start a code-agent task |
|
|
372
|
+
| `/exit` or `/quit` | Leave interactive mode |
|
|
373
|
+
|
|
374
|
+
## Configuration
|
|
375
|
+
|
|
376
|
+
Mint stores its local configuration in the platform config directory:
|
|
377
|
+
|
|
378
|
+
| Platform | Typical path |
|
|
379
|
+
| --- | --- |
|
|
380
|
+
| Linux | `~/.config/mint/mint-config.json` |
|
|
381
|
+
| macOS | `~/Library/Application Support/mint/mint-config.json` |
|
|
382
|
+
| Windows | `%APPDATA%\mint\mint-config.json` |
|
|
383
|
+
|
|
384
|
+
Create and inspect the configuration:
|
|
357
385
|
|
|
358
386
|
```bash
|
|
359
|
-
npm
|
|
360
|
-
npm
|
|
361
|
-
npm
|
|
362
|
-
npm
|
|
363
|
-
npm run build:linux
|
|
387
|
+
npm run cli -- config init
|
|
388
|
+
npm run cli -- config path
|
|
389
|
+
npm run cli -- config show
|
|
390
|
+
npm run cli -- config doctor
|
|
364
391
|
```
|
|
365
392
|
|
|
366
|
-
|
|
393
|
+
Configuration covers provider credentials, model preferences, browser context,
|
|
394
|
+
voice and TTS, proactive suggestions, headless tasks, updates, workflows, MCP
|
|
395
|
+
servers, and optional integrations such as Calendar, Gmail, Notion, Telegram,
|
|
396
|
+
Discord, Slack, LINE, WhatsApp, Google Search, and Brave Search.
|
|
397
|
+
|
|
398
|
+
The optional browser smart-context helper can provide active-tab context from:
|
|
367
399
|
|
|
368
|
-
|
|
400
|
+
```text
|
|
401
|
+
http://127.0.0.1:3212/context
|
|
402
|
+
```
|
|
369
403
|
|
|
370
|
-
|
|
371
|
-
<summary>Show details</summary>
|
|
404
|
+
Chromium automation uses the local debugging endpoint:
|
|
372
405
|
|
|
373
406
|
```text
|
|
374
|
-
|
|
375
|
-
├── main.js # Electron bootstrap and wiring
|
|
376
|
-
├── mint-cli.js # CLI entry point
|
|
377
|
-
├── mint-cli-logic.js # CLI action executor bridge
|
|
378
|
-
├── src/
|
|
379
|
-
│ ├── AI_Brain/ # Providers, memory, RAG, autonomous/headless agents
|
|
380
|
-
│ ├── Automation_Layer/ # File, app, website, and browser automation
|
|
381
|
-
│ ├── Channels/ # Messaging and search bridges
|
|
382
|
-
│ ├── CLI/ # Unified CLI UI, router, code agent, workspaces
|
|
383
|
-
│ ├── Command_Parser/ # Structured AI response parser
|
|
384
|
-
│ ├── Plugins/ # Plugin manager and integrations
|
|
385
|
-
│ ├── System/ # Config, IPC, safety, windows, screen capture, notifications
|
|
386
|
-
│ └── UI/ # Electron renderer, settings, widgets, spotlight
|
|
387
|
-
├── tests/ # Jest tests
|
|
388
|
-
├── docs/ # Documentation site
|
|
389
|
-
└── package.json
|
|
407
|
+
http://127.0.0.1:9222/json/list
|
|
390
408
|
```
|
|
391
409
|
|
|
392
|
-
|
|
410
|
+
## Webhook Integrations
|
|
393
411
|
|
|
394
|
-
|
|
412
|
+
LINE and WhatsApp webhook listeners bind to localhost by default. Read
|
|
413
|
+
[`docs/WEBHOOK_FORWARDING.md`](docs/WEBHOOK_FORWARDING.md) before exposing them
|
|
414
|
+
through a TLS tunnel.
|
|
395
415
|
|
|
396
|
-
|
|
397
|
-
<summary>Show details</summary>
|
|
416
|
+
## Safety And Privacy
|
|
398
417
|
|
|
399
|
-
|
|
400
|
-
- API keys are stored locally in Mint config or environment variables.
|
|
401
|
-
- Google OAuth refresh tokens for Gmail and Calendar are stored locally in Mint config.
|
|
402
|
-
- Desktop chat images sent by the user are stored locally in `~/.config/mint/Pictures`, with metadata in `~/.config/mint/Pictures/pictures.json`.
|
|
403
|
-
- Desktop chat history is stored locally in `~/.config/mint/mint-chat-history.json`.
|
|
404
|
-
- Local OpenAI-compatible providers require a running local server such as LM Studio.
|
|
405
|
-
- Some desktop features depend on Linux tools such as `xdg-open`, `gio`, `xdotool`, `amixer`, `pactl`, `brightnessctl`, or `xbacklight`.
|
|
406
|
-
- Electron GUI behavior should be smoke-tested manually after large UI or main-process changes.
|
|
418
|
+
Mint keeps high-risk behavior behind explicit policy checks:
|
|
407
419
|
|
|
408
|
-
|
|
420
|
+
- Shell commands are evaluated before execution.
|
|
421
|
+
- Code edits and update installation require approval.
|
|
422
|
+
- Sensitive directories such as `.ssh`, `.gnupg`, and Mint's own config
|
|
423
|
+
directory are protected by default.
|
|
424
|
+
- Sensitive filenames such as `.env` and private key files are blocked from
|
|
425
|
+
routine workspace access.
|
|
426
|
+
- LINE and WhatsApp webhook services listen locally unless you intentionally
|
|
427
|
+
forward them.
|
|
409
428
|
|
|
410
|
-
|
|
429
|
+
Review the generated command or edit preview before approving an action.
|
|
411
430
|
|
|
412
|
-
|
|
413
|
-
<summary>Show details</summary>
|
|
431
|
+
## Development
|
|
414
432
|
|
|
415
|
-
|
|
416
|
-
- **Local Picture Storage:** Desktop images are saved only on the user's machine, under `~/.config/mint/Pictures`, after the user sends a message with an image.
|
|
417
|
-
- **No Raw Image History:** Saved desktop images are omitted from chat history as raw base64 and replaced with a text placeholder.
|
|
418
|
-
- **User Approval:** Shell commands, patches, and file writes require explicit approval in the CLI agent.
|
|
419
|
-
- **Safety Manager:** Dangerous commands and actions are blocked or gated by deterministic policy.
|
|
420
|
-
- **Action Audit Trail:** Tool actions are logged locally for debugging and accountability.
|
|
421
|
-
- **Secure Config Practice:** Keys stay on the user's machine and are only sent to the selected AI/search provider.
|
|
433
|
+
Useful validation commands:
|
|
422
434
|
|
|
423
|
-
|
|
435
|
+
```bash
|
|
436
|
+
npm run build:web
|
|
437
|
+
cargo test -p mint-core -p mint-cli -p mint-desktop
|
|
438
|
+
cargo check -p mint-desktop
|
|
439
|
+
npm run tauri:build -- --debug --no-bundle
|
|
440
|
+
```
|
|
424
441
|
|
|
425
|
-
|
|
442
|
+
### Project Layout
|
|
443
|
+
|
|
444
|
+
```text
|
|
445
|
+
crates/mint-core Shared Rust domain logic
|
|
446
|
+
crates/mint-cli Native Rust CLI
|
|
447
|
+
src-tauri Tauri desktop backend and IPC commands
|
|
448
|
+
src/renderer React and TypeScript webview UI
|
|
449
|
+
docs Project documentation
|
|
450
|
+
out/renderer Generated Vite renderer output
|
|
451
|
+
```
|
|
426
452
|
|
|
427
|
-
|
|
428
|
-
See the [LICENSE](LICENSE) file for details.
|
|
453
|
+
## Migration Status
|
|
429
454
|
|
|
430
|
-
|
|
455
|
+
Mint's historical Electron desktop runtime and Node CLI have been removed. The
|
|
456
|
+
active application is the native Tauri v2 and Rust implementation documented
|
|
457
|
+
above. See [`TAURI_MIGRATION.md`](TAURI_MIGRATION.md) for compatibility notes.
|
|
458
|
+
|
|
459
|
+
## Contributing
|
|
460
|
+
|
|
461
|
+
We welcome contributions from the community! Whether you want to fix a bug, add a new provider, or build a new integration, please check out our [CONTRIBUTING.md](file:///home/pheem49/vscode/Project/Mint-CLI/CONTRIBUTING.md) guide for setup instructions, project architecture details, and our roadmap.
|
|
462
|
+
|
|
463
|
+
## License
|
|
464
|
+
|
|
465
|
+
Mint is licensed under the [AGPL-3.0-only license](LICENSE).
|
|
431
466
|
|
|
432
|
-
<p align="center">Made with love by <a href="https://github.com/Pheem49">Pheem49</a></p>
|