Local AI development on macOS

Local-first AIRunning models with OllamaKoi without a networkWhy?

Write code and use AI assistance without sending source code to a remote service.

Koi works with local models through Ollama and does not require an internet connection for normal editing. Once the editor and models are installed, the development environment can run entirely on the local machine.

Local-first AI

Most AI coding tools send context from the editor to a model running somewhere else.

Local inference changes that path. Koi sends the request to Ollama running on the same Mac, and Ollama runs the model locally.

Koi → Ollama → Local model

Source code used for completion or inline chat does not need to leave the machine. This is useful for anyone who prefers local AI, as well as isolated networks and environments where source code cannot be sent to external services.

Running models with Ollama

Koi uses ⁠Ollama for local AI models. Install Ollama and choose a model from the Ollama model library.

For example:

ollama pull qwen2.5-coder:1.5b

See the models installed on the machine with:

ollama list

Ollama exposes locally running models through a local API. You can check that the server is available with:

curl http://localhost:11434/api/tags

Once a model is installed locally, inference does not require a remote model provider.

Koi without a network

Koi does not require an account or an internet connection for normal editing.

Files, configuration, and editor state remain local. When using a local model, AI requests are sent directly to Ollama on the same machine.

Normal editing, search, navigation, code completion, and inline chat can therefore continue to work without an internet connection.

Configuration

Local models are configured by name in the Koi configuration file:

[models]

code_completion         qwen2.5-coder:1.5b
inline_chat             qwen3:8b

The names should match models available through ollama list.

Code completion generally works well with smaller coding models because completion is sensitive to latency. Inline chat can use a larger model when additional capability is more important than response time.

Both communicate with Ollama locally.

Fully isolated machines

A strictly air-gapped machine cannot download Koi, Ollama, or models directly from the internet.

The required software and models need to be prepared elsewhere and transferred to the isolated machine using whatever process is appropriate for the environment.

Once everything is installed, the development workflow itself does not require internet access. For less restrictive environments, setup can simply be completed normally before disconnecting the machine from the network.

Verifying the setup

A local setup is straightforward to test. Disconnect the Mac from the network and check that Ollama still sees the installed models:

ollama list

Check that its local API is available:

curl http://localhost:11434/api/tags

Then use Koi normally and verify that local code completion and inline chat continue to work. For stricter environments, outbound network traffic can also be monitored or blocked independently.

Why?

Running the model locally is most useful when the editor can remain local too.

Koi talks directly to Ollama without requiring a Koi account or hosted AI service in between. With a local model configured, the editor, source code, model, and inference can all remain on the same Mac.

Related: