{"id":50429190,"url":"https://github.com/taesoopark-pts/latticeai","last_synced_at":"2026-06-14T13:02:25.617Z","repository":{"id":358500472,"uuid":"1238167223","full_name":"TaeSooPark-PTS/LatticeAI","owner":"TaeSooPark-PTS","description":"Self-hosted AI workspace for local MLX and cloud LLMs, with web chat, VS Code, Telegram, MCP, and Graph RAG","archived":false,"fork":false,"pushed_at":"2026-06-07T16:24:13.000Z","size":35602,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-07T17:25:11.883Z","etag":null,"topics":["ai-agent","developer-tools","fastapi","knowledge-graph","llm","local-ai","mcp","mlx","ollama","openai-compatible","privacy-first","rag","self-hosted","telegram-bot","vscode","vscode-extension"],"latest_commit_sha":null,"homepage":"https://github.com/TaeSooPark-PTS/LatticeAI#readme","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TaeSooPark-PTS.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","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-05-13T21:58:23.000Z","updated_at":"2026-06-07T16:24:12.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/TaeSooPark-PTS/LatticeAI","commit_stats":null,"previous_names":["taesoopark-pts/latticeai"],"tags_count":29,"template":false,"template_full_name":null,"purl":"pkg:github/TaeSooPark-PTS/LatticeAI","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TaeSooPark-PTS%2FLatticeAI","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TaeSooPark-PTS%2FLatticeAI/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TaeSooPark-PTS%2FLatticeAI/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TaeSooPark-PTS%2FLatticeAI/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TaeSooPark-PTS","download_url":"https://codeload.github.com/TaeSooPark-PTS/LatticeAI/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TaeSooPark-PTS%2FLatticeAI/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34322074,"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-06-14T02:00:07.365Z","response_time":62,"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":["ai-agent","developer-tools","fastapi","knowledge-graph","llm","local-ai","mcp","mlx","ollama","openai-compatible","privacy-first","rag","self-hosted","telegram-bot","vscode","vscode-extension"],"created_at":"2026-05-31T13:00:49.273Z","updated_at":"2026-06-14T13:02:25.580Z","avatar_url":"https://github.com/TaeSooPark-PTS.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/TaeSooPark-PTS/LatticeAI/main/docs/images/logo.svg\" alt=\"Lattice AI\" width=\"280\"/\u003e\n  \u003cbr/\u003e\n  \u003cstrong\u003eAI Workspace OS for local-first graph, memory, agents, workflows, skills, and timelines.\u003c/strong\u003e\n  \u003cbr/\u003e\u003cbr/\u003e\n\n[![PyPI](https://img.shields.io/pypi/v/ltcai?label=PyPI\u0026color=blue)](https://pypi.org/project/ltcai/)\n[![PyPI Downloads](https://img.shields.io/pypi/dm/ltcai?label=PyPI%20downloads)](https://pypi.org/project/ltcai/)\n[![npm](https://img.shields.io/npm/v/ltcai?label=npm)](https://www.npmjs.com/package/ltcai)\n[![VS Code](https://vsmarketplacebadges.dev/version-short/parktaesoo.ltcai.svg)](https://marketplace.visualstudio.com/items?itemName=parktaesoo.ltcai)\n[![Open VSX](https://img.shields.io/open-vsx/v/parktaesoo/ltcai?label=Open%20VSX)](https://open-vsx.org/extension/parktaesoo/ltcai)\n[![CI](https://github.com/TaeSooPark-PTS/LatticeAI/actions/workflows/ci.yml/badge.svg)](https://github.com/TaeSooPark-PTS/LatticeAI/actions/workflows/ci.yml)\n[![License: MIT](https://img.shields.io/badge/License-MIT-green)](./LICENSE)\n[![Python 3.11+](https://img.shields.io/badge/python-3.11+-blue)](https://www.python.org/)\n\n  \u003cbr/\u003e\n\n  \u003cimg src=\"https://raw.githubusercontent.com/TaeSooPark-PTS/LatticeAI/main/docs/images/lattice-ai-demo.gif\" alt=\"Lattice AI demo showing chat, knowledge graph, and admin dashboard\" width=\"100%\"/\u003e\n\u003c/div\u003e\n\n---\n\n## What is Lattice AI?\n\nMost AI tools answer one chat at a time. They do not remember your folders, your project history, your previous decisions, or how your files relate to each other.\n\n**Lattice AI turns your local workspace into an AI Workspace OS.**\n\nIt reads approved local folders, indexes chats and documents, builds a searchable knowledge graph, and connects the graph to snapshots, personal memory, agent runs, workflow history, skills, and an auditable timeline.\n\n```text\nLocal files + chats + folders\n          ↓\nAutomatic knowledge graph\n          ↓\nGraph-aware chat, snapshots, memory, agents, workflows, skills, and timeline\n```\n\n### New in 1.4.0: Server App Final Decomposition\n\n- **server_app.py final decomposition** — the app shell is now FastAPI assembly,\n  lifespan, middleware, static mounting, and router wiring only\n  (~5,381 → 1,303 lines)\n- **Chat / model / tools extraction** — chat/history/agent, model runtime and\n  provider helpers, tools, local files, computer-use, permissions, upload,\n  garden/setup/static UI, MCP, and KG glue now live in API routers and services\n- **AppContext and dependency cleanup** — routers receive explicit dependencies\n  and do not import the FastAPI app; service modules own runtime and dispatch\n  business logic\n- **Safety validation suite** — route compatibility, import/startup, streaming,\n  model endpoint, tools/local/CU, release-artifact, and documentation stale\n  checks guard the split\n- **Compatibility preserved** — all public API paths, request/response schemas,\n  `server:app`, CLI, UI, Knowledge Graph, Admin/Security, Workspace OS, and\n  VS Code expectations remain unchanged\n\n### New in 1.2.0: Server App Modularization\n\n- **server_app.py modularized** — Workspace/Organization and health/engine\n  endpoints extracted into dedicated routers (`latticeai/api/*`) backed by a\n  service layer (`latticeai/services/*`); `server_app` is now app assembly +\n  router include (~6,585 → ~5,948 lines)\n- **Routers / services split** — `create_workspace_router`,\n  `create_health_router`, `WorkspaceService`, `ModelService`, `ChatService`\n- **Workspace API service layer** — scope resolution and role/permission checks\n  centralized in `WorkspaceService`\n- **Workspace / org guardrails** — non-members can't read/write org data,\n  viewers can't write, owners/admins manage members; no-auth local owner\n  fallback preserved\n- **Health / model / chat modularization** — `/health`, `/mode`,\n  `/runtime_features`, `/engines` via the health router; chat trace recording\n  via the chat service (streaming behavior unchanged)\n- **Compatibility preserved** — `server:app` import path, all API routes, CLI,\n  Knowledge Graph / Admin / Security routers, and VS Code integration unchanged\n\n### New in 1.1.0: Organization Workspace Foundation\n\n- **Organization Workspace** alongside Personal Workspace — create shared org\n  workspaces, list/switch between them, and archive (non-destructively)\n- **Workspace roles \u0026 permissions** — `owner`, `admin`, `member`, `viewer`\n  mapped to read / write / manage-members / manage-workspace\n- **Workspace-scoped data** — snapshots, memory, agent runs, workflows, traces,\n  and timeline carry a `workspace_id`; reads scope via the `X-Workspace-Id` header\n- **CI / release hardening** — Node.js 24 ready workflow, version-scoped\n  artifact upload (never `dist/*`), and a release artifact validator\n- **Enterprise extension foundation (open-core)** — a stable seam for a future\n  Enterprise plugin; Community ships everything it has today, unrestricted\n  (see [docs/ENTERPRISE.md](docs/ENTERPRISE.md) and\n  [docs/EDITION_STRATEGY.md](docs/EDITION_STRATEGY.md))\n\n### New in 1.0.0: AI Workspace OS\n\n- Workspace OS command center at `/workspace`\n- First-run onboarding state API and UI\n- Graph RAG answer traces with sources, nodes, edges, confidence, and jump links\n- Local indexing dashboard with watcher state, success/failure counts, pause/resume/remove\n- Workspace snapshots, Time Machine views, export, and Knowledge Diff\n- Personal memory CRUD/search linked back to the graph\n- Multi-agent graph entities and agent run history\n- Relationship Explorer for inbound, outbound, related entities, and shortest path\n- Local Computer Memory remains OFF by default and requires explicit approval\n- Skill Marketplace registry with install, uninstall, update, enable, disable, and version state\n- Workflow Graph for upload -\u003e summarize -\u003e generate -\u003e export style work histories\n- VS Code commands for Explain Selection, Refactor Selection, Generate Tests, Send To Lattice, and Ask About Current File\n\n### Built for people who want\n\n- a private AI workspace that runs from their own machine\n- local model setup without hunting through many tools\n- folder indexing that becomes useful AI memory\n- a visual knowledge graph instead of disconnected files and chats\n- optional team/admin controls for audit, permissions, and sensitive-data monitoring\n\n---\n\n## Quick Start\n\n### Python / PyPI\n\n```bash\npip install ltcai\nLTCAI\n# open http://localhost:4825\n```\n\n### Apple Silicon local models\n\n```bash\npip install \"ltcai[local]\"\nLTCAI\n```\n\n### Node / npm\n\n```bash\nnpm install -g ltcai\nLTCAI\n```\n\n### VS Code / Cursor\n\n1. Install **Lattice AI** from the [VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=parktaesoo.ltcai) or [Open VSX](https://open-vsx.org/extension/parktaesoo/ltcai)\n2. Start the local server with `LTCAI`\n3. Press `Cmd+Shift+A` to open the chat panel\n\n**First run:** create an account -\u003e the first account becomes admin -\u003e open `/workspace` -\u003e complete onboarding -\u003e choose a model -\u003e connect folders -\u003e start asking questions.\n\n---\n\n## The 3-minute workflow\n\n```text\n1. Install\n   pip install ltcai \u0026\u0026 LTCAI\n\n2. Detect hardware\n   CPU, GPU, RAM are detected and a suitable local model is recommended.\n\n3. Connect folders\n   Pick the local folders you want Lattice AI to index.\n\n4. Build knowledge\n   Files and chats become nodes and edges in a local knowledge graph.\n\n5. Ask questions\n   “What did I decide about the auth migration last week?”\n\n6. Keep working\n   Use the same local knowledge from the web UI, VS Code, Telegram, or MCP clients.\n```\n\n---\n\n## Product Preview\n\n\u003ctable\u003e\n\u003ctr\u003e\n\u003ctd align=\"center\" width=\"33%\"\u003e\n  \u003cb\u003eWorkspace Chat\u003c/b\u003e\u003cbr/\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/TaeSooPark-PTS/LatticeAI/main/docs/images/screenshot-chat.png\" alt=\"Lattice AI workspace chat\" width=\"100%\"/\u003e\n  \u003csub\u003eChat with local/cloud models, upload files, and control pipelines.\u003c/sub\u003e\n\u003c/td\u003e\n\u003ctd align=\"center\" width=\"33%\"\u003e\n  \u003cb\u003eKnowledge Graph\u003c/b\u003e\u003cbr/\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/TaeSooPark-PTS/LatticeAI/main/docs/images/screenshot-graph.png\" alt=\"Lattice AI knowledge graph\" width=\"100%\"/\u003e\n  \u003csub\u003eAutomatically built from chats, files, folders, and project context.\u003c/sub\u003e\n\u003c/td\u003e\n\u003ctd align=\"center\" width=\"33%\"\u003e\n  \u003cb\u003eAdmin Dashboard\u003c/b\u003e\u003cbr/\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/TaeSooPark-PTS/LatticeAI/main/docs/images/screenshot-admin.png\" alt=\"Lattice AI admin dashboard\" width=\"100%\"/\u003e\n  \u003csub\u003eUser management, audit logs, permissions, and security monitoring.\u003c/sub\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\n---\n\n## Why it is different\n\n| Problem | Lattice AI approach |\n|---|---|\n| AI forgets every conversation | Chats and files are indexed into persistent local memory |\n| Files are scattered across folders | Approved folders become searchable graph context |\n| Local model setup is confusing | Hardware detection recommends and loads a suitable model |\n| Graph tools require manual node editing | Nodes and edges are created automatically from real work |\n| Cloud AI may expose private data | Local models keep data on your machine; cloud is opt-in |\n| Teams need visibility | Admin dashboard, audit logs, role controls, and sensitive-data monitoring |\n\n---\n\n## Core Features\n\n### Local-first AI workspace\n\n- Web UI running from a local server\n- Local SQLite storage under `~/.ltcai/`\n- Local folder indexing with explicit approval\n- File upload, chat history, graph search, and document generation\n- Optional cloud providers when you choose to use them\n\n### Automatic knowledge graph\n\nLattice AI turns your work into structure automatically.\n\n**Nodes** can represent:\n\n| Node type | Examples |\n|---|---|\n| Document | PDF, DOCX, PPTX, XLSX, Markdown, code files |\n| Concept | technologies, project names, ideas, architecture topics |\n| Person | you, teammates, mentioned people |\n| Chat | previous conversations and sessions |\n| Task | TODOs, action items, follow-ups |\n| Decision | choices made during discussions |\n\n**Edges** describe relationships such as:\n\n`mentions` · `contains` · `depends on` · `explains` · `uses` · `replaces` · `supports` · `related to`\n\nThe graph is curated automatically: noisy tokens, file extensions, generic words, and hard secrets are filtered before promotion.\n\n### Model loading that users can trust\n\nLattice AI keeps model identity consistent across recommendation, download, load, backend router state, and frontend display.\n\n- unified model resolution\n- local model smoke test after load\n- `ok` / `degraded` / `failed` compatibility status\n- per-family compatibility profiles for GPT-OSS, Gemma, Qwen, Llama, Mistral, Phi, Deepseek, and more\n- fast post-processing path during normal chat\n- recovery path only when output looks broken\n\n### Admin and security command center\n\nFor team or organization usage, Lattice AI includes admin-facing controls:\n\n- user management and roles\n- permission approvals for local file access\n- audit event timeline\n- sensitive chat/file detection\n- risk overview by user\n- raw data explorer with hard-secret redaction\n- export to JSON, CSV, XLSX, TXT, or PDF\n\nHard secrets such as API keys, tokens, passwords, private keys, and common cloud credentials are redacted from security responses.\n\n---\n\n## Supported Models\n\n### Local on Apple Silicon MLX\n\n| Model | Best for | Approx. size | Suggested RAM |\n|---|---|---:|---:|\n| Qwen3-VL 4B | Multimodal / low spec | ~2.7 GB | 8 GB |\n| Qwen3-VL 8B | Multimodal / balanced | ~4.8 GB | 16 GB |\n| GPT-OSS 20B | Reasoning / open-weight | ~12.1 GB | 32 GB |\n| Gemma 4 26B | Multimodal / large | ~15.6 GB | 32 GB |\n| Gemma 4 31B | Multimodal / latest Gemma 4 | ~18.4 GB | 48 GB |\n| Qwen3-VL 30B A3B | Multimodal / top local | ~18 GB | 48 GB |\n| GPT-OSS 120B | Large reasoning model | ~62.3 GB | 128 GB |\n| Phi 4 Mini | Fast coding/general chat | ~2.2 GB | 8 GB |\n| Llama 3.1 8B | General chat | ~4.7 GB | 8 GB |\n| Mistral 7B v0.3 | General / Apache | ~4.1 GB | 8 GB |\n\n### Cross-platform engines\n\nLattice AI can also work with models served by:\n\n- Ollama\n- LM Studio\n- llama.cpp\n- vLLM\n- OpenAI-compatible local or remote endpoints\n\n### Cloud providers\n\nCloud models are optional. When enabled, prompts are sent to the selected provider.\n\nSupported routes include OpenAI-compatible APIs, OpenRouter, Groq, Together, xAI, and other compatible endpoints.\n\n---\n\n## Privacy and data storage\n\n| Area | Default behavior |\n|---|---|\n| Storage | Data is stored locally under `~/.ltcai/` |\n| Default binding | `127.0.0.1:4825` local server |\n| Telemetry | No built-in product telemetry by default |\n| Folder access | Explicit approval per folder/action scope |\n| Sensitive files | `.env`, credentials, keys, certificates, and similar files are auto-excluded |\n| Cloud models | Off unless configured; cloud prompts go to the selected provider |\n| Delete controls | Remove chats, graph nodes, indexed folders, and local data |\n\n---\n\n## Comparison\n\n| Capability | Lattice AI | Open WebUI | Continue.dev | GitHub Copilot |\n|---|:---:|:---:|:---:|:---:|\n| Local model workflow | Yes | Yes | Yes | No |\n| Local folder indexing | Yes | Limited | Workspace-focused | Limited |\n| Automatic knowledge graph | Yes | No | No | No |\n| Chat + file memory | Yes | Partial | Partial | Partial |\n| VS Code / Cursor extension | Yes | No | Yes | Yes |\n| Admin dashboard | Yes | Yes | No | No |\n| Security audit exports | Yes | Limited | No | No |\n| Optional cloud models | Yes | Yes | Yes | Yes |\n| Local-first by default | Yes | Self-hosted | Local/dev focused | No |\n\n---\n\n## Current release\n\n**1.4.0** completes the Server App Final Decomposition release:\n\n- `server.py` remains the thin compatibility entrypoint and\n  `latticeai/server_app.py` is now a compact app assembly shell\n- chat/history/agent, model runtime/provider helpers, tools/local/CU/\n  permissions/upload, garden/setup/static pages, MCP, and KG router wiring are\n  extracted into `latticeai/api/*` and `latticeai/services/*`\n- route compatibility, streaming, model endpoint, tools/local/CU,\n  import/startup, build, packaging, and documentation stale-reference checks\n  are part of the release validation\n- Python package, npm package, VS Code extension, FastAPI app, and `/health`\n  version metadata are aligned at `1.4.0`\n\nSee the full [changelog](docs/CHANGELOG.md).\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eAll Features\u003c/b\u003e\u003c/summary\u003e\n\n### Core experience\n\n| Feature | Description |\n|---|---|\n| Web UI | Chat, file upload, model picker, graph view, admin pages |\n| Auto setup wizard | Detect hardware, recommend model, install dependencies, verify load |\n| Graph RAG | Retrieve context from indexed chats, files, and graph relationships |\n| Local folder indexing | Browse, audit, approve, index, and optionally watch folders |\n| Document generation | Use graph context to generate reports, summaries, and structured drafts |\n\n### Developer tools\n\n| Feature | Description |\n|---|---|\n| VS Code / Cursor | Chat panel, edit selection, explain code, generate code |\n| Multi-step agent | File edit/create, grep, todo, and terminal workflow with human-in-the-loop |\n| Multi-LLM pipeline | Plan, execute, and review with different models |\n| MCP server | Expose Lattice tools to MCP-compatible clients |\n| MCP registry | Install MCP servers from supported registries |\n| Skills browser | Browse and install optional skills |\n| Plugin browser | Browse compatible open-source plugins |\n\n### Access and communication\n\n| Feature | Description |\n|---|---|\n| Telegram bot | Chat, upload files, and manage models remotely |\n| PWA | Install the web UI on mobile/tablet home screens |\n| Public tunnel | `LTCAI --tunnel` for a temporary Cloudflare HTTPS URL |\n\n### Administration\n\n| Feature | Description |\n|---|---|\n| User management | Roles, permissions, account enable/disable |\n| SSO | Entra ID / Okta OIDC configuration |\n| Audit dashboard | AI usage, sensitive-data events, file access, exports |\n| Security monitoring | Rate limits, approval logs, raw explorer, redaction |\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eSecurity\u003c/b\u003e\u003c/summary\u003e\n\n| Property | Detail |\n|---|---|\n| Binding | Default `127.0.0.1:4825` local only |\n| Auth | Session required when network-exposed or public mode |\n| Cookies | `HttpOnly + SameSite=Lax`; no localStorage token |\n| Local file access | Approval-token gated by path, user, and action scope |\n| Package install | Admin-only with audit trail for MCP, skills, pip, npm |\n| CORS | Localhost only by default; configurable via `LATTICEAI_CORS_ALLOWED_ORIGINS` |\n| File upload | Magic-number signature checks for extension spoofing defense |\n| Rate limits | `/chat` 30/min · `/agent` 6/min · `/upload` 12/min per user |\n| Telemetry | No built-in product telemetry by default |\n\nReport vulnerabilities in [SECURITY.md](SECURITY.md).\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eSetup \u0026 Configuration\u003c/b\u003e\u003c/summary\u003e\n\n### VS Code shortcuts\n\n| Shortcut | Action |\n|---|---|\n| `Cmd+Shift+A` | Open chat |\n| `Cmd+Shift+E` | Edit selected code |\n| `Cmd+Shift+M` | Load or switch model |\n| Right-click | Explain / Save to Knowledge Garden |\n\n### Telegram bot\n\n```bash\nLATTICEAI_TELEGRAM_BOT_TOKEN=your-token LTCAI\n```\n\n### Public server\n\n```bash\nLATTICEAI_MODE=public \\\nLATTICEAI_PUBLIC_MODEL=openai:gpt-4o-mini \\\nOPENAI_API_KEY=sk-... \\\nLATTICEAI_INVITE_CODE=my-secret \\\nLTCAI\n```\n\n### Public tunnel\n\n```bash\nLTCAI --tunnel\n# → https://xxxx.trycloudflare.com\n```\n\n### Auto-start on macOS\n\n```bash\ncat \u003e ~/Library/LaunchAgents/com.ltcai.plist \u003c\u003c 'EOF'\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\n\u003c!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\"\u003e\n\u003cplist version=\"1.0\"\u003e\n\u003cdict\u003e\n  \u003ckey\u003eLabel\u003c/key\u003e\u003cstring\u003ecom.ltcai\u003c/string\u003e\n  \u003ckey\u003eProgramArguments\u003c/key\u003e\u003carray\u003e\u003cstring\u003e/usr/local/bin/LTCAI\u003c/string\u003e\u003c/array\u003e\n  \u003ckey\u003eRunAtLoad\u003c/key\u003e\u003ctrue/\u003e\n  \u003ckey\u003eKeepAlive\u003c/key\u003e\u003ctrue/\u003e\n  \u003ckey\u003eStandardOutPath\u003c/key\u003e\u003cstring\u003e/tmp/ltcai.log\u003c/string\u003e\n  \u003ckey\u003eStandardErrorPath\u003c/key\u003e\u003cstring\u003e/tmp/ltcai.err\u003c/string\u003e\n\u003c/dict\u003e\n\u003c/plist\u003e\nEOF\nlaunchctl load ~/Library/LaunchAgents/com.ltcai.plist\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eAPI Reference\u003c/b\u003e\u003c/summary\u003e\n\n| Method | Path | Description |\n|---|---|---|\n| GET | `/health` | Server status and current model |\n| GET | `/models` | Model list and load state |\n| POST | `/models/load` | Load a model |\n| POST | `/chat` | Chat with streaming or non-streaming output |\n| POST | `/agent` | Multi-step file agent |\n| GET | `/knowledge-graph/stats` | Graph statistics |\n| GET | `/knowledge-graph/search?q=` | Search the knowledge graph |\n| GET | `/knowledge-graph/local/roots` | Discover local drives and folders |\n| POST | `/knowledge-graph/local/audit` | Audit a folder before indexing |\n| POST | `/knowledge-graph/local/index` | Index a folder into Graph RAG |\n| GET | `/mcp/installed` | Installed MCP servers |\n| POST | `/mcp/install` | Install MCP server as admin |\n| GET | `/skills/marketplace` | Skills marketplace |\n| POST | `/skills/install` | Install a skill as admin |\n| GET | `/admin/audit` | Audit report |\n| GET | `/permissions/pending` | Pending file-access approvals |\n\nFull reference: [docs/mcp-tools.md](docs/mcp-tools.md)\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eTroubleshooting\u003c/b\u003e\u003c/summary\u003e\n\n| Symptom | Fix |\n|---|---|\n| Port 4825 is already in use | `lsof -i :4825` then `kill \u003cPID\u003e`, or run `LTCAI --port 4826` |\n| `ModuleNotFoundError: mlx` | Install local extras with `pip install \"ltcai[local]\"` on Apple Silicon |\n| Python version is too old | Use Python 3.11 or newer |\n| No API key warning | Set a provider key or use a local model |\n| Cannot reach from iPad | Use `LATTICEAI_HOST=0.0.0.0 LTCAI` or `LTCAI --tunnel` |\n| Model loads but chat looks broken | Check compatibility status; try another engine or model family |\n\n\u003c/details\u003e\n\n---\n\n## Platform Support\n\n| Feature | macOS Apple Silicon | macOS Intel / Windows / Linux |\n|---|:---:|:---:|\n| Web UI + cloud models | Yes | Yes |\n| VS Code / Cursor extension | Yes | Yes |\n| Telegram bot | Yes | Yes |\n| MLX local models | Yes | No |\n| Ollama / LM Studio / vLLM / llama.cpp | Yes | Yes |\n\n---\n\n## Distribution\n\n| Channel | Link |\n|---|---|\n| PyPI | [pypi.org/project/ltcai](https://pypi.org/project/ltcai/) |\n| npm | [npmjs.com/package/ltcai](https://www.npmjs.com/package/ltcai) |\n| VS Code Marketplace | [marketplace.visualstudio.com](https://marketplace.visualstudio.com/items?itemName=parktaesoo.ltcai) |\n| Open VSX | [open-vsx.org](https://open-vsx.org/extension/parktaesoo/ltcai) |\n\n---\n\n## Contributing\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md). Issues and pull requests are welcome.\n\n## License\n\nMIT — [TaeSoo Park](https://github.com/TaeSooPark-PTS)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003e한국어 안내 (Korean)\u003c/summary\u003e\n\n## Lattice AI\n\n**내 PC의 파일, 대화, 폴더를 기억하고 연결하는 로컬 우선 AI 워크스페이스**\n\n대부분의 AI 도구는 대화가 끝나면 맥락을 잊습니다. Lattice AI는 승인한 로컬 폴더와 대화를 인덱싱하고, 사람·프로젝트·개념·문서를 자동으로 지식 그래프로 연결합니다.\n\n```text\n로컬 파일 + 대화 + 폴더\n        ↓\n자동 지식 그래프\n        ↓\n그래프 기반 AI 검색, 채팅, 문서 생성, 관리자 감사\n```\n\n### 설치\n\n```bash\npip install ltcai\nLTCAI\n# http://localhost:4825\n```\n\nApple Silicon에서 로컬 모델까지 쓰려면:\n\n```bash\npip install \"ltcai[local]\"\nLTCAI\n```\n\n### 사용 흐름\n\n```text\n1. 설치한다.\n2. CPU, GPU, RAM을 감지해서 적합한 로컬 모델을 추천받는다.\n3. 연결할 로컬 폴더를 선택한다.\n4. 파일과 대화가 자동으로 지식 그래프가 된다.\n5. “지난주 인증 마이그레이션에서 결정한 게 뭐였지?”처럼 질문한다.\n6. 같은 지식을 웹 UI, VS Code, Telegram, MCP에서 사용한다.\n```\n\n### 핵심 차별점\n\n- **내 데이터가 AI의 기억이 됨** — 채팅과 파일을 자동으로 구조화\n- **로컬 우선** — 기본 데이터는 `~/.ltcai/`에 저장\n- **자동 그래프** — 사용자가 노드와 엣지를 직접 만들 필요 없음\n- **모델 추천/로드 흐름** — 하드웨어 감지 후 적합한 모델 추천\n- **선택형 클라우드** — 클라우드 모델은 사용자가 설정한 경우에만 사용\n- **관리자/보안 기능** — 권한, 감사 로그, 민감정보 감지, export 지원\n\n자세한 내용은 [docs/CHANGELOG.md](docs/CHANGELOG.md), [SECURITY.md](SECURITY.md), [CONTRIBUTING.md](CONTRIBUTING.md)를 참고하세요.\n\n\u003c/details\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftaesoopark-pts%2Flatticeai","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftaesoopark-pts%2Flatticeai","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftaesoopark-pts%2Flatticeai/lists"}