Veloresearch/velocity-local-services

Velocity Local Services: an app for running LLMs locally on Windows and Linux. Load any GGUF model and chat with web search, tools and schematics, let it use your computer by voice, and serve it to opencode, Hermes or any app through an OpenAI-compatible API and MCP. Context up to 32M tokens. No cloud.

34

36 commits

updated Oct 18, 2026

See the code

See what people are saying

SourceMessageScoreDate

4B model, 6 GB laptop GPU, 32M tokens of context. Fully local. (r/LocalLLM)

We built VLS, a local LLM app: any GGUF model, OpenAI API + MCP, Windows and Linux. 8K window, no vector DB, no embeddings. Median answer at 32M tokens: 653 ms. RULER numbers and the full report are in the repo. It's a preview, so expect bugs:…

95

Oct 12, 2026

README

Velocity

Velocity Local Services

Run LLMs on your own computer.

One app to load any GGUF model and work with it: chat with web search and tools, voice, pictures, computer use - and an OpenAI-compatible API and MCP for every other app you use. Its context reaches far past the model's window: up to 32M tokens. Nothing leaves the machine.


Download for Windows   Download for Linux


Release Release date Downloads Latest release downloads Stars Last commit
Windows Linux Context API License Technical report


VLS Chat: a question about the ESP32-S3 is searched on the web, three pages are read, and the answer streams in with numbered sources

A real VLS window: the question is looked up first, the pages are read, and the answer cites them.



Watch VLS in action on YouTube

▶ Watch VLS in action (YouTube)



Install  ·  Velocity Context  ·  Benchmarks  ·  Technical report  ·  Release notes  ·  veloresearch.com


What's new in 0.1.1 Preview 3 - your local model can now use your computer, by text or by voice
  • Computer use. The model opens apps, clicks, types and fills in forms. Four permission levels, off until you turn it on, and Esc, Stop or the top-left corner halts it at once. More
  • The island. A small bar at the top of the screen for a quick chat, your history, voice, contexts and live activity. Hidden until you need it. More
  • Talk drives the computer. Say a task, interrupt at any time, answer permission questions with "yes" or "no".
  • Writing in chat. Instant typing in long chats, a draft per chat, @ to attach a file or pick a context, / commands, and a token counter as the window fills. More
  • Voice & audio settings. Choose and test your microphone and speaker; input volume, noise suppression and echo cancellation.
  • Starting VLS. Opening it always shows its window; starting with Windows stays in the background.

Computer use and the island are Windows only for now. Full notes: VLS 0.1.1 Preview 3 · all releases

Contents


Why VLS

  • One app for running models locally. Download or add a GGUF model, and VLS picks how it runs on your graphics card. Chat, voice, pictures and an OpenAI-compatible API on one address, in one install, with a panel that explains itself.
  • More than the model's window. With Velocity Context a model works across far more text than its window holds: add a folder, a repository or a year of notes once, and every question can reach all of it - up to 32M tokens.
  • Private by construction. No account, no telemetry, no Docker. The only outbound requests are the ones you ask for.

Most local runners load a model and give you its window. VLS does that too, and adds what sits around the model: a context far larger than the window, tools the model can use, a computer it can operate with your permission, and a way to see how it wrote each answer.

VLS Home: the loaded model, its writing speed and graphics memory, quick prompts and recent chats

Back to top

Install

One command. No account, no sign-in, no telemetry, no Docker.

Windows - download VLSSetup.exe, or:

irm https://github.com/Veloresearch/velocity-local-services/releases/latest/download/install.ps1 | iex

Linux - download the x64 build (a Vulkan build is beside it), or:

curl -fsSL https://github.com/Veloresearch/velocity-local-services/releases/latest/download/install.sh | sh

The installer looks at the machine before it downloads anything and takes the build that suits it - CUDA where there is an NVIDIA card, Vulkan on Linux where there is any card at all, the processor otherwise - and opens the panel when it is done. Updates install themselves from Settings. Removing it is deleting one folder; your models and memories live somewhere else.

Graphics cardOptional. A 6 GB card runs a 4B model with every layer on the card; the processor build works everywhere.
Windows installerThe preview is not code-signed yet. If SmartScreen stops it, choose More info → Run anyway.
LinuxBuilds are packaged and tested less than Windows. Computer use and the island are Windows only for now.
Every buildOn the releases page, with the notes for the latest.

The Velocity mark assembling as VLS starts

Back to top

Velocity Context


