vKore · open source
Agents that hold exactly what you grant.
vKore runs Kore as a sandboxed guest beside your operating system and puts local AI agents inside it. A file path, a model response, a tool name or a click is never authority by itself: every grant is a Kore capability, scoped to one prompt and revoked before the next.
Open source under MPL-2.0. The screenshots are vKore's native app, rendered against its test fixtures.
(open full size)vKore's agent view: the broker at the root holds the session's twelve capabilities, and each worker and sub-agent it spawns holds a subset of its parent's. Withheld capabilities stay on the card, dimmed.
A project sets ceilings, not grants.
The folders a project may use and the add-ons it enables bound what an agent may ever ask for. They grant nothing on their own.
Every prompt is bound to its project, session, generation, prompt ID, idempotency key and exact text. For each one, Kore creates generation-bound agent routes and capability grants, and revokes them before the next prompt is admitted, so nothing an agent held carries over.
A workspace folder is opened as a capability and imported into Kore. Changes come back to the host only as exact change sets, within explicit byte and file limits.
(open full size)A prompt answered inside its grant: the agent reads one file in a read-only workspace, and only validated assistant text reaches the chat. The working timeline keeps agent and tool activity apart from the answer.
- One prompt, one generation
- Routes and grants are revoked before the next prompt is admitted.
- Bounded scans
- Workspace scans are bounded, don't follow symlinks, and warn about broad or credential-bearing folders.
- Exact writeback
- Edits reach the host only as exact change sets, within byte and file limits you set.
- Loopback only
- The harness refuses non-loopback binds, and browser-originated changes need the exact local origin and the native client's header.
Every agent holds less than its parent.
A broker at the root holds the session's capabilities. Each worker it spawns, and each sub-agent below that, derives a subset of what its parent holds: Kore's attenuation rule, drawn on screen.
The agent view shows the authority tree as it stands: spawn lineage between agents, the capabilities each one holds lit, and the ones withheld from it still on its card, dimmed. The filesystem view shows the same session from the other side: the workspace's containment, and the dashed permission edges along which an agent can reach a file.
(open full size)The same session from the filesystem side: solid lines are the workspace's containment, dashed lines the permissions each agent was granted. An agent reaches a file only along a dashed line.
Approvals a model can't forge.
Model output, tool results, files, web pages and transcript text can't approve anything. An approval is an authenticated local action over its exact action, session, ID, issue time and expiry, and it can be used once.
A request shows the current and requested scope side by side: files, tools, accounts, recipients, network destinations, budgets, delegation and duration. A partial approval must be a subset of the request, and produces a new, narrower grant rather than blessing the original.
vKore records decisions; it doesn't mint capabilities. The resident Kore broker independently checks its live holdings, the target generation, uses, expiry and the whole transaction before installing anything. Policy lives in a keyed, append-only audit chain: a gap, an edit, a reordering or the wrong key fails closed. Revocation takes effect at once.
(open full size)An approval shows the exact authority requested, down to the add-on, tool, execution domain, session and risk, and can be granted once. Model output and transcript text can't open this dialog.
The model never holds a capability.
Inference runs locally on llama.cpp, which receives model inputs and bounded sequence state, and never guest capabilities, host descriptors or the ability to run a tool.
Only validated public assistant text reaches the chat. Model fragments, validation envelopes and raw protocol records stay in the append-only transcript, where they can be audited. vKore never downloads or guesses a model: you supply both the server and the weights.
Installing an add-on grants nothing.
Add-ons are tools that run on the host, inside the Kore guest, or split across both. Installing one doesn't let any agent call it.
Every call is checked against the exact package, generation, prompt, arguments, resource scope, mediation, expiry, call budget, replay state and revocation state. Packages are signed and content-addressed, with compatibility checks, offline bundles and rollback. The reference add-ons include Git, scoped to one exact repository, and Gmail, through vKore's credential-brokered HTTPS boundary.
Kore holds the authority. vKore holds the host.
The split is deliberate. vKore is the convenient part, with the app, the settings and the supervision. None of it can mint authority, which only the Kore guest holds.
Kore guest
Authority
- Capability lineage and guest routes
- Founding agents, with their budgets
- Executable and filesystem grants
- The guest's security gates
vKore host
Everything around it
- The app, projects and settings
- QEMU and llama.cpp supervision
- Workspace, policy, add-ons and packages
- Transcripts and audit
llama.cpp
Tokens
- Model inputs and bounded sequence state
- No guest capabilities
- No host descriptors
- No tool execution
Open source, in active development.
vKore's end-to-end gate boots a real Kore guest in QEMU, submits a prompt through the harness, and requires the capability-scoped tool result and the agents' teardown to come back over HostLink. The paved path runs the native app on Windows, with the harness, QEMU, Kore and llama.cpp inside WSL. Guest mode trails the OS: features reach Cosmos first.
vKore
MPL-2.0The host control plane: the native Iced and Axiom app, the loopback harness, VM supervision, workspace, policy, add-ons and packages.
MicroPerceptron/vkoreKore guest
Not distributed yetvKore boots a pinned Kore image and checks its commit and SHA-256 before use; it never rebuilds Kore or substitutes an image. Kore images aren't distributed yet.
About KoreShared contracts
Pinned to KorevKore pins the HostLink, workspace and guest-filesystem contracts to an exact Kore revision instead of copying them, so building it today needs access to that revision. They move to libkore once they're published there as versioned crates.
Kore developer docs