{"id":34570554,"url":"https://github.com/haiphucnguyen/askimo","last_synced_at":"2026-05-01T07:04:58.943Z","repository":{"id":309329892,"uuid":"1032321090","full_name":"haiphucnguyen/askimo","owner":"haiphucnguyen","description":"Local-first AI agent platform for desktop and CLI. Chat, RAG search, multi-step Plans workflows, MCP tools, and script runner. Supports OpenAI, Claude, Gemini, Grok, Ollama, LM Studio and more","archived":false,"fork":false,"pushed_at":"2026-04-28T06:26:56.000Z","size":67212,"stargazers_count":93,"open_issues_count":15,"forks_count":13,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-04-28T08:32:39.233Z","etag":null,"topics":["agentic-workflow","ai","ai-assistant","artificial-intelligence","chatgpt","claude","desktop-app","gemini","gemini-client","grok","langchain4j","llm","local-llm","mcp","model-context-protocol","ollama-gui","openai-client","openai-gui","rag","retrieval-augmented-generation"],"latest_commit_sha":null,"homepage":"https://askimo.chat","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/haiphucnguyen.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":"NOTICE","maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-08-05T06:25:32.000Z","updated_at":"2026-04-28T06:21:56.000Z","dependencies_parsed_at":"2026-01-03T05:03:40.496Z","dependency_job_id":null,"html_url":"https://github.com/haiphucnguyen/askimo","commit_stats":null,"previous_names":["haiphucnguyen/askimo"],"tags_count":108,"template":false,"template_full_name":null,"purl":"pkg:github/haiphucnguyen/askimo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/haiphucnguyen%2Faskimo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/haiphucnguyen%2Faskimo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/haiphucnguyen%2Faskimo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/haiphucnguyen%2Faskimo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/haiphucnguyen","download_url":"https://codeload.github.com/haiphucnguyen/askimo/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/haiphucnguyen%2Faskimo/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32487746,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-30T13:12:12.517Z","status":"online","status_checked_at":"2026-05-01T02:00:05.856Z","response_time":64,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agentic-workflow","ai","ai-assistant","artificial-intelligence","chatgpt","claude","desktop-app","gemini","gemini-client","grok","langchain4j","llm","local-llm","mcp","model-context-protocol","ollama-gui","openai-client","openai-gui","rag","retrieval-augmented-generation"],"created_at":"2025-12-24T09:33:31.721Z","updated_at":"2026-05-01T07:04:58.919Z","avatar_url":"https://github.com/haiphucnguyen.png","language":"Kotlin","funding_links":[],"categories":["人工智能"],"sub_categories":["终端助手"],"readme":"\u003cp align=\"center\"\u003e\n  \u003cpicture\u003e\n    \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"public/github-logo-dark.svg\"\u003e\n    \u003cimg alt=\"Askimo - AI toolkit for your workflows.\" src=\"public/github-logo-light.svg\"\u003e\n  \u003c/picture\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cb\u003eOne app. Every AI model. Your files stay local.\u003c/b\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  Chat · Search your files · Run scripts · Build multi-step AI workflows - all offline-capable, all on your machine.\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/haiphucnguyen/askimo/actions/workflows/cli-release.yml\"\u003e\n    \u003cimg src=\"https://github.com/haiphucnguyen/askimo/actions/workflows/cli-release.yml/badge.svg\" alt=\"CLI Build\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/haiphucnguyen/askimo/actions/workflows/desktop-release.yml\"\u003e\n    \u003cimg src=\"https://github.com/haiphucnguyen/askimo/actions/workflows/desktop-release.yml/badge.svg\" alt=\"Desktop Build\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"./LICENSE\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/License-AGPLv3-blue.svg\" alt=\"License\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/haiphucnguyen/askimo/releases\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/v/release/haiphucnguyen/askimo\" alt=\"Release\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"./CONTRIBUTING.md#-enforcing-dco\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/DCO-Signed--off-green.svg\" alt=\"DCO\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/haiphucnguyen/askimo/stargazers\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/stars/haiphucnguyen/askimo?style=social\" alt=\"GitHub Stars\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/haiphucnguyen/askimo/releases\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/downloads/haiphucnguyen/askimo/total\" alt=\"Total Downloads\"\u003e\n  \u003c/a\u003e\n  \u003cimg src=\"https://img.shields.io/badge/macOS-000000?logo=apple\u0026logoColor=white\" alt=\"macOS\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Windows-0078D6?logo=windows\u0026logoColor=white\" alt=\"Windows\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Linux-FCC624?logo=linux\u0026logoColor=black\" alt=\"Linux\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/OpenAI-Supported-412991\" alt=\"OpenAI\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Claude-Supported-542683\" alt=\"Claude\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Gemini-Supported-4285F4\" alt=\"Gemini\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Grok-Supported-1DA1F2\" alt=\"Grok\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Ollama-Supported-000000\" alt=\"Ollama\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/LocalAI-Supported-00ADD8\" alt=\"LocalAI\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/LMStudio-Supported-6B46C1\" alt=\"LMStudio\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/DockerAI-Supported-2496ED\" alt=\"DockerAI\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/haiphucnguyen/askimo/releases/latest\"\u003e\u003cstrong\u003e📥 Download\u003c/strong\u003e\u003c/a\u003e •\n  \u003ca href=\"https://askimo.chat/docs/\"\u003e\u003cstrong\u003e📖 Documentation\u003c/strong\u003e\u003c/a\u003e •\n  \u003ca href=\"https://github.com/haiphucnguyen/askimo/discussions\"\u003e\u003cstrong\u003e💬 Discussions\u003c/strong\u003e\u003c/a\u003e •\n  \u003ca href=\"https://github.com/haiphucnguyen/askimo/stargazers\"\u003e\u003cstrong\u003e⭐ Star on GitHub\u003c/strong\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n---\n\n## Why Askimo?\n\nMost AI desktop apps lock you into one model and one workflow. Askimo doesn't.\n\n- **Tired of switching tabs** between ChatGPT, Claude, and Gemini? Askimo runs all of them in one place.\n- **Worried about your files leaving your machine?** RAG runs locally - your documents never touch a cloud server.\n- **Need more than chat?** Run Python/Bash scripts, chain multi-step AI workflows (Plans), and connect MCP tools - all from the same app.\n\n---\n\n## See It in Action\n\n**Multi-step AI Plans** - fill in a form, get a finished deliverable:\n\n[![Askimo Plans Demo](public/askimo_plan_1280.gif)](public/askimo_plan_1920.gif)\n\n**RAG** - search and chat with your local files:\n\n[![Askimo RAG Demo](public/askimo_rag_1280.gif)](public/askimo_rag_1920.gif)\n\n**Script runner** - execute Python, Bash, and JavaScript from chat:\n\n[![Askimo Run Script Demo](public/askimo_run_script_1280.gif)](public/askimo_run_script_1920.gif)\n\n**MCP tools** - connect any MCP-compatible server:\n\n[![Askimo MCP Demo](public/askimo_mcp_1280.gif)](public/askimo_mcp_1920.gif)\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"public/desktop_ai_provider_switcher.png\" alt=\"Provider Switching\" width=\"45%\"\u003e\n  \u003cimg src=\"public/mcp_tools_configure.png\" alt=\"MCP Tools Configuration\" width=\"45%\"\u003e\n  \u003cimg src=\"public/desktop_rag.png\" alt=\"RAG\" width=\"45%\"\u003e\n\u003c/p\u003e\n\n---\n\n## Quick Start\n\n**[Download for macOS, Windows, or Linux →](https://askimo.chat/download/)**\n\n1. Install and open Askimo\n2. Add a provider - paste an API key (OpenAI, Claude, Gemini…) or point it at a running Ollama instance\n3. Start chatting\n\n[Full setup guide →](https://askimo.chat/docs/desktop/ai-providers/)\n\n### System Requirements\n\n| | |\n|---|---|\n| **OS** | macOS 11+, Windows 10+, Linux (Ubuntu 20.04+, Debian 11+, Fedora 35+) |\n| **Memory** | 50–300 MB (AI models require additional memory depending on provider) |\n| **Disk** | 250 MB |\n\n---\n\n## Features\n\n- **Multi-provider** - Switch between OpenAI, Claude, Gemini, Grok, Ollama, LM Studio, LocalAI, Docker AI, or any OpenAI-compatible endpoint per session\n- **Local RAG** - Index local folders, files, and web URLs. Hybrid BM25 + vector retrieval with an AI classifier that skips retrieval when the query doesn't need it. Your data never leaves your machine.\n- **Plans (agentic workflows)** - Chain multi-step AI pipelines from a form UI. Each step builds on the previous; progress shown live. Export as PDF or Word. Define your own plans in YAML or generate them by describing your workflow in plain English.\n- **Script runner** - Execute Python, Bash, and JavaScript from chat. Python runs in an auto-managed virtualenv with automatic dependency installation.\n- **MCP tool integration** - Connect MCP-compatible servers via stdio or HTTP, scoped globally or per project\n- **Persistent sessions** - Conversations stored in a local SQLite database, restored on restart\n- **Vision** - Attach images to conversations; works with any multimodal model\n- **CLI** - Native binary (GraalVM). Scriptable, automatable, headless-friendly.\n- **Local telemetry** - Token usage, cost estimates, RAG performance per provider. Nothing uploaded.\n- **i18n** - English, Chinese (Simplified \u0026 Traditional), Japanese, Korean, French, Spanish, German, Portuguese, Vietnamese\n\n---\n\n## Plans - Multi-Step AI Workflows\n\nA single prompt cannot reason properly across multiple stages. Ask one prompt to research, analyse, and conclude simultaneously and the AI skips the dependencies between those stages.\n\nPlans mirror how experts actually think: each step has one focused job and one persona - researcher, analyst, strategist, writer. The output of each step feeds into the next as grounded context. No copy-pasting. No re-prompting.\n\n**Built-in plans:**\n\n| Plan | What it does |\n|---|---|\n| 💼 Job Application Writer | Analyses a job description, matches your CV, writes a tailored cover letter and ATS-optimised resume |\n| ✍️ Blog Post Writer | Generates an outline, writes the full draft, adds SEO metadata, outputs the polished post |\n| 🏆 Competitor Analysis | Profiles a competitor, compares against your product, produces a strategic opportunities report |\n| 📋 Meeting Notes Processor | Structures raw notes, extracts action items with owners, produces shareable minutes |\n| 📝 Research Report | Researches a topic and writes a structured report with executive summary and key findings |\n| 📧 Email Writer | Drafts and self-refines a professional email from a one-line description |\n\n**Create your own:** describe your workflow in plain English - the AI generates valid plan YAML instantly. Fine-tune in the built-in editor or duplicate any built-in plan as a starting point.\n\n---\n\n## Supported Providers\n\n**Cloud:** OpenAI · Anthropic Claude · Google Gemini · xAI Grok  \n**Local:** Ollama · LM Studio · LocalAI · Docker AI  \n**Custom:** Any OpenAI-compatible endpoint via custom base URL\n\n---\n\n## CLI (Optional)\n\n```bash\n# macOS/Linux\ncurl -sSL https://raw.githubusercontent.com/haiphucnguyen/askimo/main/tools/installation/install.sh | bash\n\n# Windows (PowerShell)\niwr -useb https://raw.githubusercontent.com/haiphucnguyen/askimo/main/tools/installation/install.ps1 | iex\n```\n\n[CLI documentation →](https://askimo.chat/cli/)\n\n---\n\n## Building from Source\n\n### Prerequisites\n\n- JDK 21+\n- Git\n\n```bash\ngit clone https://github.com/haiphucnguyen/askimo.git\ncd askimo\n\n# Run the desktop app\n./gradlew :desktop:run\n\n# Build native installers\n./gradlew :desktop:package\n\n# Build CLI native binary (requires GraalVM)\n./gradlew :cli:nativeCompile\n```\n\n### Project Structure\n\n| Module | Description |\n|---|---|\n| `desktop/` | Compose Multiplatform desktop application |\n| `desktop-shared/` | Shared UI components |\n| `cli/` | JLine3 REPL + GraalVM native image |\n| `shared/` | Core: providers, RAG, MCP, memory, tools, database, plans engine |\n\nSee [CONTRIBUTING.md](./CONTRIBUTING.md) for development guidelines and DCO requirements, or the [Development Getting Started Guide](https://askimo.chat/docs/development/getting-started/).\n\n---\n\n## Localization\n\nEnglish · 中文 (简体/繁體) · 日本語 · 한국어 · Français · Español · Deutsch · Português · Tiếng Việt\n\nWant to add a language? [Open a discussion](https://github.com/haiphucnguyen/askimo/discussions).\n\n---\n\n## Getting Help\n\n- [Documentation](https://askimo.chat/docs/)\n- [GitHub Discussions](https://github.com/haiphucnguyen/askimo/discussions)\n- [Issue Tracker](https://github.com/haiphucnguyen/askimo/issues)\n\n---\n\n## Contributing\n\nBug reports, feature requests, and pull requests are welcome. See [CONTRIBUTING.md](./CONTRIBUTING.md) for details.\n\n---\n\n## License\n\nAGPLv3. See [LICENSE](./LICENSE).\n\n---\n\n## Star History\n\n\u003ca href=\"https://www.star-history.com/?repos=haiphucnguyen%2Faskimo\u0026type=date\u0026legend=top-left\"\u003e\n \u003cpicture\u003e\n   \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://api.star-history.com/chart?repos=haiphucnguyen/askimo\u0026type=date\u0026theme=dark\u0026legend=top-left\" /\u003e\n   \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"https://api.star-history.com/chart?repos=haiphucnguyen/askimo\u0026type=date\u0026legend=top-left\" /\u003e\n   \u003cimg alt=\"Star History Chart\" src=\"https://api.star-history.com/chart?repos=haiphucnguyen/askimo\u0026type=date\u0026legend=top-left\" /\u003e\n \u003c/picture\u003e\n\u003c/a\u003e\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhaiphucnguyen%2Faskimo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhaiphucnguyen%2Faskimo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhaiphucnguyen%2Faskimo/lists"}