A model's window is a hard limit paid for in memory. Velocity Context gives the model something to reach into instead of a bigger window: you add material once - a folder, a repository, your notes, or simply the conversation as it happens - and every question after that can reach all of it, up to 32M tokens.

  • Not RAG. No embedding model, no vector database, no chunk size, no second service to run.
  • Counted in the model's own tokens. Sizes are measured with the loaded model's tokenizer, so what you see is what the model sees.
  • On your disk. A context is a .mfyc file you own, built in seconds, outliving any model you load.
  • Explainable. Every answer carries a receipt with the exact text the model was given.
  • Flat cost. Thirty-two times the material, the same half second.
contextone-time buildanswer, mediananswer, p90
1M tokens0.5 s703 ms890 ms
10M tokens5.3 s570 ms1 081 ms
20M tokens10.6 s708 ms1 117 ms
32M tokens17.2 s653 ms1 111 ms

Contexts: four memories with their size in tokens, how full each is, and which apps use them

How it was measured, what the controls were and where the results stop are in the technical report (PDF, 14 pages). The method itself we keep to ourselves.

Measured, not claimed

One laptop: RTX 3060 Laptop, 6 GB, Qwen3.5-4B-Q4_K_M, an 8 192-token window.

RULER averages by context length

Nine-task averages from 1M to 32M tokens

Median answer time from 1M to 32M tokens

NVIDIA's RULER, on their harness, nothing underneath it modified:

4k16k32k64k128k
13-task average100.074.885.589.186.9

Beyond 128k, on our own ladder with the same task definitions - reported separately, never averaged in:

1M5M10M15M20M25M32M
nine-task average97.895.610097.897.8100100

The per-task tables, the samples per cell and the parts that do not flatter us are in the technical report. Every benchmark can be run on your own machine from the panel.

Back to top

Chat

Text, photos and files, voice with live transcription, and a model that looks things up before it answers.

Search first, with sources. A question about a part number, a price, a datasheet or anything recent is searched before the model writes a word. You watch the pages being read, and every claim in the answer points back to its source.

Exact maths. A built-in calculator works with units, constants and radio and circuit formulas, and shows every step. The model does not do arithmetic in its head.

A calculator step card showing the steps for a 433 MHz half-wave dipole
Calculator - the expression, every step and the result, then the answer
A bar chart comparing two series of monthly figures drawn inside an answer
Charts - drawn from the numbers in the answer, with the data one tab away

Drawings for electronics. Schematics are checked before you see them: every pin connected, every value in range. Pin-outs, wiring diagrams and antenna aiming are drawn the same way, and a schematic exports to KiCad.

A schematic of an NPN transistor driving a 5 V relay from a 3.3 V GPIO, with a flyback diode
Schematic - a relay driven from a 3.3 V pin, sized and checked
An ATtiny85 pin-out with power, ground, analog and communication pins coloured
Pin-out - looked up in the datasheet, then drawn

A Python sandbox. The model writes and runs Python in the page - with numpy, pandas and matplotlib, and no internet needed - and the files it makes appear as cards you can open or save.

A Python run that wrote sales.csv and sales.png, both shown as file cards with previews

Everything an answer needs around it. Save any answer as PDF, Markdown or an image. See what it cost: time to first words, writing speed, tokens read and written, and how much of the window it used. Find anything in a long conversation with Ctrl+F.

The Save menu under an answer: PDF, Markdown, image, or copy as image
Save as - PDF, Markdown or an image
About this answer: model, first words after, total time, writing speed, tokens read and written, window used
Answer details - what one answer took
The composer with slash commands: model, think, talk, new, clear
/ commands - load a model, set thinking, start voice
The composer with @ suggestions: a file, a photo, this chat's memory, and contexts
@ mentions - attach a file or answer from a context

Enter sends, Shift+Enter starts a new line, Esc stops, ↑ edits your last message. Long pasted text becomes a chip with its size in tokens.

Back to top

Computer use

Your local model can open apps, click, type and fill in forms. It reads each window's buttons and fields directly instead of guessing from pixels, and falls back to a screenshot for apps that do not describe themselves.

VLS's own cursor typing into a field and clicking a button in a test window, labelled Typing and Clicking

Its own cursor. A calm second pointer shows where it is going and what it is doing. Your mouse stays yours.

You decide how much it may do. Watch only, Ask every time, Ask before risky actions (the default), or Act without asking. It is off until you turn it on.

