Skip to content
Projects

Veloresearch/impulse has 34 GitHub stars and 4 forks. GitHot measured 0 stars in 24 hours. Last checked 2026-11-09 17:44 UTC. Last push 2026-11-03.

How these counts are measured

Impulse by Velocity: run AI models on your own computer, on Windows and Linux. Load any GGUF model and chat with web search, files, charts and voice, let it use your computer, and serve it to any app through an OpenAI-compatible API and MCP. Momentum memory up to 32M tokens. No cloud.

Measured star growth

in 24h
0
in 7 days
Collecting history
in 15 days
Collecting history
in 1 month
Collecting history

Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.

README.md

Original


Impulse by Velocity

Intelligence with longer memory.

Run any AI model on your own computer, give it a memory of up to 32 million tokens, and use it from chat, voice and every app you have.

Made by Velocity, an independent AI company.


Download for Windows: small installer, always the newest
Download for Linux: AppImage   Download for Linux: .deb package

Offline? Get the full Windows installer.


Latest release Released Downloads Latest downloads Stars Last commit Issues
Windows and Linux Graphics Momentum API License

Technical report  ·  Release notes  ·  veloresearch.com  ·  X  ·  Hugging Face


Chat in Impulse: a question about the latest Python release is searched on the web, six pages are read in about two seconds, and the answer arrives with numbered sources

A real recording on a 6 GB laptop card: the question is looked up, the pages are read, and the answer cites them.


In 30 seconds

The personality wheel in the message box: arrows and a drag turn it, each face shows how it would answer, and it closes into the button
Personalities: one spin
The context deck opening as a cascade of cards, the Tokio context of 1.4M tokens attached as a chip, and a search inside the deck
Momentum: 1.4M tokens, one click

Hovering a numbered citation in an answer, then Show sources listing the pages
Sources: every claim checked


See it Why Impulse · Momentum · Chat · Explore the app · The details
Go deeper Measured, not claimed · Computer use · Look inside the model · Studio, Plugins and Apps
Set up Install · Make it yours · Use it from the agent you already have · One address for everything · FAQ

Why Impulse

  • One app for running models locally. Download or add a GGUF model, and Impulse chooses 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 Momentum a model works across far more material 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. Impulse does that too, and adds what sits around the model: a memory 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.

Home: the loaded model and its writing speed, what Momentum keeps, graphics memory, and recent chats

Back to top

Momentum

Momentum by Velocity

Momentum is memory for local models: your knowledge, within reach. A model with an 8K-token window works across up to 32 million tokens of your documents, chats and code, on a laptop graphics card. No embeddings, no vector database, nothing leaves the machine.

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.

How Momentum works: your material of up to 32M tokens is kept as the model's own memory; for a question, the model's attention reaches the right part from its normal 8,192-token window; the answer says where it came from

Local processing Material is processed on the machine where Momentum is installed.
Works with the model's own tokenizer Sizes are counted in the loaded model's tokens, so what you see is what the model sees.
No embedding model or vector database Not RAG: no chunk size and no second service to run.
Portable .mfyc files A context is a file you own, built in seconds and independent of the model you load.
Shows its sources Every answer shows which parts of your material it used.

If you point Impulse at a cloud model, the parts of your material used for a question are sent to that provider.

The Contexts page: three contexts made from public source code; Tokio opened with its 578 documents, then a search inside it highlighting every match
Contexts: a context of 578 source files, opened and searched

Answer time stays under 0.8 s, from 1M to 32M tokens (median; the build is a one-time text pass):

context one-time build answer, median answer, p90
1M tokens 0.5 s 703 ms 890 ms
5M tokens 2.6 s 488 ms 982 ms
10M tokens 5.3 s 570 ms 1 081 ms
15M tokens 8.0 s 643 ms 1 132 ms
20M tokens 10.6 s 708 ms 1 117 ms
25M tokens 13.4 s 752 ms 1 128 ms
32M tokens 17.2 s 653 ms 1 111 ms

Measured, not claimed

One laptop: RTX 3060 Laptop, 6 GB, Qwen3.5-4B-Q4_K_M, an 8,192-token window throughout. The full method, the per-task tables and the limits are in the evaluation report (PDF).

benchmark result
NVIDIA RULER at 128K, 13 tasks, 20 samples each, NVIDIA's harness unmodified 90.0 average
BABILong QA1, 100 published samples per length 92.0% at 128K, 86.0% at 1M; 0.0% with the text removed
Answer time at 32M tokens 653 ms median

Beyond 128K, on the app's built-in ladder with nine of RULER's tasks and five samples per cell. This is a separate benchmark lane, reported on its own and never averaged with the result above:

