Locara

Locara — Specification

This folder contains the technical specification for Locara: a framework + runtime + distribution layer for fully-local LLM applications on macOS.

The spec is organized as a sequence of focused documents, each covering one design surface. Read in order for a full picture; jump to specific files when working on that surface.

This is a living draft. Decisions marked (open) are unresolved and need pinning down. Decisions marked (committed) are settled — change them deliberately, with an ADR.

Want to know what’s actually shipped vs. what’s still aspirational? See IMPLEMENTATION-STATUS.md — a single table mapping every spec surface to ✅ shipped / 🚧 partial / 📝 stub / ❌ not started. Specs document intent; the status doc is ground truth.


Reading order

Foundations

#DocumentWhat it covers
00OverviewVision, thesis, scope, success criteria, agent-friendly principle
01ArchitectureThe three products and how they fit
02Manifestlocara.json schema
03CapabilitiesCapability model, entitlements mapping
04Modalities & ToolingFirst-class declarations: modalities + tooling

Developer experience

#DocumentWhat it covers
05SDK@locara/sdk API surface
06CLIlocara command spec
07RuntimeTauri shell, sandboxing, app lifecycle
08StorageSQLite, sqlite-vec, zvec, schemas, migrations
09ModelsModel registry, content addressing, MLX/llama.cpp
10ToolsWasmtime + WASI tool execution runtime
11Components@locara/components distribution model

Distribution + trust

#DocumentWhat it covers
12RegistrySubmission flow, review pipeline, artifact storage
13Security & PrivacySecure-by-default synthesis; privacy-by-architecture
14Trust & SafetySigning, provenance, kill-switch, takedowns
15DistributionInstall, update, sideload
16BuildBuild pipeline, code signing, notarization

Project + operations

#DocumentWhat it covers
17Repo layoutMonorepo structure, crates, packages
18PhasingMilestones, what’s in each phase
19GlossaryDefinitions of terms

Quality + policy

#DocumentWhat it covers
20AccessibilityA11y as first-class; macOS settings, automated review
21Performance BudgetsNumerical targets per device tier
22Content PolicyWhat apps are allowed in the Registry
23GovernanceCoC, contribution flow, RFC process, succession
24Monetization0% take from devs; paid services later
25OnboardingWebsite + first-run UX in each app
26ComplianceGDPR, COPPA, HIPAA, EU AI Act guidance
27Crisis RunbookIncident response playbooks
28Release ProcessVersioning + cadence for the framework
29BrandingNaming, voice, trademark policy

Engineering deep dives

#DocumentWhat it covers
30Testing StrategyCoverage targets, property tests, fuzzing, E2E
31Capability AnalyzerStatic analyzer architecture + rule catalog
32Resource PolicyMemory budgets, eviction, multi-app coordination
33StreamingEnd-to-end streaming + cancellation protocol
34Documentation StrategyWhere each kind of writing lives

Application-level features

#DocumentWhat it covers
35MigrationsSchema, manifest, app-data migrations
36Notifications & BackgroundBackground work + notifications
37SettingsApp settings + user preferences primitive
38MCP CompatibilityModel Context Protocol interop
39i18nLocalization (deferred to v2)

Operations

#DocumentWhat it covers
40Operational SecurityIdentity, credential custody, escrow, succession, drills

Concrete artifacts

#DocumentWhat it covers
41Telemetry-Zero ProofExhaustive list of every network call + commitments
42Threat ModelSTRIDE + attacker narratives + defense layers
43Registry API ContractHTTP endpoints, payloads, auth
44locara init TemplatesWhat the scaffold actually creates
45Website Speclocara.app site architecture + design
46Privacy Nutrition LabelsAuto-generated structured privacy disclosure
47Account RecoveryPublisher-account recovery flows
48DurabilityWhat survives if Locara disappears
49ToolchainBun, Biome, mold, cargo-nextest, full build stack

Companion folders

  • ../notes/ — Research notes on prior art (app stores, runtimes, frameworks). Cite here when justifying a design decision.
  • ../docs/adr/ — Architecture Decision Records. ADRs 0001 (Tauri), 0002 (llama.cpp v1, MLX v2), 0003 (open source + restricted commit access).
  • ../legal/ — Privacy policy, terms of service, DMCA policy. Drafts pending lawyer review.
  • ../website/content/manifesto.md — The public-facing pitch.
  • ../LICENSE — Apache 2.0.

Conventions

  • (committed) — design decision is settled.
  • (open) — decision is unresolved.
  • (open: A vs B) — narrowed to options; needs choosing.
  • Cross-references use relative links: [CLI](./06-cli.md).
  • Code blocks use realistic syntax even if APIs aren’t yet implemented — they document intent.

The three top-level lenses

When reading the spec, three ideas are central:

  1. Secure & private by default. Locara apps demonstrably can’t betray the user — capabilities are kernel-enforced, telemetry is zero, data stays local because operations are local. See 13-security-privacy.md, 03-capabilities.md, 14-trust-safety.md, 31-capability-analyzer.md.
  2. Agent-friendly by design. The framework is built assuming the developer pairs with an LLM coding assistant. Closed-catalog modalities + tooling, strongly-typed SDK, copy-in components, and locara init --from-prompt are the concrete expressions. See 00-overview.md, 04-modalities.md.
  3. Local-first as structural advantage. The framework’s privacy story isn’t a policy — it’s an architectural property. Reads/writes happen on-device because that’s where the model, the database, and the tools live. See 13-security-privacy.md and the manifesto’s “Why local matters” section.

Out of scope (for v1)

  • Mobile (iOS/Android). Architectural compatibility considered, but not shipping.
  • Windows / Linux. Mac-first. Cross-platform after Mac is solid.
  • Cloud-hybrid apps as default. Locara is local-first; cloud fallback is opt-in via net capability.
  • Payments processing. Apps charge via Mac App Store / Stripe / Lemon Squeezy.
  • Real-time collaboration / multi-device sync. Single-device, single-user apps in v1.
  • A general “agent framework.” Locara provides primitives; agents are user code.
  • Daemon / shared model server. v1 = each app loads its own; v2+ adds the daemon.
  • Localization (i18n). English-only v1; see 39-i18n.md.

How to contribute to the spec

When opening a PR that changes the spec:

  1. Update the relevant numbered document.
  2. If an (open) is being resolved, mark it (committed) and add an ADR in ../docs/adr/.
  3. Update phasing if the change affects milestones.
  4. Cross-reference: if Document A’s decision affects Document B, update both.

Substantive changes go through the RFC process. Note that commit access to the canonical Locara repos is restricted — see ADR 0003.

Status

SectionStatus
Foundations (00–04)Draft v0.1
Developer experience (05–11)Draft v0.1
Distribution + trust (12–16)Draft v0.1
Project + operations (17–19)Draft v0.1
Quality + policy (20–29)Draft v0.1
Engineering deep dives (30–34)Draft v0.1
Application-level features (35–39)Draft v0.1
ADRs3 accepted (Tauri, llama.cpp v1, restricted commit access)
LegalDraft, lawyer review pending
ManifestoDraft v0.2

All documents are draft. Internal review pass next; public release at end of phase 0 (after name + domain are locked, lawyer reviews legal docs, ADRs are filled in for remaining (open)s).