You can always stop it. Esc, Stop, or pushing the mouse into the top-left corner halts it at once. Pause, Take over and Continue hand control back and forth.

  • It never types into password fields, always asks before closing unsaved work, and never acts on a window you did not name.
  • Pick which screen it works on. Every action goes into an activity log.
  • It works with the sandbox: take something from the screen, process it in Python, put the result back.
  • Voice drives it too: say a task in Talk, interrupt at any time, answer approvals with "yes" or "no".

Measured. Tested with Qwen3.5-4B on Notepad and Calculator tasks: 4 of 4 passed. Reading a window takes 40-120 ms, and an action takes about half a second.

Settings, Computer use: allow computer use and the four permission levels
Permission - four levels, one switch
Settings, Computer use: choosing the screen it works on, and working in the background
Screen - which display it works on

Computer use is new and Windows only. Start with Ask before risky actions, and check what matters.

Back to top

The island

A small bar at the top of the screen, hidden until you need it. Chat without opening VLS, pick up a conversation, talk, choose a context, or watch what VLS is doing.

The island opening from its pill into Chat, and an answer streaming in

Open it by holding the pointer at the top edge of the screen, pressing the shortcut (Alt+Space by default, changeable in Settings), or dragging a file to the top of the screen. It hides in full-screen apps and games.

The island's Chat section with a question and a short answer
Chat - a quick question, without opening VLS
The island's History section with pinned and recent chats
History - every chat, searchable
The island's Talk section listening, with the permission level for tasks
Talk - say a task; say "stop" to stop it
The island's Activity section during a computer-use step in Calculator
Activity - the current step, with Pause, Take over and Stop
An approval card asking to allow VLS to click Equals in Calculator
Approvals - Allow, Deny, or allow for this task
The collapsed island showing a live computer-use step
The collapsed island showing a paused task
While VLS works - a live bar for answers, downloads, loading and tasks

Settings for the island: show it, the keyboard shortcut, the top edge, and island options

Back to top

Look inside the model

How the last answer was written, one token at a time: what the model chose, how sure it was, and what it nearly said. Then the model itself - every layer, read straight from its file.

An answer replayed token by token, with the five candidates at each step, the model's certainty, and the writing speed

Weights view: every layer of the model as heatmaps of its query, key, value and feed-forward weights
Weights - every layer, brighter where the weights are larger
Shape view: layers, width, attention heads, vocabulary, trained context and the path from embeddings to output
Shape - how the model is built, as its file describes it

The weight pictures above are drawn from sample data for this page; in VLS they come from the model you have loaded.

Back to top

Studio, Plugins and Apps

StudioImages and video from local diffusion models, speech in over a hundred Piper voices, all on this machine.
ModelsSearch Hugging Face from the panel; each build is checked against your card before it downloads.
PluginsAny MCP server - a folder, GitHub, a database - with one-click presets. Switched-on plugins offer their tools in Chat.
AppsOne-press connection for opencode and Hermes Agent; the address for everything else.
MeshEvery machine in your house as one - a model too big for one card is split across them.
Studio: image mode with a prompt box, model choice, shape and quality controls
Studio - pictures, video and speech
Models: the models on this computer, each with whether it fits the graphics card
Models - what fits your card, before it downloads
Plugins: Filesystem and GitHub running, SQLite switched off, and one-click presets
Plugins - MCP servers, started and watched by VLS
Apps: opencode connected with memory per project, Hermes Agent ready to connect
Apps - connect an agent in one press



Use it from the agent you already have


Open Apps in the panel and press Connect beside the agent you use:

what Connect does
opencodeadds VLS as a normal provider in ~/.config/opencode/opencode.json and makes it the model opencode starts with
Hermes Agentpoints ~/.hermes/config.yaml at VLS as its custom endpoint, keeping your previous model to put back

Not an MCP plug-in and not a bridge: VLS is the model provider itself, the same way a cloud API would be.

The next time the agent starts, it is talking to the model on your machine. Disconnect removes exactly what Connect added; nothing else in those files is touched, and a backup is kept the first time.

For anything else that speaks the OpenAI API - Continue, Cline, LangChain, your own script:

Base URL   http://127.0.0.1:11500/v1
API key    anything (none is needed from this computer)
Model      velocity  (or any name - it reaches the loaded model)

What the agent remembers. Every application gets its own memory without anyone setting it up, and a coding agent gets one per project - it says which folder it is working in, and VLS keeps that project's memory apart from the others. A new chat in the same project picks up where the last one left off; a different repository starts clean. Each app can be switched to one shared memory, or to remembering nothing, on its card.

One address for everything

