ltcai 0.3.2 → 0.4.0

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/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  <div align="center">
2
2
  <img src="https://raw.githubusercontent.com/TaeSooPark-PTS/LatticeAI/main/docs/images/logo.svg" alt="Lattice AI" width="280"/>
3
3
  <br/>
4
- <strong>Private local AI workspace that turns your files, chats, and folders into a searchable knowledge graph.</strong>
4
+ <strong>Local-first AI workspace for your files, chats, folders, and knowledge graph.</strong>
5
5
  <br/><br/>
6
6
 
7
7
  [![PyPI](https://img.shields.io/pypi/v/ltcai?label=PyPI&color=blue)](https://pypi.org/project/ltcai/)
@@ -13,75 +13,93 @@
13
13
  [![License: MIT](https://img.shields.io/badge/License-MIT-green)](./LICENSE)
14
14
  [![Python 3.11+](https://img.shields.io/badge/python-3.11+-blue)](https://www.python.org/)
15
15
 
16
- <br/>
17
-
18
- <img 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%"/>
16
+ <br/>
19
17
 
18
+ <img 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%"/>
20
19
  </div>
21
20
 
22
21
  ---
23
22
 
24
- ## What's new in 0.3.2
25
-
26
- - **Consistent "current model"** — model-card click → prepare/load → smoke test →
27
- `current` update → chat-readiness flows through one path in the web UI, so the
28
- model you see is always the model chat uses.
29
- - **3-way smoke status** — load-time chat probe now reports `ok` / `degraded` /
30
- `failed` (special-token leakage, runaway repetition, over-long output), and the
31
- UI shows a compatibility warning for `degraded` while still allowing chat.
32
- - **Timezone-correct security dashboard** — "events today" now uses the same
33
- timezone as audit timestamps (configurable via `LATTICE_TZ`, e.g. `Asia/Seoul`),
34
- fixing off-by-one day counts.
35
- - **Cleaner auto-graph** — Korean particle stripping, generic-word / file-extension
36
- blacklists, and a single-source penalty so only concepts repeated across multiple
37
- sources get promoted to nodes.
38
- - **Honest docs** — toned down unverifiable claims (telemetry, skill/plugin counts).
39
-
40
- ## What's new in 0.3.1
41
-
42
- - **Reliable model selection** — `ModelResolution` unifies recommended card ID,
43
- download ID, load ID, router cache key, and the front-end `current` so
44
- "downloaded but not loaded" / "loaded but UI shows a different model"
45
- classes of bugs are gone.
46
- - **Smoke test on load** — every local model load runs a one-shot Korean
47
- chat probe and surfaces `ready_to_chat` / `compatibility_status` to the UI.
48
- - **Model Compatibility Layer** — per-family profiles (GPT-OSS, Gemma, Qwen,
49
- Llama, Mistral, Phi, Deepseek …) with cached stop tokens, postprocess
50
- rules, and Fast / Slow / Recovery paths so chat speed stays the same.
51
- - **Auto graph curator** — topic extraction → alias clustering → promotion
52
- with secret/PII firewall, so the graph builds itself without the user
53
- managing nodes.
54
- - **AI Security & Audit Command Center** — admin dashboard now shows
55
- per-user risk matrix (compliant chats vs risky chats vs compliant files
56
- vs risky files), sensitive-type donut, drill-down, raw explorer, and
57
- JSON / CSV / XLSX / PDF exports — with hard-secret redaction
58
- enforced on every response.
59
-
60
- See [docs/CHANGELOG.md](./docs/CHANGELOG.md) for the full list.
23
+ ## What is Lattice AI?
61
24
 
62
- ---
25
+ Most 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.
63
26
 
64
- ## Why Lattice AI?
27
+ **Lattice AI turns your local workspace into an AI memory layer.**
65
28
 
66
- Most AI tools forget everything after each conversation. Your files sit in folders, your chats vanish, and nothing connects.
29
+ It reads approved local folders, indexes chats and documents, builds a searchable knowledge graph, and lets you ask questions over that graph with local or opt-in cloud models.
67
30
 
68
- **Lattice AI remembers.** It reads your local files, indexes your conversations, and builds a knowledge graph that links people, projects, concepts, and documents — all on your machine. With local models, nothing leaves your PC; cloud models are opt-in and clearly labeled.
31
+ ```text
32
+ Local files + chats + folders
33
+
34
+ Automatic knowledge graph
35
+
36
+ Graph-aware AI chat, search, document generation, and admin audit
37
+ ```
38
+
39
+ ### Built for people who want
69
40
 
70
- - **Your data stays local** everything lives in `~/.ltcai/`, never sent to external servers
71
- - **Your AI gets smarter over time** every chat and file builds your personal knowledge graph
72
- - **One local server, many surfaces** a single local server powers the web UI, VS Code extension, and optional integrations (Telegram, MCP)
41
+ - a private AI workspace that runs from their own machine
42
+ - local model setup without hunting through many tools
43
+ - folder indexing that becomes useful AI memory
44
+ - a visual knowledge graph instead of disconnected files and chats
45
+ - optional team/admin controls for audit, permissions, and sensitive-data monitoring
73
46
 
74
47
  ---
75
48
 
76
- ## 3-Minute Workflow
49
+ ## Quick Start
50
+
51
+ ### Python / PyPI
77
52
 
53
+ ```bash
54
+ pip install ltcai
55
+ LTCAI
56
+ # open http://localhost:4825
78
57
  ```
79
- 1. Install pip install ltcai && LTCAI
80
- 2. Detect hardware Auto-detect CPU, GPU, RAM → recommend the best local model
81
- 3. Connect folders Select local folders to index into your knowledge graph
82
- 4. Build knowledge Files and chats auto-analyzed → nodes (people, concepts, files) + edges (mentions, contains, depends on)
83
- 5. Ask anything "What did I discuss about the auth migration last week?" → Graph RAG retrieves context
84
- 6. Work from anywhere Web UI · VS Code · Telegram · MCP — all connected to the same knowledge
58
+
59
+ ### Apple Silicon local models
60
+
61
+ ```bash
62
+ pip install "ltcai[local]"
63
+ LTCAI
64
+ ```
65
+
66
+ ### Node / npm
67
+
68
+ ```bash
69
+ npm install -g ltcai
70
+ LTCAI
71
+ ```
72
+
73
+ ### VS Code / Cursor
74
+
75
+ 1. 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)
76
+ 2. Start the local server with `LTCAI`
77
+ 3. Press `Cmd+Shift+A` to open the chat panel
78
+
79
+ **First run:** create an account → the first account becomes admin → choose a model → connect folders → start asking questions.
80
+
81
+ ---
82
+
83
+ ## The 3-minute workflow
84
+
85
+ ```text
86
+ 1. Install
87
+ pip install ltcai && LTCAI
88
+
89
+ 2. Detect hardware
90
+ CPU, GPU, RAM are detected and a suitable local model is recommended.
91
+
92
+ 3. Connect folders
93
+ Pick the local folders you want Lattice AI to index.
94
+
95
+ 4. Build knowledge
96
+ Files and chats become nodes and edges in a local knowledge graph.
97
+
98
+ 5. Ask questions
99
+ “What did I decide about the auth migration last week?”
100
+
101
+ 6. Keep working
102
+ Use the same local knowledge from the web UI, VS Code, Telegram, or MCP clients.
85
103
  ```
86
104
 
87
105
  ---
@@ -93,175 +111,215 @@ Most AI tools forget everything after each conversation. Your files sit in folde
93
111
  <td align="center" width="33%">
94
112
  <b>Workspace Chat</b><br/>
95
113
  <img src="https://raw.githubusercontent.com/TaeSooPark-PTS/LatticeAI/main/docs/images/screenshot-chat.png" alt="Lattice AI workspace chat" width="100%"/>
96
- <sub>Chat with local/cloud LLM, upload files, pipeline controls</sub>
114
+ <sub>Chat with local/cloud models, upload files, and control pipelines.</sub>
97
115
  </td>
98
116
  <td align="center" width="33%">
99
117
  <b>Knowledge Graph</b><br/>
100
118
  <img src="https://raw.githubusercontent.com/TaeSooPark-PTS/LatticeAI/main/docs/images/screenshot-graph.png" alt="Lattice AI knowledge graph" width="100%"/>
101
- <sub>Auto-built from chats and documents — nodes = nouns, edges = verbs</sub>
119
+ <sub>Automatically built from chats, files, folders, and project context.</sub>
102
120
  </td>
103
121
  <td align="center" width="33%">
104
122
  <b>Admin Dashboard</b><br/>
105
123
  <img src="https://raw.githubusercontent.com/TaeSooPark-PTS/LatticeAI/main/docs/images/screenshot-admin.png" alt="Lattice AI admin dashboard" width="100%"/>
106
- <sub>User management, audit log, security monitoring</sub>
124
+ <sub>User management, audit logs, permissions, and security monitoring.</sub>
107
125
  </td>
108
126
  </tr>
109
127
  </table>
110
128
 
111
129
  ---
112
130
 
113
- ## Quick Start
131
+ ## Why it is different
114
132
 
115
- **Python / PyPI**
133
+ | Problem | Lattice AI approach |
134
+ |---|---|
135
+ | AI forgets every conversation | Chats and files are indexed into persistent local memory |
136
+ | Files are scattered across folders | Approved folders become searchable graph context |
137
+ | Local model setup is confusing | Hardware detection recommends and loads a suitable model |
138
+ | Graph tools require manual node editing | Nodes and edges are created automatically from real work |
139
+ | Cloud AI may expose private data | Local models keep data on your machine; cloud is opt-in |
140
+ | Teams need visibility | Admin dashboard, audit logs, role controls, and sensitive-data monitoring |
116
141
 
117
- ```bash
118
- pip install ltcai
119
- pip install "ltcai[local]" # + Apple Silicon MLX models
120
- LTCAI
121
- # → http://localhost:4825
122
- ```
142
+ ---
123
143
 
124
- **Node / npm**
144
+ ## Core Features
125
145
 
126
- ```bash
127
- npm install -g ltcai
128
- LTCAI
129
- ```
146
+ ### Local-first AI workspace
130
147
 
131
- **VS Code / Cursor**
148
+ - Web UI running from a local server
149
+ - Local SQLite storage under `~/.ltcai/`
150
+ - Local folder indexing with explicit approval
151
+ - File upload, chat history, graph search, and document generation
152
+ - Optional cloud providers when you choose to use them
132
153
 
133
- 1. Install **Lattice AI** from [VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=parktaesoo.ltcai) or [Open VSX](https://open-vsx.org/extension/parktaesoo/ltcai)
134
- 2. Start the local server: `LTCAI`
135
- 3. `Cmd+Shift+A` to open the chat panel
154
+ ### Automatic knowledge graph
136
155
 
137
- **First run:** open `http://localhost:4825` sign up → first account auto-becomes admin → pick a model → start chatting.
156
+ Lattice AI turns your work into structure automatically.
138
157
 
139
- ---
158
+ **Nodes** can represent:
140
159
 
141
- ## How the Knowledge Graph Works
160
+ | Node type | Examples |
161
+ |---|---|
162
+ | Document | PDF, DOCX, PPTX, XLSX, Markdown, code files |
163
+ | Concept | technologies, project names, ideas, architecture topics |
164
+ | Person | you, teammates, mentioned people |
165
+ | Chat | previous conversations and sessions |
166
+ | Task | TODOs, action items, follow-ups |
167
+ | Decision | choices made during discussions |
142
168
 
143
- Lattice AI automatically analyzes your chats and files, extracting meaningful structure:
169
+ **Edges** describe relationships such as:
144
170
 
145
- **Nodes (nouns)** the things in your world:
146
- | Type | Examples |
147
- |------|----------|
148
- | Document | PDF, PPTX, DOCX, code files, images |
149
- | Person | You, mentioned colleagues |
150
- | Concept | Technologies, frameworks, ideas |
151
- | Chat | Conversation sessions |
152
- | Task | Action items, TODOs |
153
- | Decision | Choices made in discussions |
171
+ `mentions` · `contains` · `depends on` · `explains` · `uses` · `replaces` · `supports` · `related to`
154
172
 
155
- **Edges (verbs)** how things relate:
156
- `mentions` · `contains` · `resolves` · `depends on` · `explains` · `uses` · `replaces` · `supports` · `related to`
173
+ The graph is curated automatically: noisy tokens, file extensions, generic words, and hard secrets are filtered before promotion.
157
174
 
158
- **Local folder indexing:**
159
- 1. Browse your drives and folders from the UI
160
- 2. Preview file counts, types, and sizes before indexing
161
- 3. Approve which folders to connect (sensitive files auto-excluded)
162
- 4. Files are parsed, chunked, and linked into the graph
163
- 5. Optional: enable file watcher for real-time updates
175
+ ### Model loading that users can trust
164
176
 
165
- All data stays in a local SQLite database. Nothing leaves your machine.
177
+ Lattice AI keeps model identity consistent across recommendation, download, load, backend router state, and frontend display.
166
178
 
167
- ---
179
+ - unified model resolution
180
+ - local model smoke test after load
181
+ - `ok` / `degraded` / `failed` compatibility status
182
+ - per-family compatibility profiles for GPT-OSS, Gemma, Qwen, Llama, Mistral, Phi, Deepseek, and more
183
+ - fast post-processing path during normal chat
184
+ - recovery path only when output looks broken
168
185
 
169
- ## Comparison
186
+ ### Admin and security command center
170
187
 
171
- Based on public product behavior as of 2026-05.
188
+ For team or organization usage, Lattice AI includes admin-facing controls:
172
189
 
173
- | | Lattice AI | Open WebUI | Continue.dev | GitHub Copilot |
174
- |---|:---:|:---:|:---:|:---:|
175
- | Local model (offline, Apple Silicon) | **Yes** | Yes | Yes | No |
176
- | Cloud models (OpenAI, Groq...) | **Yes** | Yes | Yes | Yes |
177
- | Knowledge graph (auto from files + chats) | **Yes** | No | No | No |
178
- | Local folder indexing + file watcher | **Yes** | No | No | No |
179
- | VS Code extension | **Yes** | No | Yes | Yes |
180
- | Telegram bot | **Yes** | No | No | No |
181
- | MCP registry (one-click install) | **Yes** | Partial | Yes | No |
182
- | Admin + audit log | **Yes** | Yes | No | No |
183
- | No built-in telemetry, self-hosted | **Yes** | Yes | Yes | No |
184
- | One-command public tunnel | **Yes** | No | No | No |
185
- | Free | **Yes** | Yes | Yes | No |
190
+ - user management and roles
191
+ - permission approvals for local file access
192
+ - audit event timeline
193
+ - sensitive chat/file detection
194
+ - risk overview by user
195
+ - raw data explorer with hard-secret redaction
196
+ - export to JSON, CSV, XLSX, TXT, or PDF
197
+
198
+ Hard secrets such as API keys, tokens, passwords, private keys, and common cloud credentials are redacted from security responses.
186
199
 
187
200
  ---
188
201
 
189
202
  ## Supported Models
190
203
 
191
- **Local (Apple Silicon MLX):**
204
+ ### Local on Apple Silicon MLX
192
205
 
193
- | Model | Best for | Size | Min RAM |
194
- |-------|----------|------|---------|
206
+ | Model | Best for | Approx. size | Suggested RAM |
207
+ |---|---|---:|---:|
195
208
  | Qwen3-VL 4B | Multimodal / low spec | ~2.7 GB | 8 GB |
196
209
  | Qwen3-VL 8B | Multimodal / balanced | ~4.8 GB | 16 GB |
197
210
  | GPT-OSS 20B | Reasoning / open-weight | ~12.1 GB | 32 GB |
198
211
  | Gemma 4 26B | Multimodal / large | ~15.6 GB | 32 GB |
199
212
  | Gemma 4 31B | Multimodal / latest Gemma 4 | ~18.4 GB | 48 GB |
200
- | Qwen3-VL 30B A3B | Multimodal / top | ~18 GB | 48 GB |
201
- | GPT-OSS 120B | Reasoning / top open-weight | ~62.3 GB | 128 GB |
202
- | Phi 4 Mini | Coding (fast) | ~2.2 GB | 8 GB |
203
- | Llama 3.1 8B | General | ~4.7 GB | 8 GB |
213
+ | Qwen3-VL 30B A3B | Multimodal / top local | ~18 GB | 48 GB |
214
+ | GPT-OSS 120B | Large reasoning model | ~62.3 GB | 128 GB |
215
+ | Phi 4 Mini | Fast coding/general chat | ~2.2 GB | 8 GB |
216
+ | Llama 3.1 8B | General chat | ~4.7 GB | 8 GB |
204
217
  | Mistral 7B v0.3 | General / Apache | ~4.1 GB | 8 GB |
205
218
 
206
- **Cross-platform (Ollama / LM Studio / vLLM / llama.cpp):**
207
- Same models via Ollama pull, LM Studio download, vLLM serve, or llama.cpp GGUF where available.
219
+ ### Cross-platform engines
220
+
221
+ Lattice AI can also work with models served by:
222
+
223
+ - Ollama
224
+ - LM Studio
225
+ - llama.cpp
226
+ - vLLM
227
+ - OpenAI-compatible local or remote endpoints
208
228
 
209
- **Cloud (any platform):**
210
- OpenAI GPT-5.5 · Claude Opus 4.7 / Sonnet 4.6 / Haiku 4.5 via OpenRouter · Groq · Together · xAI · any OpenAI-compatible endpoint
229
+ ### Cloud providers
211
230
 
212
- The setup wizard auto-detects your hardware and recommends the best model for your specs.
231
+ Cloud models are optional. When enabled, prompts are sent to the selected provider.
232
+
233
+ Supported routes include OpenAI-compatible APIs, OpenRouter, Groq, Together, xAI, and other compatible endpoints.
213
234
 
214
235
  ---
215
236
 
216
- ## Data Privacy
237
+ ## Privacy and data storage
217
238
 
218
- | | |
239
+ | Area | Default behavior |
219
240
  |---|---|
220
- | **Storage** | All data in `~/.ltcai/` on your machine |
221
- | **Telemetry** | No built-in analytics or product telemetry by default |
222
- | **File access** | Approval-token gated explicit consent per folder |
223
- | **Cloud models** | When using cloud APIs, prompts are sent to the provider. Local models keep everything offline. |
224
- | **Sensitive files** | `.env`, credentials, keys, certificates auto-excluded from indexing |
225
- | **Delete** | Clear chat history, delete graph nodes, remove indexed folders at any time |
241
+ | Storage | Data is stored locally under `~/.ltcai/` |
242
+ | Default binding | `127.0.0.1:4825` local server |
243
+ | Telemetry | No built-in product telemetry by default |
244
+ | Folder access | Explicit approval per folder/action scope |
245
+ | Sensitive files | `.env`, credentials, keys, certificates, and similar files are auto-excluded |
246
+ | Cloud models | Off unless configured; cloud prompts go to the selected provider |
247
+ | Delete controls | Remove chats, graph nodes, indexed folders, and local data |
248
+
249
+ ---
250
+
251
+ ## Comparison
252
+
253
+ | Capability | Lattice AI | Open WebUI | Continue.dev | GitHub Copilot |
254
+ |---|:---:|:---:|:---:|:---:|
255
+ | Local model workflow | Yes | Yes | Yes | No |
256
+ | Local folder indexing | Yes | Limited | Workspace-focused | Limited |
257
+ | Automatic knowledge graph | Yes | No | No | No |
258
+ | Chat + file memory | Yes | Partial | Partial | Partial |
259
+ | VS Code / Cursor extension | Yes | No | Yes | Yes |
260
+ | Admin dashboard | Yes | Yes | No | No |
261
+ | Security audit exports | Yes | Limited | No | No |
262
+ | Optional cloud models | Yes | Yes | Yes | Yes |
263
+ | Local-first by default | Yes | Self-hosted | Local/dev focused | No |
264
+
265
+ ---
266
+
267
+ ## Current release
268
+
269
+ **0.4.0** completes the Knowledge Graph v2 read/write cutover:
270
+
271
+ - graph reads and writes flow through the v2 store, behind the unchanged
272
+ `KnowledgeGraphStore` interface
273
+ - legacy ↔ v2 result equivalence guaranteed (single read path + reconstruction
274
+ views), backed by a dedicated equivalence test suite
275
+ - dual-write projection keeps the v2 graph in sync on every write and delete
276
+ - deterministic ordering (`… , id ASC`) so results match across both paths
277
+
278
+ See the full [changelog](docs/CHANGELOG.md).
226
279
 
227
280
  ---
228
281
 
229
282
  <details>
230
283
  <summary><b>All Features</b></summary>
231
284
 
232
- ### Core Experience
285
+ ### Core experience
286
+
233
287
  | Feature | Description |
234
- |---------|-------------|
235
- | **Web UI** | Responsive chat, file upload, model picker, knowledge graph |
236
- | **Auto Setup Wizard** | Detect hardware recommend model install dependencies verify |
237
- | **Graph RAG** | Chats and files auto-indexed into SQLite knowledge graph |
238
- | **Local folder indexing** | Browse, audit, and index local folders with file watcher |
288
+ |---|---|
289
+ | Web UI | Chat, file upload, model picker, graph view, admin pages |
290
+ | Auto setup wizard | Detect hardware, recommend model, install dependencies, verify load |
291
+ | Graph RAG | Retrieve context from indexed chats, files, and graph relationships |
292
+ | Local folder indexing | Browse, audit, approve, index, and optionally watch folders |
293
+ | Document generation | Use graph context to generate reports, summaries, and structured drafts |
294
+
295
+ ### Developer tools
239
296
 
240
- ### Developer Tools
241
297
  | Feature | Description |
242
- |---------|-------------|
243
- | **VS Code / Cursor** | Chat panel, Edit Selection, Explain, Generate command |
244
- | **Multi-step agent** | File edit/create, grep, todo, terminal (25 steps, human-in-the-loop) |
245
- | **Multi-LLM pipeline** | Plan Execute Review with different models |
246
- | **MCP server** | Use Lattice tools in Claude Desktop / Cursor |
247
- | **MCP registry** | One-click install from registry.modelcontextprotocol.io |
248
- | **Skills browser** | Optional browser for Anthropic + third-party skills |
249
- | **Plugin browser** | Browse open-source plugins from the registry |
250
-
251
- ### Access & Communication
298
+ |---|---|
299
+ | VS Code / Cursor | Chat panel, edit selection, explain code, generate code |
300
+ | Multi-step agent | File edit/create, grep, todo, and terminal workflow with human-in-the-loop |
301
+ | Multi-LLM pipeline | Plan, execute, and review with different models |
302
+ | MCP server | Expose Lattice tools to MCP-compatible clients |
303
+ | MCP registry | Install MCP servers from supported registries |
304
+ | Skills browser | Browse and install optional skills |
305
+ | Plugin browser | Browse compatible open-source plugins |
306
+
307
+ ### Access and communication
308
+
252
309
  | Feature | Description |
253
- |---------|-------------|
254
- | **Telegram bot** | Chat, upload files, manage models from anywhere |
255
- | **PWA** | Install on iPad / Android home screen |
256
- | **Public tunnel** | `LTCAI --tunnel` Cloudflare HTTPS, no account needed |
310
+ |---|---|
311
+ | Telegram bot | Chat, upload files, and manage models remotely |
312
+ | PWA | Install the web UI on mobile/tablet home screens |
313
+ | Public tunnel | `LTCAI --tunnel` for a temporary Cloudflare HTTPS URL |
257
314
 
258
315
  ### Administration
316
+
259
317
  | Feature | Description |
260
- |---------|-------------|
261
- | **User management** | Roles, permissions, disable/enable accounts |
262
- | **SSO** | Entra ID / Okta OIDC |
263
- | **Audit dashboard** | Per-user AI usage, sensitive data detection, event log, TXT/CSV/Excel export |
264
- | **Security monitoring** | Rate limits, file access approvals, MCP install audit trail |
318
+ |---|---|
319
+ | User management | Roles, permissions, account enable/disable |
320
+ | SSO | Entra ID / Okta OIDC configuration |
321
+ | Audit dashboard | AI usage, sensitive-data events, file access, exports |
322
+ | Security monitoring | Rate limits, approval logs, raw explorer, redaction |
265
323
 
266
324
  </details>
267
325
 
@@ -269,18 +327,18 @@ The setup wizard auto-detects your hardware and recommends the best model for yo
269
327
  <summary><b>Security</b></summary>
270
328
 
271
329
  | Property | Detail |
272
- |----------|--------|
273
- | Binding | Default `127.0.0.1:4825` local only |
330
+ |---|---|
331
+ | Binding | Default `127.0.0.1:4825` local only |
274
332
  | Auth | Session required when network-exposed or public mode |
275
- | Cookies | `HttpOnly + SameSite=Lax` no localStorage token |
276
- | Local file access | Approval-token gated (path + user + action scope) |
277
- | Package install | Admin-only with audit trail (MCP, skills, pip, npm) |
278
- | CORS | Localhost only by default; configure via `LATTICEAI_CORS_ALLOWED_ORIGINS` |
279
- | File upload | Magic-number signature check (blocks extension spoofing) |
333
+ | Cookies | `HttpOnly + SameSite=Lax`; no localStorage token |
334
+ | Local file access | Approval-token gated by path, user, and action scope |
335
+ | Package install | Admin-only with audit trail for MCP, skills, pip, npm |
336
+ | CORS | Localhost only by default; configurable via `LATTICEAI_CORS_ALLOWED_ORIGINS` |
337
+ | File upload | Magic-number signature checks for extension spoofing defense |
280
338
  | Rate limits | `/chat` 30/min · `/agent` 6/min · `/upload` 12/min per user |
281
- | Telemetry | None all data in `~/.ltcai/` |
339
+ | Telemetry | No built-in product telemetry by default |
282
340
 
283
- Report vulnerabilities: [SECURITY.md](SECURITY.md)
341
+ Report vulnerabilities in [SECURITY.md](SECURITY.md).
284
342
 
285
343
  </details>
286
344
 
@@ -290,10 +348,10 @@ Report vulnerabilities: [SECURITY.md](SECURITY.md)
290
348
  ### VS Code shortcuts
291
349
 
292
350
  | Shortcut | Action |
293
- |----------|--------|
351
+ |---|---|
294
352
  | `Cmd+Shift+A` | Open chat |
295
353
  | `Cmd+Shift+E` | Edit selected code |
296
- | `Cmd+Shift+M` | Load / switch model |
354
+ | `Cmd+Shift+M` | Load or switch model |
297
355
  | Right-click | Explain / Save to Knowledge Garden |
298
356
 
299
357
  ### Telegram bot
@@ -302,7 +360,7 @@ Report vulnerabilities: [SECURITY.md](SECURITY.md)
302
360
  LATTICEAI_TELEGRAM_BOT_TOKEN=your-token LTCAI
303
361
  ```
304
362
 
305
- ### Public server (Docker / Render / Fly.io)
363
+ ### Public server
306
364
 
307
365
  ```bash
308
366
  LATTICEAI_MODE=public \
@@ -312,14 +370,14 @@ LATTICEAI_INVITE_CODE=my-secret \
312
370
  LTCAI
313
371
  ```
314
372
 
315
- ### Public tunnel (Cloudflare, no account)
373
+ ### Public tunnel
316
374
 
317
375
  ```bash
318
376
  LTCAI --tunnel
319
377
  # → https://xxxx.trycloudflare.com
320
378
  ```
321
379
 
322
- ### Auto-start (Mac)
380
+ ### Auto-start on macOS
323
381
 
324
382
  ```bash
325
383
  cat > ~/Library/LaunchAgents/com.ltcai.plist << 'EOF'
@@ -345,21 +403,21 @@ launchctl load ~/Library/LaunchAgents/com.ltcai.plist
345
403
  <summary><b>API Reference</b></summary>
346
404
 
347
405
  | Method | Path | Description |
348
- |--------|------|-------------|
349
- | GET | `/health` | Server status & current model |
350
- | GET | `/models` | Model list + load state |
406
+ |---|---|---|
407
+ | GET | `/health` | Server status and current model |
408
+ | GET | `/models` | Model list and load state |
351
409
  | POST | `/models/load` | Load a model |
352
- | POST | `/chat` | Chat (`stream=true/false`) |
410
+ | POST | `/chat` | Chat with streaming or non-streaming output |
353
411
  | POST | `/agent` | Multi-step file agent |
354
412
  | GET | `/knowledge-graph/stats` | Graph statistics |
355
413
  | GET | `/knowledge-graph/search?q=` | Search the knowledge graph |
356
- | GET | `/knowledge-graph/local/roots` | Discover local drives & folders |
414
+ | GET | `/knowledge-graph/local/roots` | Discover local drives and folders |
357
415
  | POST | `/knowledge-graph/local/audit` | Audit a folder before indexing |
358
416
  | POST | `/knowledge-graph/local/index` | Index a folder into Graph RAG |
359
417
  | GET | `/mcp/installed` | Installed MCP servers |
360
- | POST | `/mcp/install` | Install MCP server (admin) |
418
+ | POST | `/mcp/install` | Install MCP server as admin |
361
419
  | GET | `/skills/marketplace` | Skills marketplace |
362
- | POST | `/skills/install` | Install a skill (admin) |
420
+ | POST | `/skills/install` | Install a skill as admin |
363
421
  | GET | `/admin/audit` | Audit report |
364
422
  | GET | `/permissions/pending` | Pending file-access approvals |
365
423
 
@@ -371,12 +429,13 @@ Full reference: [docs/mcp-tools.md](docs/mcp-tools.md)
371
429
  <summary><b>Troubleshooting</b></summary>
372
430
 
373
431
  | Symptom | Fix |
374
- |---------|-----|
375
- | Port 4825 in use | `lsof -i :4825` `kill <PID>` or `LTCAI --port 4826` |
376
- | `ModuleNotFoundError: mlx` | `pip install "ltcai[local]"` (Apple Silicon only) |
377
- | Python < 3.11 | Upgrade Python: `python3 --version` |
378
- | No API key warning | `OPENAI_API_KEY=sk-... LTCAI` or set in admin panel |
379
- | Can't reach from iPad | `LATTICEAI_HOST=0.0.0.0 LTCAI` or use `--tunnel` |
432
+ |---|---|
433
+ | Port 4825 is already in use | `lsof -i :4825` then `kill <PID>`, or run `LTCAI --port 4826` |
434
+ | `ModuleNotFoundError: mlx` | Install local extras with `pip install "ltcai[local]"` on Apple Silicon |
435
+ | Python version is too old | Use Python 3.11 or newer |
436
+ | No API key warning | Set a provider key or use a local model |
437
+ | Cannot reach from iPad | Use `LATTICEAI_HOST=0.0.0.0 LTCAI` or `LTCAI --tunnel` |
438
+ | Model loads but chat looks broken | Check compatibility status; try another engine or model family |
380
439
 
381
440
  </details>
382
441
 
@@ -385,31 +444,29 @@ Full reference: [docs/mcp-tools.md](docs/mcp-tools.md)
385
444
  ## Platform Support
386
445
 
387
446
  | Feature | macOS Apple Silicon | macOS Intel / Windows / Linux |
388
- |---------|:---:|:---:|
447
+ |---|:---:|:---:|
389
448
  | Web UI + cloud models | Yes | Yes |
390
449
  | VS Code / Cursor extension | Yes | Yes |
391
450
  | Telegram bot | Yes | Yes |
392
- | MLX local models | Yes | -- |
393
- | Ollama / LM Studio / vLLM | Yes | Yes |
451
+ | MLX local models | Yes | No |
452
+ | Ollama / LM Studio / vLLM / llama.cpp | Yes | Yes |
394
453
 
395
454
  ---
396
455
 
397
456
  ## Distribution
398
457
 
399
458
  | Channel | Link |
400
- |---------|------|
459
+ |---|---|
401
460
  | PyPI | [pypi.org/project/ltcai](https://pypi.org/project/ltcai/) |
402
461
  | npm | [npmjs.com/package/ltcai](https://www.npmjs.com/package/ltcai) |
403
462
  | VS Code Marketplace | [marketplace.visualstudio.com](https://marketplace.visualstudio.com/items?itemName=parktaesoo.ltcai) |
404
463
  | Open VSX | [open-vsx.org](https://open-vsx.org/extension/parktaesoo/ltcai) |
405
464
 
406
- Current version: **0.3.2** — [Changelog](docs/CHANGELOG.md)
407
-
408
465
  ---
409
466
 
410
467
  ## Contributing
411
468
 
412
- See [CONTRIBUTING.md](CONTRIBUTING.md). All PRs welcome.
469
+ See [CONTRIBUTING.md](CONTRIBUTING.md). Issues and pull requests are welcome.
413
470
 
414
471
  ## License
415
472
 
@@ -422,49 +479,53 @@ MIT — [TaeSoo Park](https://github.com/TaeSooPark-PTS)
422
479
 
423
480
  ## Lattice AI
424
481
 
425
- **내 PC의 파일, 대화, 프로젝트를 기억하고 연결하는 로컬 AI 워크스페이스**
426
-
427
- 대부분의 AI 도구는 대화가 끝나면 모든 것을 잊습니다. Lattice AI는 다릅니다. 로컬 파일을 읽고, 대화를 기록하고, 사람·프로젝트·개념·문서를 연결하는 지식 그래프를 자동으로 만듭니다. 모든 데이터는 내 PC에만 저장됩니다.
482
+ **내 PC의 파일, 대화, 폴더를 기억하고 연결하는 로컬 우선 AI 워크스페이스**
428
483
 
429
- ### 3분 사용 흐름
484
+ 대부분의 AI 도구는 대화가 끝나면 맥락을 잊습니다. Lattice AI는 승인한 로컬 폴더와 대화를 인덱싱하고, 사람·프로젝트·개념·문서를 자동으로 지식 그래프로 연결합니다.
430
485
 
431
- ```
432
- 1. 설치 pip install ltcai && LTCAI
433
- 2. 하드웨어 감지 CPU, GPU, RAM 자동 감지 → 최적 로컬 모델 추천
434
- 3. 폴더 연결 로컬 폴더를 선택하여 지식 그래프에 연결
435
- 4. 지식 구축 파일과 대화 자동 분석 → 점(사람, 개념, 파일) + 선(언급함, 포함함, 의존함)
436
- 5. 질문 "지난주 인증 마이그레이션 논의 내용은?" Graph RAG가 컨텍스트 검색
437
- 6. 어디서든 작업 웹 UI · VS Code · Telegram · MCP — 같은 지식에 연결
486
+ ```text
487
+ 로컬 파일 + 대화 + 폴더
488
+
489
+ 자동 지식 그래프
490
+
491
+ 그래프 기반 AI 검색, 채팅, 문서 생성, 관리자 감사
438
492
  ```
439
493
 
440
494
  ### 설치
441
495
 
442
496
  ```bash
443
- pip install ltcai # 클라우드 모델
444
- pip install "ltcai[local]" # + Apple Silicon MLX 로컬 모델
445
- LTCAI # 서버 실행 → http://localhost:4825
446
- LTCAI --tunnel # + Cloudflare 공개 URL 자동 발급
497
+ pip install ltcai
498
+ LTCAI
499
+ # http://localhost:4825
447
500
  ```
448
501
 
449
- ### 핵심 차별점
502
+ Apple Silicon에서 로컬 모델까지 쓰려면:
450
503
 
451
- - **내 데이터가 AI의 기억이 된다** — 채팅과 파일이 자동으로 지식 그래프로 구조화
452
- - **로컬 폴더를 연결하면 프로젝트 전체를 이해** — 파일 변경 시 실시간 업데이트
453
- - **모든 데이터는 내 PC에** — `~/.ltcai/`에 저장, 텔레메트리 없음, 외부 전송 없음
454
- - **설치 한 번으로 어디서든** — 웹 · VS Code · Telegram · MCP 클라이언트
504
+ ```bash
505
+ pip install "ltcai[local]"
506
+ LTCAI
507
+ ```
508
+
509
+ ### 사용 흐름
455
510
 
456
- ### 추천 로컬 모델 (M-series Mac)
511
+ ```text
512
+ 1. 설치한다.
513
+ 2. CPU, GPU, RAM을 감지해서 적합한 로컬 모델을 추천받는다.
514
+ 3. 연결할 로컬 폴더를 선택한다.
515
+ 4. 파일과 대화가 자동으로 지식 그래프가 된다.
516
+ 5. “지난주 인증 마이그레이션에서 결정한 게 뭐였지?”처럼 질문한다.
517
+ 6. 같은 지식을 웹 UI, VS Code, Telegram, MCP에서 사용한다.
518
+ ```
519
+
520
+ ### 핵심 차별점
457
521
 
458
- | 모델 | 용도 | 크기 | 최소 RAM |
459
- |------|------|------|----------|
460
- | Qwen3-VL 4B | 멀티모달 / 저사양 | ~2.7GB | 8GB |
461
- | Qwen3-VL 8B | 멀티모달 / 균형 추천 | ~4.8GB | 16GB |
462
- | GPT-OSS 20B | 추론 / 오픈가중치 | ~12.1GB | 32GB |
463
- | Gemma 4 26B | 멀티모달 / 대형 | ~15.6GB | 32GB |
464
- | Gemma 4 31B | 멀티모달 / 최신 Gemma 4 | ~18.4GB | 48GB |
465
- | Qwen3-VL 30B A3B | 멀티모달 / 최고급 | ~18GB | 48GB |
466
- | GPT-OSS 120B | 추론 / 최고급 오픈가중치 | ~62.3GB | 128GB |
522
+ - **내 데이터가 AI의 기억이 됨** 채팅과 파일을 자동으로 구조화
523
+ - **로컬 우선** — 기본 데이터는 `~/.ltcai/`에 저장
524
+ - **자동 그래프** 사용자가 노드와 엣지를 직접 만들 필요 없음
525
+ - **모델 추천/로드 흐름** 하드웨어 감지 적합한 모델 추천
526
+ - **선택형 클라우드** 클라우드 모델은 사용자가 설정한 경우에만 사용
527
+ - **관리자/보안 기능** 권한, 감사 로그, 민감정보 감지, export 지원
467
528
 
468
- 자세한 내용: [docs/CHANGELOG.md](docs/CHANGELOG.md) · [보안](SECURITY.md) · [기여](CONTRIBUTING.md)
529
+ 자세한 내용은 [docs/CHANGELOG.md](docs/CHANGELOG.md), [SECURITY.md](SECURITY.md), [CONTRIBUTING.md](CONTRIBUTING.md)를 참고하세요.
469
530
 
470
531
  </details>