{"id":51594606,"url":"https://github.com/deftio/quikleaf","last_synced_at":"2026-07-11T17:31:01.061Z","repository":{"id":364678963,"uuid":"1266047056","full_name":"deftio/quikleaf","owner":"deftio","description":"quikleaf is a standalone markdown editor / assistant / cli with llm tooling based on quikdown.","archived":false,"fork":false,"pushed_at":"2026-06-26T06:18:08.000Z","size":429,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-26T07:21:09.542Z","etag":null,"topics":["markdown","markdown-editor"],"latest_commit_sha":null,"homepage":"https://deftio.github.io/quikleaf/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/deftio.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"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":null,"maintainers":null,"copyright":null,"agents":"agents.md","dco":null,"cla":null}},"created_at":"2026-06-11T09:29:12.000Z","updated_at":"2026-06-26T06:18:15.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/deftio/quikleaf","commit_stats":null,"previous_names":["deftio/quikleaf"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/deftio/quikleaf","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deftio%2Fquikleaf","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deftio%2Fquikleaf/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deftio%2Fquikleaf/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deftio%2Fquikleaf/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/deftio","download_url":"https://codeload.github.com/deftio/quikleaf/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deftio%2Fquikleaf/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35370428,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-11T02:00:05.354Z","response_time":104,"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":["markdown","markdown-editor"],"created_at":"2026-07-11T17:31:00.571Z","updated_at":"2026-07-11T17:31:01.052Z","avatar_url":"https://github.com/deftio.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# quikleaf\n\n[![License](https://img.shields.io/badge/license-BSD--2--Clause-blue.svg)](LICENSE)\n[![npm version](https://img.shields.io/npm/v/quikleaf.svg)](https://www.npmjs.com/package/quikleaf)\n[![CI](https://github.com/deftio/quikleaf/actions/workflows/ci.yml/badge.svg)](https://github.com/deftio/quikleaf/actions/workflows/ci.yml)\n\n\nA standalone, cross-platform **local** markdown editor with rich rendering and LLM chat integration.\n\nBuilt with [Tauri v2](https://tauri.app) and powered by [quikdown](https://github.com/deftio/quikdown).\n\n![quikleaf editor with rich fence rendering](docs/assets/quikleaf-demo.svg)\n\n## Features\n\n- **Rich Markdown Rendering** — Powered by [quikdown](https://github.com/deftio/quikdown) standalone bundle with support for syntax highlighting, Mermaid diagrams, Math/LaTeX, GeoJSON maps, 3D STL viewer, CSV/TSV tables, Vega/Vega-Lite charts, ABC music notation, SVG, and more — all rendered locally without external services.\n\n- **LLM Chat Integration** — Built-in AI assistant (QD) with streaming responses, 20+ document/memory/KV/file tools, slash commands, and a tool-calling loop with stop button. Supports OpenAI-compatible APIs (Ollama, OpenRouter, LM Studio, Groq) and Anthropic Claude. Auto-detects local Ollama and LM Studio.\n\n- **Project Mode** — Open a folder with `--project ./dir` to get a file tree sidebar, project-scoped file tools, persistent memory/KV store, and project state saving.\n\n- **Native Desktop App** — Fast startup, low memory, native file dialogs, CLI support, keyboard shortcuts, auto dark mode, resizable panels. Cross-platform: macOS, Windows, Linux.\n\n## Quick Start\n\n### Pre-built installers (recommended)\n\nDownload from the [Releases](https://github.com/deftio/quikleaf/releases) page:\n\n| Platform | Format |\n|----------|--------|\n| macOS (Apple Silicon) | `.dmg` |\n| macOS (Intel) | `.dmg` |\n| Windows | `.msi` / `.exe` |\n| Linux | `.deb` / `.AppImage` |\n\n### Install via npm\n\n```bash\nnpm install -g quikleaf\nquikleaf document.md\n```\n\n### Build from source\n\n```bash\ngit clone https://github.com/deftio/quikleaf.git \u0026\u0026 cd quikleaf\nnpm install \u0026\u0026 npm run setup \u0026\u0026 npm run tauri:build\n```\n\n`npm run setup` checks for required system dependencies (Node.js, Rust,\nplatform libraries) and prints install commands for your platform.\nThe built app and installers are in `src-tauri/target/release/bundle/`.\n\n## Usage\n\n### Simple Mode (single file)\n\n```bash\nquikleaf                    # Open empty editor\nquikleaf document.md        # Open a file\n```\n\n### Project Mode (folder)\n\n```bash\nquikleaf --project ./mydir  # Open folder with file tree and project tools\n```\n\nProject mode enables:\n- File tree sidebar\n- File read/write/list/stat tools for the LLM\n- Persistent memory and key-value store\n- Project state saved to `quikleaf.prj`\n\n### Keyboard Shortcuts\n\n| Shortcut | Action |\n|----------|--------|\n| `Cmd/Ctrl + O` | Open file |\n| `Cmd/Ctrl + S` | Save file |\n| `Enter` (in chat) | Send message |\n| `Shift + Enter` (in chat) | New line |\n\n### Chat Slash Commands\n\n| Command | Description |\n|---------|-------------|\n| `/help` | Show available commands |\n| `/clear` | Clear chat history |\n| `/model` | Show current LLM model |\n| `/memory` | Show scratchpad contents |\n| `/tools` | List available tools |\n\n## LLM Configuration\n\nClick **Settings** in the title bar, or let quikleaf auto-detect a local Ollama or LM Studio instance.\n\n### Example Configurations\n\n**Local Ollama:**\n```\nProvider: OpenAI-compatible\nHost: http://localhost:11434/v1\nAPI Key: (leave blank)\nModel: llama3.2\n```\n\n**Anthropic Claude:**\n```\nProvider: Anthropic\nHost: https://api.anthropic.com\nAPI Key: sk-ant-...\nModel: claude-sonnet-4-20250514\n```\n\n**OpenRouter:**\n```\nProvider: OpenAI-compatible\nHost: https://openrouter.ai/api/v1\nAPI Key: sk-or-v1-...\nModel: meta-llama/llama-3.1-70b-instruct\n```\n\n## Building from Source\n\n### Prerequisites\n\n- **Node.js** 18+ and npm\n- **Rust** 1.70+ ([rustup.rs](https://rustup.rs))\n- Platform-specific dependencies (see below)\n\n**macOS:**\n```bash\nxcode-select --install\n```\n\n**Linux (Debian/Ubuntu):**\n```bash\nsudo apt install -y libwebkit2gtk-4.1-dev build-essential curl wget file \\\n  libxdo-dev libssl-dev libayatana-appindicator3-dev librsvg2-dev\n```\n\n**Windows:**\n- Visual Studio 2022 with \"Desktop development with C++\" workload\n\n### Build Commands\n\n```bash\nnpm install                 # Install frontend deps\nnpm run dev                 # Vite dev server (frontend only)\nnpm run tauri:dev           # Full dev mode with hot reload\nnpm run tauri:build         # Production build with installer\nnpm run check               # TypeScript type checking\ncd src-tauri \u0026\u0026 cargo check # Rust compilation check\n```\n\n### Build Output\n\n- **macOS**: `src-tauri/target/release/bundle/dmg/`\n- **Windows**: `src-tauri/target/release/bundle/nsis/`\n- **Linux**: `src-tauri/target/release/bundle/deb/`, `appimage/`\n\n## Architecture\n\n```\nsrc-tauri/              Rust backend (Tauri v2)\n  src/commands/\n    fs.rs               File I/O commands\n    llm.rs              LLM API proxy with streaming\n    project.rs          Project state, memory, KV, file tools\n  src/main.rs           CLI parsing, app setup, asset protocol\n  src/lib.rs            Library entry point (mirrors main.rs)\n\nsrc/                    TypeScript frontend (Vite)\n  editor/editor.ts      quikdown editor wrapper\n  chat/chat-ui.ts       Chat UI, tool dispatch, slash commands\n  chat/providers.ts     LLM provider adapters (OpenAI, Anthropic)\n  settings/settings.ts  LLM config UI, auto-detect\n  project/file-tree.ts  Project mode file tree sidebar\n  main.ts               App init, file ops, project mode\n\nindex.html              App shell with all CSS\n```\n\n### Key Design Decisions\n\n- LLM operates on raw markdown only — never sees or produces HTML\n- LLM API calls proxied through Rust backend to avoid CORS and protect API keys\n- quikdown standalone bundle includes all fence renderers (~8MB) for offline use\n- Tool-calling loop with 60s timeout per call and user-accessible stop button\n\n## Troubleshooting\n\n**macOS: \"quikleaf is damaged and can't be opened\"**\n```bash\nxattr -cr /Applications/quikleaf.app\n```\n\n**LLM not responding:** Check endpoint is reachable, API key is correct, and model name matches. For Ollama, ensure `ollama serve` is running.\n\n**Tool calls hanging:** Click the red \"Stop\" button, or try a different model. Some smaller models don't handle tool calling well.\n\n## License\n\nBSD 2-Clause License. Copyright (c) 2026 deftio.\n\nSee [LICENSE](LICENSE) for details.\n\n## Links\n\n- [quikleaf on GitHub](https://github.com/deftio/quikleaf)\n- [quikdown on GitHub](https://github.com/deftio/quikdown)\n- [Issues](https://github.com/deftio/quikleaf/issues)\n- [Full Specification](dev/quikleaf-spec.md) \n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeftio%2Fquikleaf","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdeftio%2Fquikleaf","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeftio%2Fquikleaf/lists"}