# chat
curl http://127.0.0.1:11500/v1/chat/completions -H "content-type: application/json" \
  -d '{"model":"velocity","messages":[{"role":"user","content":"hello"}]}'

# speech - any installed voice, or the default for OpenAI voice names
curl http://127.0.0.1:11500/v1/audio/speech -H "content-type: application/json" \
  -d '{"input":"Hello from this computer.","voice":"en_US-ryan-high"}' -o hello.wav

# listening
curl http://127.0.0.1:11500/v1/audio/transcriptions -F [email protected]

# pictures
curl http://127.0.0.1:11500/v1/images/generations -H "content-type: application/json" \
  -d '{"prompt":"a small orange cube with a face, pixel art","size":"512x512"}'
from openai import OpenAI
client = OpenAI(base_url="http://127.0.0.1:11500/v1", api_key="local")
print(client.chat.completions.create(model="velocity",
      messages=[{"role": "user", "content": "hello"}]).choices[0].message.content)

From another machine on your network the same address works with the key from the panel's API page.

Back to top

Make it yours

Home and the sidebar, arranged your way. Drag widgets by their handles, change their size, add or take off what you do not use. The sidebar shows what you choose, in your order, under your headings.

Home in edit mode: widgets with handles, Add widgets, Reset and Done
Arranging Home
Settings, Sidebar: which pages the sidebar shows and in what order
Sidebar

Themes. Dark, Slate, Light and Cream, or follow the system, with nine accents.

Home in the Light theme
Light
Settings, Appearance: themes and accents
Appearance

Your account. A name for the greeting, and an optional password that has to be typed before the panel opens. Apps keep working with the API key; the password only guards the panel.

Backups and restore. Everything VLS keeps - chats, preferences, service settings, contexts - in one file you can store anywhere, on a schedule if you like, and put back on a new machine.

The lock screen asking for the password to open VLS
Lock screen
Settings, Data: back up chats, preferences, service settings and contexts
Data - back up and restore
Settings, Voice and audio: microphone, input level, noise suppression and echo cancellation
Voice & audio - microphone and speaker, tested in place
System: the graphics card, memory and processor, live
System - what the machine has and what is using it

A window or a browser. VLS opens in its own window. The same panel works in any browser on this computer at http://127.0.0.1:11500.

Back to top

See it

▶ Watch VLS in action (YouTube) - or take the short tour from Settings › General › Guided tour once it is installed.

Every picture on this page is a capture of the real VLS panel, filled with sample conversations, models and contexts.

Built on

VLS is a router with Velocity Context behind it. The memory, the routing, the hardware fit, the mesh and the panel are ours. llama.cpp (MIT) runs the GGUF models, stable-diffusion.cpp the pictures, Piper and faster-whisper the voice - their licences travel inside every package.

Questions people actually ask

Does anything leave my machine? No. The only outbound requests are the ones you ask for: searching Hugging Face, searching the web from Chat, downloading what you chose, and checking for a newer release. No telemetry, no account.

Do I need a GPU? No. A card makes it faster; the processor build works everywhere.

Which models work? Any GGUF that llama.cpp runs, Piper voices, and diffusion models for Studio.

How can a 4B model with an 8K window answer across 32M tokens? Velocity Context, which is not RAG and not a bigger window. What we measured, and how, is in the technical report; the method itself we keep to ourselves.

Which model should I use for computer use? It was tested with Qwen3.5-4B on a 6 GB card, on Notepad and Calculator tasks. Whatever the model, it is held to the permission level you chose.

Can I turn web search off? Yes, in Chat's Tools menu. With it off, only questions that are plainly about today are looked up, and the Search button always searches.

Does the island work on Linux? Not yet. The island and computer use are Windows only in Preview 3; the rest of VLS runs on both.

Is it open source? No. VLS is free for personal use; companies need a licence - write to [email protected]. See LICENSE.

Is it finished? It is a preview. When you find a rough edge, open an issue - it is the fastest way to get it fixed.

Back to top


Tofu

If VLS is useful to you, a star is the whole ask

Star this repository


Star history of VLS



Velocity

Made by Velocity · local runtimes and long-context execution

veloresearch.com  ·  Technical report  ·  Releases  ·  Issues  ·  @velo_research  ·  [email protected]

ai
ai-agents
ai-assistant
computer-use
desktop-app
gguf
linux
llama-cpp
llm
local-llm
long-context
mcp
mcp-client
mcp-server
openai-api
privacy
rust
self-hosted
voice-assistant
windows