1M 5M 10M 15M 20M 25M 32M
nine-task average 97.8 95.6 100 97.8 97.8 100 100
Line chart: nine-task average by context length. 1M 97.8, 5M 95.6, 10M 100, 15M 97.8, 20M 97.8, 25M 100, 32M 100

Line chart: median answer time by context length. 1M 703 ms, 5M 488 ms, 10M 570 ms, 15M 643 ms, 20M 708 ms, 25M 752 ms, 32M 653 ms

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.

Hovering a numbered citation in an answer, then Show sources listing the pages
Search first, with sources: every claim points back to the page it came from

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.

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 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 flowchart of how a heat pump heats a house, drawn inside the answer
Diagrams: a flowchart drawn inside the answer
Asking the time in Tokyo and getting it at once
Instant facts: the time anywhere, answered at once
The thinking-level slider in the message box, its label rolling from Instant through Max
Thinking level: Instant to Max on one slider
The Tools menu switching Calculator and Schematics off and on, the tools pill changing width
Tools: switch tools on and off; the pill follows
The Search pill in the message box toggled off and on
Web search: one tap on or off
An answer with its version switcher going from 2/2 to 1/2 and back
Answer versions: page between answers with ‹ 1/2 ›
The slash menu opening in the message box and narrowing to /pdf and then /search
/ commands: type / and a letter narrows it
A CSV file dragged onto the window: a drop target appears and the file lands as a chip
Drop a file: it joins the chat

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, thinking, first words after, total time, writing speed, tokens read and written, and how much of the window it used
Answer details: what one answer took
The message box with @ suggestions: a file, a photo, and this chat's memory
@ mentions: attach a file or answer from a memory

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

Explore the app

Real recordings of a first look around, with no model loaded.

Models: the Hugging Face tab, a search for qwen filtered to chat models, a model opened, and its builds marked by how they fit this graphics card
Models and Hugging Face: search, filter, and every build checked against your card

A small Qwen3 0.6B build downloading from its Hugging Face page
A download: a 610 MB build, picked to fit this card
A model page: the memory-per-chat slider moves and the graphics and system memory bars follow
Your models: memory per chat, and where the layers go
Settings: chat options, the memory size of a new context, and the Data page
Settings: chat style, memory size and backups
Hardware: the graphics card, memory and processor live, then the backends and the benchmark page
Hardware: the card, memory and engines, live
Connect: the API address copied, the key, and ready-made curl, Python and JavaScript requests
Connect: one address and key for every app
Apps with opencode and Hermes Agent, then Plugins and the Files preset opening
Apps and Plugins: agents in one click, MCP servers as presets
Studio: the image, video and voice tabs, the model picker and the shape controls
Studio: images, video and voice, set up in place
The command palette jumping to Appearance, the Tokio context and the Hardware page
Ctrl+K: jump to a setting, a context or a page
A new folder made in the chat list and a chat moved into it
Folders: group chats in folders
Typing winter into the chat search: the list narrows and the matching words are highlighted
Find a chat: every chat searched, matches marked

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.

Its own cursor. A 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 moving 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.
  • Choose which screen it works on. Every action is recorded in an activity log.
  • It works with the sandbox: take something from the screen, process it in Python, put the result back.

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, the four permission levels and the screen it works on
Computer use: one switch, four permission levels, and the screen it works on

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

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.

A haiku replayed token by token, with the five candidates at each step, the model's certainty and the writing speed
Replay: an answer, token by token, with what it nearly said

Weights view of Ternary Bonsai 2 9B: the 33 layers and the tensors of layer 0, drawn from the model file
Weights: every layer, brighter where the weights are larger
Shape view: 33 layers, width 4,096, 16 attention heads, 248K vocabulary, 262K trained context, 9.2B parameters
Shape: how the model is built, as its file describes it

Back to top

Studio, Plugins and Apps

Studio Images and video from local diffusion models, speech in over a hundred Piper voices, all on this machine.
Models Search Hugging Face from the panel; each build is checked against your card before it downloads.
Plugins Any MCP server (a folder, GitHub, a database) with one-click presets. Enabled plugins offer their tools in Chat.
Apps One-click connection for opencode and Hermes Agent; one address for everything else.
Mesh Every machine in your home as one: a model too big for one card is split across them.


How Impulse works: the Impulse panel and your agents and scripts reach one address (OpenAI-compatible API and MCP at 127.0.0.1:11500/v1); a router sends each request to the models (text with llama.cpp, pictures with stable-diffusion.cpp, voice with Piper and faster-whisper), to tools (web search, files, Python, calculator, MCP plugins, computer use on Windows) and to Momentum contexts of up to 32M tokens

Back to top

The details

