ZNDET’s key takeaways

  • If you don’t find the app you need, build it.
  • You can do this for free using open-source tools.
  • This is done with Ollama and VS Code.

Over the weekend, I decided I needed a specific writing tool… that didn’t exist. Everything I’d tried was either too cumbersome, lacked the features I needed, or was too expensive.

Also: How I made a paid Mac app in 11 days with Claude – without writing any code

It was then I heard about a fellow author (Hugh Howey) who started working on his own writing app (NEO) about ten years ago. At that time, he was a software developer, and he felt the same way that I did: most word processors were too bloated for the needs of an author.

For me, when writing a first draft, I only need certain features (spell/grammar check, dashboard, formatting, export/import, light/dark modes, etc.) and nothing else. Scrivener was too expensive, and the traditional word processors were too much, or tied to larger subscription models.

I tried Howey’s NEO and liked it, but I wanted to craft something specific for myself. The problem is, although I’m “developer-adjacent”, I’m not a full-on developer. I can work with Python, CSS, HTML, and a tiny bit of JavaScript, and I knew that wouldn’t cut it for my use case.

Also: Is AI conscious? Why experts are worried

So, I turned to locally-installed AI. I knew exactly how to describe the app I wanted, so I thought I’d give it a try and see if it could succeed at what I couldn’t. The catch was that I didn’t want to have to pay for it. I am a writer, after all, and we’re not exactly known to be rolling in the dough.

Good thing I know how to work with locally installed AI, which is how I pulled this off. Let me show you how I did it. 

The requirements

You can’t simply slap the necessary AI apps on any old system and expect it to be able to churn out a fully-developed app. You need some pretty beefy hardware. Here’s what I would say is the absolute minimum for the project:

  • RAM: 32 GB (I have 64 on the machine I use).
  • GPU: Nvidia is best.
  • CPU: At least a 64-bit CPU with AVX2 instruction set support
  • Local AI: Ollama 
  • Models: Chat – Llama 3.1 8B, Autocomplete – Qwen2.5-Coder, Edit – Llama 3.1 8B, Apply – Llama 3.1 8B, Embed – Transformer.js, Agent – gemma4:latest.
  • IDE: VS Code

Installing Ollama

I install Ollama on a server within my LAN. If you don’t have a spare machine for this, you can install it on the same machine that’ll run VS Code. Just make sure whatever machine you are using meets the requirements. 

Also: After the vibe-coding rush comes the debugging hangover

If you’re on Linux or MacOS, the installation of Ollama is a single command, which is:

curl -fsSL https://ollama.com/install.sh | sh

If you’re on Windows, that command would be:

irm https://ollama.com/install.ps1 | iex

Downloading the necessary models

Next, you need to pull the necessary models. Here are the commands for each:

ollama pull llama3.1:8B
ollama pull qwen2.5-coder:1.5b
ollama pull gemma4

Configure Ollama

You’ll now need to configure Ollama to accept connections from your LAN. Out of the box, it only accepts queries from your local machine. I’ll demonstrate how this is done on Linux.

First, you have to open the proper config file with the command:

sudo nano /etc/systemd/system/ollama.service

Under the [service] section, add the following:

Environment="OLLAMA_HOST=0.0.0.0"

Save and close the file.

Reload the systemctl daemon with the command:

sudo systemctl daemon-reload

Restart Ollama with the command:

sudo systemctl restart ollama

Ollama is now accepting queries from your LAN.

Install and configure VS Code

It’s time to install VS Code, which is the IDE that I used to build my app (Quillmarker). Installing VS Code on Linux is done via the command line. First, download the .deb file (for Ubuntu-based distributions) or the .rpm file (Fedora-based distributions). Once you’ve downloaded the file, install it with one of the following commands:

Ubuntu-based: sudo dpkg -i code*.deb
Fedora-based: sudo rpm -i code*.rpm

If you use MacOS or Windows, download the installer file for your respective OS, double-click the file, and walk through the installation wizard.

Also: How I feed my files to a local AI for better responses

With VS Code installed, it has to be configured to use the locally installed AI. Before you can do that, you have to install the Continue extension in VS Code. To do that, click the Extensions icon in the left sidebar. In the search bar, type Continue. When the entry appears, click Install.

VS CodeScreenshot by Jack Wallen/ZDNET

Once Continue has been added, it has to be configured. To open the configuration editor, you’ll find a new icon in the sidebar; click that and then click Models.

VS CodeScreenshot by Jack Wallen/ZDNET

This is where it gets slightly tricky. In the list of models, you can select what you need from each drop-down. After that, click the gear icon for the Chat model, which opens the config.yaml file. In that file, you’ll see the configuration for chat, edit, apply, as well as autocomplete and embed. What you need to do is change the line:

apiBase: "http://127.0.0.1:11434"

to:

apiBase:"http://IP_OF_OLLAMA:11434"

Where IP_OF_OLLAMA is the IP address of the machine hosting Ollama.

Also: How to run DeepSeek AI locally to protect your privacy

You then need to add that line for the other two entries (autocomplete and embed) in the same position within each block, so it looks like this:

name: Main Config
version: 1.0.0
schema: v1
models:
 - name: Llama 3.1 8B
   provider: ollama
   model: llama3.1:8b
   apiBase: "http://192.168.1.186:11434"
   roles:
     - chat
     - edit
     - apply
 - name: Qwen2.5-Coder 1.5B
   provider: ollama
   model: qwen2.5-coder:1.5b-base
   apiBase: "http://192.168.1.186:11434"
   roles:
     - autocomplete
 - name: Nomic Embed
   provider: ollama
   model: nomic-embed-text:latest
   apiBase: "http://192.168.1.186:11434"
   roles:
     - embed

Make sure to change the IP address above to that of the machine on your LAN hosting Ollama.

Click the X on the right side of the config.yaml tab and, when prompted, click Save.

You’re almost done.

Now, it’s time to customize the agent. Click the drop-down to the right of Agent near the bottom-right corner of VS Code. Click the gear icon in the drop-down, and you should see the list of available models (which should include gemma4). In the far-right column associated with Ollama, click the gear icon and select Open in Language Models (JSON).

VS CodeScreenshot by Jack Wallen/ZDNET

This will open a new tab in the VS Code viewing window for the chat.languageModels.json file.

Make sure the url line reads:

"url": "http://IP_OF_OLLAMA:11434"

Where IP_OF_OLLAMA is the IP address for your Ollama server.

Click the X on the right edge of this tab and click Save when prompted.

Select gemma4 from the agent drop-down, and you are now ready to build your app.

Building your app

If you’ve used AI before, this should be familiar. In the Describe what to build window, type out the description of the app you want VS Code to build; make sure to be as specific as possible, including all of the features you want. For example, when I needed Quillmarker to include formatting, I added “formatting options similar to that of LibreOffice.” If you’re not specific, or you leave out features, you’ll wind up having to iterate the app again to add them.

Also: Sanctum’s local AI app is just what I needed to keep my data private

This will take some time, and you’ll have to give VS Code permission to do certain things (such as run commands) as it builds. You can walk away and do other things, but when you come back, it might ask you to approve a permission. Don’t worry, VS Code will wait for you.

The initial build took roughly two hours. After that, I would have to iterate it again because I might have forgotten a feature or wanted something refined. All in all, I believe it took about seven iterations to complete. When it was finished, I found the Linux AppImage (that’s what I asked it to create, so it could be used on any Linux distribution) in ~/quillmarker/releases. After installing, I started writing.

It’s a lengthy process, but in the end, it was worth it. I’m using Quillmarker for my next novel, and I’ve found it to be a joy to write with.