Veloresearch/velocity-local-services

Velocity Local Services: an app for running LLMs locally on Windows and Linux. Load any GGUF model and chat with web search, tools and schematics, let it use your computer by voice, and serve it to opencode, Hermes or any app through an OpenAI-compatible API and MCP. Context up to 32M tokens. No cloud.

34

36 commits

updated Oct 18, 2026

See the code

See what people are saying

SourceMessageScoreDate

4B model, 6 GB laptop GPU, 32M tokens of context. Fully local. (r/LocalLLM)

We built VLS, a local LLM app: any GGUF model, OpenAI API + MCP, Windows and Linux. 8K window, no vector DB, no embeddings. Median answer at 32M tokens: 653 ms. RULER numbers and the full report are in the repo. It's a preview, so expect bugs:…

95

Oct 12, 2026

README

Velocity

Velocity Local Services

Run LLMs on your own computer.

One app to load any GGUF model and work with it: chat with web search and tools, voice, pictures, computer use - and an OpenAI-compatible API and MCP for every other app you use. Its context reaches far past the model's window: up to 32M tokens. Nothing leaves the machine.


Download for Windows   Download for Linux


Release Release date Downloads Latest release downloads Stars Last commit
Windows Linux Context API License Technical report


VLS Chat: a question about the ESP32-S3 is searched on the web, three pages are read, and the answer streams in with numbered sources

A real VLS window: the question is looked up first, the pages are read, and the answer cites them.



Watch VLS in action on YouTube

▶ Watch VLS in action (YouTube)



Install  ·  Velocity Context  ·  Benchmarks  ·  Technical report  ·  Release notes  ·  veloresearch.com


What's new in 0.1.1 Preview 3 - your local model can now use your computer, by text or by voice
  • Computer use. The model opens apps, clicks, types and fills in forms. Four permission levels, off until you turn it on, and Esc, Stop or the top-left corner halts it at once. More
  • The island. A small bar at the top of the screen for a quick chat, your history, voice, contexts and live activity. Hidden until you need it. More
  • Talk drives the computer. Say a task, interrupt at any time, answer permission questions with "yes" or "no".
  • Writing in chat. Instant typing in long chats, a draft per chat, @ to attach a file or pick a context, / commands, and a token counter as the window fills. More
  • Voice & audio settings. Choose and test your microphone and speaker; input volume, noise suppression and echo cancellation.
  • Starting VLS. Opening it always shows its window; starting with Windows stays in the background.

Computer use and the island are Windows only for now. Full notes: VLS 0.1.1 Preview 3 · all releases

Contents


Why VLS

  • One app for running models locally. Download or add a GGUF model, and VLS picks how it runs on your graphics card. Chat, voice, pictures and an OpenAI-compatible API on one address, in one install, with a panel that explains itself.
  • More than the model's window. With Velocity Context a model works across far more text than its window holds: add a folder, a repository or a year of notes once, and every question can reach all of it - up to 32M tokens.
  • Private by construction. No account, no telemetry, no Docker. The only outbound requests are the ones you ask for.

Most local runners load a model and give you its window. VLS does that too, and adds what sits around the model: a context far larger than the window, tools the model can use, a computer it can operate with your permission, and a way to see how it wrote each answer.

VLS Home: the loaded model, its writing speed and graphics memory, quick prompts and recent chats

Back to top

Install

One command. No account, no sign-in, no telemetry, no Docker.

Windows - download VLSSetup.exe, or:

irm https://github.com/Veloresearch/velocity-local-services/releases/latest/download/install.ps1 | iex

Linux - download the x64 build (a Vulkan build is beside it), or:

curl -fsSL https://github.com/Veloresearch/velocity-local-services/releases/latest/download/install.sh | sh

The installer looks at the machine before it downloads anything and takes the build that suits it - CUDA where there is an NVIDIA card, Vulkan on Linux where there is any card at all, the processor otherwise - and opens the panel when it is done. Updates install themselves from Settings. Removing it is deleting one folder; your models and memories live somewhere else.

Graphics cardOptional. A 6 GB card runs a 4B model with every layer on the card; the processor build works everywhere.
Windows installerThe preview is not code-signed yet. If SmartScreen stops it, choose More info → Run anyway.
LinuxBuilds are packaged and tested less than Windows. Computer use and the island are Windows only for now.
Every buildOn the releases page, with the notes for the latest.

The Velocity mark assembling as VLS starts

Back to top

Velocity Context