Loading Ternary Bonsai 2 9B from its card: the load sheet shows memory per chat and that every layer fits the graphics card
Load a model: the sheet says what fits your card before it starts

Studio without an image model: Find a model opens the Hugging Face image models that fit this computer
Find a model: from an empty Studio to the models that run here
The guided tour stepping from the model picker to the message box and web search
Guided tour: it points at each place the first time

Back to top

Make it yours

Switching the theme from Dark to Light, Cream, Matrix and back
Themes: Dark, Light, Cream and Matrix, applied at once

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

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

Your account. A name for the greeting, and an optional password required before the panel opens. Apps keep working with the API key; the password only protects the panel.

Backups and restore. Everything Impulse keeps (chats, preferences, service settings, contexts) in one file you can store anywhere, on a schedule if you like, and restore on a new machine.

Home in edit mode: a widget dragged to a new place and another resized
Arranging Home: drag, resize, add
Settings, Appearance, Sidebar and Home: every page in its group, in order, each one can be hidden
Sidebar: your pages, your order
Settings, Appearance: seven themes, ten accent colours and three fonts
Appearance: themes, accents and fonts
Settings, Voice and audio: microphone, input level and volume, noise suppression, echo cancellation and the speaker
Voice & audio: microphone and speaker, tested in place
Impulse on a phone: the floating navigation bar moving between Home, Chat, Models and Settings
On a phone: the same panel, with a floating bar
Settings, Data: back up chats, panel preferences, service settings and the list of models
Data: back up and restore

A window or a browser. Impulse 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

Install

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

Windows

Download the installer (small, always the newest; the full offline installer is there too), or in PowerShell:

irm https://github.com/Veloresearch/impulse/releases/latest/download/install.ps1 | iex

The preview is not code-signed yet. If SmartScreen stops it, choose More info → Run anyway.

Linux

AppImage · .deb · x64 build · Vulkan build, or:

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

Builds are packaged and tested less than Windows. Computer use is Windows only for now.

The installer checks the machine before it downloads anything and picks the build that suits it: CUDA where there is an NVIDIA card, Vulkan on Linux where there is any card at all, and the processor build otherwise. It opens the panel when it is done. Updates install from Settings. Removing Impulse means deleting one folder; your models and memories are stored separately.

Graphics card Optional. A 6 GB card runs a 4B model with every layer on the card; the processor build works everywhere.
Every build On the releases page, with the notes for the latest.

The Impulse mark turning into place as the app starts, then the words Impulse by Velocity
Starting Impulse: the mark, then the panel

The first start shows you around. Pick a language and a name, choose how much of the app you want to see, and Impulse tells you what this computer can run before you download anything.

Welcome to Impulse: chat with a model, give it your documents, use it from your apps
Welcome: what it does
Your computer: the graphics card, memory and processor Impulse found, and what they are good for
Your computer: read before any download
Three steps to a first answer: get a model (done), load it, ask it something
Three steps: to a first answer

Back to top

Use it from the agent you already have

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

what Connect does
opencode adds Impulse as a regular provider in ~/.config/opencode/opencode.json and makes it the model opencode starts with
Hermes Agent points ~/.hermes/config.yaml at Impulse as its custom endpoint, keeping your previous model to restore

Not an MCP plug-in and not a bridge: Impulse 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 scripts):

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 any setup, and a coding agent gets one per project: it says which folder it is working in, and Impulse 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 no memory, 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

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

# images
curl http://127.0.0.1:11500/v1/images/generations -H "content-type: application/json" \
  -d '{"prompt":"a watercolor lighthouse at dawn","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

Built on

Impulse is a router with Momentum behind it. The memory, the routing, the hardware fit, the mesh and the panel are built by Velocity. llama.cpp (MIT) runs the GGUF models, stable-diffusion.cpp the pictures, and Piper and faster-whisper the voice. Their licences ship inside every package.

Every picture and GIF on this page is a recording of the real app with real model output; the contexts are public open-source code.

FAQ

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 graphics 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?

The model keeps its small, fast window. Momentum keeps your material as the model's own memory, and for each question the model's attention reaches the part it needs. It is not a bigger window. What we measured, and how, is in the evaluation report.

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 computer use work on Linux?

Not yet. Computer use is Windows only for now; the rest of Impulse runs on both.

Is it open source?

No. Impulse 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.


If Impulse is useful to you, a star helps others find it

Star this repository


Star history of Impulse



Velocity

Impulse and Momentum are made by Velocity, an independent AI company.

veloresearch.com  ·  Impulse  ·  Momentum  ·  Evaluation report  ·  Releases  ·  Issues  ·  @velo_research  ·  [email protected]

Explore related projects