A model's window is a hard limit paid for in memory. Velocity Context gives the model something to reach into instead of a bigger window: you add material once - a folder, a repository, your notes, or simply the conversation as it happens - and every question after that can reach all of it, up to 32M tokens.

  • Not RAG. No embedding model, no vector database, no chunk size, no second service to run.
  • Counted in the model's own tokens. Sizes are measured with the loaded model's tokenizer, so what you see is what the model sees.
  • On your disk. A context is a .mfyc file you own, built in seconds, outliving any model you load.
  • Explainable. Every answer carries a receipt with the exact text the model was given.
  • Flat cost. Thirty-two times the material, the same half second.
contextone-time buildanswer, mediananswer, p90
1M tokens0.5 s703 ms890 ms
10M tokens5.3 s570 ms1 081 ms
20M tokens10.6 s708 ms1 117 ms
32M tokens17.2 s653 ms1 111 ms

Contexts: four memories with their size in tokens, how full each is, and which apps use them

How it was measured, what the controls were and where the results stop are in the technical report (PDF, 14 pages). The method itself we keep to ourselves.

Measured, not claimed

One laptop: RTX 3060 Laptop, 6 GB, Qwen3.5-4B-Q4_K_M, an 8 192-token window.

RULER averages by context length

Nine-task averages from 1M to 32M tokens

Median answer time from 1M to 32M tokens

NVIDIA's RULER, on their harness, nothing underneath it modified:

4k16k32k64k128k
13-task average100.074.885.589.186.9

Beyond 128k, on our own ladder with the same task definitions - reported separately, never averaged in:

1M5M10M15M20M25M32M
nine-task average97.895.610097.897.8100100

The per-task tables, the samples per cell and the parts that do not flatter us are in the technical report. Every benchmark can be run on your own machine from the panel.

Back to top

Chat

Text, photos and files, voice with live transcription, and a model that looks things up before it answers.

Search first, with sources. A question about a part number, a price, a datasheet or anything recent is searched before the model writes a word. You watch the pages being read, and every claim in the answer points back to its source.

Exact maths. A built-in calculator works with units, constants and radio and circuit formulas, and shows every step. The model does not do arithmetic in its head.

A calculator step card showing the steps for a 433 MHz half-wave dipole
Calculator - the expression, every step and the result, then the answer
A bar chart comparing two series of monthly figures drawn inside an answer
Charts - drawn from the numbers in the answer, with the data one tab away

Drawings for electronics. Schematics are checked before you see them: every pin connected, every value in range. Pin-outs, wiring diagrams and antenna aiming are drawn the same way, and a schematic exports to KiCad.

A schematic of an NPN transistor driving a 5 V relay from a 3.3 V GPIO, with a flyback diode
Schematic - a relay driven from a 3.3 V pin, sized and checked
An ATtiny85 pin-out with power, ground, analog and communication pins coloured
Pin-out - looked up in the datasheet, then drawn

A Python sandbox. The model writes and runs Python in the page - with numpy, pandas and matplotlib, and no internet needed - and the files it makes appear as cards you can open or save.

A Python run that wrote sales.csv and sales.png, both shown as file cards with previews

Everything an answer needs around it. Save any answer as PDF, Markdown or an image. See what it cost: time to first words, writing speed, tokens read and written, and how much of the window it used. Find anything in a long conversation with Ctrl+F.

The Save menu under an answer: PDF, Markdown, image, or copy as image
Save as - PDF, Markdown or an image
About this answer: model, first words after, total time, writing speed, tokens read and written, window used
Answer details - what one answer took
The composer with slash commands: model, think, talk, new, clear
/ commands - load a model, set thinking, start voice
The composer with @ suggestions: a file, a photo, this chat's memory, and contexts
@ mentions - attach a file or answer from a context

Enter sends, Shift+Enter starts a new line, Esc stops, ↑ edits your last message. Long pasted text becomes a chip with its size in tokens.

Back to top

Computer use

Your local model can open apps, click, type and fill in forms. It reads each window's buttons and fields directly instead of guessing from pixels, and falls back to a screenshot for apps that do not describe themselves.

VLS's own cursor typing into a field and clicking a button in a test window, labelled Typing and Clicking

Its own cursor. A calm second pointer shows where it is going and what it is doing. Your mouse stays yours.

You decide how much it may do. Watch only, Ask every time, Ask before risky actions (the default), or Act without asking. It is off until you turn it on.

You can always stop it. Esc, Stop, or pushing the mouse into the top-left corner halts it at once. Pause, Take over and Continue hand control back and forth.

  • It never types into password fields, always asks before closing unsaved work, and never acts on a window you did not name.
  • Pick which screen it works on. Every action goes into an activity log.
  • It works with the sandbox: take something from the screen, process it in Python, put the result back.
  • Voice drives it too: say a task in Talk, interrupt at any time, answer approvals with "yes" or "no".

Measured. Tested with Qwen3.5-4B on Notepad and Calculator tasks: 4 of 4 passed. Reading a window takes 40-120 ms, and an action takes about half a second.

Settings, Computer use: allow computer use and the four permission levels
Permission - four levels, one switch
Settings, Computer use: choosing the screen it works on, and working in the background
Screen - which display it works on

Computer use is new and Windows only. Start with Ask before risky actions, and check what matters.

Back to top

The island

A small bar at the top of the screen, hidden until you need it. Chat without opening VLS, pick up a conversation, talk, choose a context, or watch what VLS is doing.

The island opening from its pill into Chat, and an answer streaming in

Open it by holding the pointer at the top edge of the screen, pressing the shortcut (Alt+Space by default, changeable in Settings), or dragging a file to the top of the screen. It hides in full-screen apps and games.

The island's Chat section with a question and a short answer
Chat - a quick question, without opening VLS
The island's History section with pinned and recent chats
History - every chat, searchable
The island's Talk section listening, with the permission level for tasks
Talk - say a task; say "stop" to stop it
The island's Activity section during a computer-use step in Calculator
Activity - the current step, with Pause, Take over and Stop
An approval card asking to allow VLS to click Equals in Calculator
Approvals - Allow, Deny, or allow for this task
The collapsed island showing a live computer-use step
The collapsed island showing a paused task
While VLS works - a live bar for answers, downloads, loading and tasks

Settings for the island: show it, the keyboard shortcut, the top edge, and island options

Back to top

Look inside the model

How the last answer was written, one token at a time: what the model chose, how sure it was, and what it nearly said. Then the model itself - every layer, read straight from its file.

An answer replayed token by token, with the five candidates at each step, the model's certainty, and the writing speed

Weights view: every layer of the model as heatmaps of its query, key, value and feed-forward weights
Weights - every layer, brighter where the weights are larger
Shape view: layers, width, attention heads, vocabulary, trained context and the path from embeddings to output
Shape - how the model is built, as its file describes it

The weight pictures above are drawn from sample data for this page; in VLS they come from the model you have loaded.

Back to top

Studio, Plugins and Apps

StudioImages and video from local diffusion models, speech in over a hundred Piper voices, all on this machine.
ModelsSearch Hugging Face from the panel; each build is checked against your card before it downloads.
PluginsAny MCP server - a folder, GitHub, a database - with one-click presets. Switched-on plugins offer their tools in Chat.
AppsOne-press connection for opencode and Hermes Agent; the address for everything else.
MeshEvery machine in your house as one - a model too big for one card is split across them.
Studio: image mode with a prompt box, model choice, shape and quality controls
Studio - pictures, video and speech
Models: the models on this computer, each with whether it fits the graphics card
Models - what fits your card, before it downloads
Plugins: Filesystem and GitHub running, SQLite switched off, and one-click presets
Plugins - MCP servers, started and watched by VLS
Apps: opencode connected with memory per project, Hermes Agent ready to connect
Apps - connect an agent in one press



Use it from the agent you already have


Open Apps in the panel and press Connect beside the agent you use:

what Connect does
opencodeadds VLS as a normal provider in ~/.config/opencode/opencode.json and makes it the model opencode starts with
Hermes Agentpoints ~/.hermes/config.yaml at VLS as its custom endpoint, keeping your previous model to put back

Not an MCP plug-in and not a bridge: VLS is the model provider itself, the same way a cloud API would be.

The next time the agent starts, it is talking to the model on your machine. Disconnect removes exactly what Connect added; nothing else in those files is touched, and a backup is kept the first time.

For anything else that speaks the OpenAI API - Continue, Cline, LangChain, your own script:

Base URL   http://127.0.0.1:11500/v1
API key    anything (none is needed from this computer)
Model      velocity  (or any name - it reaches the loaded model)

What the agent remembers. Every application gets its own memory without anyone setting it up, and a coding agent gets one per project - it says which folder it is working in, and VLS keeps that project's memory apart from the others. A new chat in the same project picks up where the last one left off; a different repository starts clean. Each app can be switched to one shared memory, or to remembering nothing, on its card.

One address for everything

# chat
curl http://127.0.0.1:11500/v1/chat/completions -H "content-type: application/json" \
  -d '{"model":"velocity","messages":[{"role":"user","content":"hello"}]}'

# speech - any installed voice, or the default for OpenAI voice names
curl http://127.0.0.1:11500/v1/audio/speech -H "content-type: application/json" \
  -d '{"input":"Hello from this computer.","voice":"en_US-ryan-high"}' -o hello.wav

# listening
curl http://127.0.0.1:11500/v1/audio/transcriptions -F [email protected]

# pictures
curl http://127.0.0.1:11500/v1/images/generations -H "content-type: application/json" \
  -d '{"prompt":"a small orange cube with a face, pixel art","size":"512x512"}'
from openai import OpenAI
client = OpenAI(base_url="http://127.0.0.1:11500/v1", api_key="local")
print(client.chat.completions.create(model="velocity",
      messages=[{"role": "user", "content": "hello"}]).choices[0].message.content)

From another machine on your network the same address works with the key from the panel's API page.

Back to top

Make it yours

Home and the sidebar, arranged your way. Drag widgets by their handles, change their size, add or take off what you do not use. The sidebar shows what you choose, in your order, under your headings.

Home in edit mode: widgets with handles, Add widgets, Reset and Done
Arranging Home
Settings, Sidebar: which pages the sidebar shows and in what order
Sidebar

Themes. Dark, Slate, Light and Cream, or follow the system, with nine accents.

Home in the Light theme
Light
Settings, Appearance: themes and accents
Appearance

Your account. A name for the greeting, and an optional password that has to be typed before the panel opens. Apps keep working with the API key; the password only guards the panel.

Backups and restore. Everything VLS keeps - chats, preferences, service settings, contexts - in one file you can store anywhere, on a schedule if you like, and put back on a new machine.

The lock screen asking for the password to open VLS
Lock screen
Settings, Data: back up chats, preferences, service settings and contexts
Data - back up and restore
Settings, Voice and audio: microphone, input level, noise suppression and echo cancellation
Voice & audio - microphone and speaker, tested in place
System: the graphics card, memory and processor, live
System - what the machine has and what is using it

A window or a browser. VLS opens in its own window. The same panel works in any browser on this computer at http://127.0.0.1:11500.

Back to top

See it

▶ Watch VLS in action (YouTube) - or take the short tour from Settings › General › Guided tour once it is installed.

Every picture on this page is a capture of the real VLS panel, filled with sample conversations, models and contexts.

Built on

VLS is a router with Velocity Context behind it. The memory, the routing, the hardware fit, the mesh and the panel are ours. llama.cpp (MIT) runs the GGUF models, stable-diffusion.cpp the pictures, Piper and faster-whisper the voice - their licences travel inside every package.

Questions people actually ask

Does anything leave my machine? No. The only outbound requests are the ones you ask for: searching Hugging Face, searching the web from Chat, downloading what you chose, and checking for a newer release. No telemetry, no account.

Do I need a GPU? No. A card makes it faster; the processor build works everywhere.

Which models work? Any GGUF that llama.cpp runs, Piper voices, and diffusion models for Studio.

How can a 4B model with an 8K window answer across 32M tokens? Velocity Context, which is not RAG and not a bigger window. What we measured, and how, is in the technical report; the method itself we keep to ourselves.

Which model should I use for computer use? It was tested with Qwen3.5-4B on a 6 GB card, on Notepad and Calculator tasks. Whatever the model, it is held to the permission level you chose.

Can I turn web search off? Yes, in Chat's Tools menu. With it off, only questions that are plainly about today are looked up, and the Search button always searches.

Does the island work on Linux? Not yet. The island and computer use are Windows only in Preview 3; the rest of VLS runs on both.

Is it open source? No. VLS is free for personal use; companies need a licence - write to [email protected]. See LICENSE.

Is it finished? It is a preview. When you find a rough edge, open an issue - it is the fastest way to get it fixed.

Back to top


Tofu

If VLS is useful to you, a star is the whole ask

Star this repository


Star history of VLS



Velocity

Made by Velocity · local runtimes and long-context execution

veloresearch.com  ·  Technical report  ·  Releases  ·  Issues  ·  @velo_research  ·  [email protected]

ai
ai-agents
ai-assistant
computer-use
desktop-app
gguf
linux
llama-cpp
llm
local-llm
long-context
mcp
mcp-client
mcp-server
openai-api
privacy
rust
self-hosted
voice-assistant
windows