What you ask stays on your computer, and you can use it from your phone anywhere without opening a port to the internet.

This is a free kit for running an open AI model on your own computer without sending your data to any company. It is for people who handle sensitive information (medical tests, contracts, finances, logs) or need a model that does not refuse legitimate tasks. One script checks your machine and recommends the best standard and uncensored models that fit. Another measures speed and checks that the port is closed. To use it from anywhere, the kit connects your devices through a private network (Tailscale). You need Python 3.10+, Ollama, and, to use it away from home, a free Tailscale account.
The three levels explained, with the numbers measured in our test (video in Portuguese).
In simple terms: what it is, what it does, and what it’s like to use every day.
When you use ChatGPT or Claude, what you write travels over the internet to a company’s computer, where the answer is generated. Did you paste in a test result, a contract, or your company’s spreadsheet? That text has left your hands.
There are free, open AI models you can download as a program. Ollama is the program that runs them. Once downloaded, the AI can answer even without internet, and nothing you ask leaves your computer.
It’s a version of the same AI that doesn’t refuse to answer. For example, you want to understand an attack on your own website, and the usual AI says, “I can’t help with that.” Since it answers almost anything, you’re responsible for how you use it (see Security).
Tailscale creates a private tunnel between your phone and your home computer. You ask a question on your phone while you’re out, and your home computer answers. No one outside can see this tunnel.
You can rent a computer in a data center that stays on 24 hours a day: this is called a VPS. It doesn’t have a graphics card, so it runs a smaller AI, but still fast enough for reading (about 13 word pieces per second in our measurements). The Tailscale tunnel works the same way: your phone connects to the VPS, and its port stays closed to the rest of the internet.
You do not need a paid “agent operating system.” It is three open tools and a few scripts that prove everything works.
An uncensored model on another company’s server. Quick to get started, but your prompt leaves your machine. It is in the companion kit Uncensored AI, the right way.
Ollama (a free program that runs models on your computer) with the model that escolhe_modelo.py recommends for your memory. Nothing leaves your machine.
Tailscale creates a private network between your devices: your phone uses your home GPU (Path A) or a small model on a VPS (Path B).
Can the data NOT leave your machine? Does the standard model refuse what you need to do? In the script, --dado-sensivel sim means “it cannot leave.” Choose “uncensored” only when the standard model refuses a legitimate task.
python3 kit/scripts/quadrante.py --dado-sensivel sim --recusa nao LOCAL NORMAL quando: Exames, contratos, financas, logs da empresa: nada sai do computador. como: Nivel 2 deste kit: escolhe_modelo.py -> modelo normal.
Home machine: NVIDIA DGX Spark (128 GB unified memory), not a typical laptop. The selector would recommend the 122B; we measured the 27B because it fits machines with 24 to 99 GB, the most common range. For a laptop without a GPU, the closest reference is the VPS gray bars. Same question, response of up to 160 tokens (word pieces), measured with checa_local.py. Comfortable reading is around 10 tokens/s. The files for each measurement are in kit/verificacao/.
The home GPU responded at 17.8 tokens/s on the machine itself and 17.6 over the Tailscale network, on the port and with the command taught in this guide.
Loading the model took 16 to 47 seconds on the VPS. Then it stays in memory for 5 minutes and responds directly.
The uncensored and standard models of the same size had similar speeds.
Everything is free, except for the Path B VPS if you choose that option.
The scripts use only the standard library. Mac and Linux already include them; on Windows, install them from python.org and git-scm.com. No git? Download the kit ZIP.
python3 --version
git --versionRuns the models. On Linux, use the command below; on Mac and Windows, use the installer from ollama.com/download.
curl -fsSL https://ollama.com/install.sh | shA private network between your devices, free for personal use. Install it at home and on your phone, using the same account.
curl -fsSL https://tailscale.com/install.sh | shThe “window” programs use to talk to Ollama on the computer.
Only the computer itself can see it. This is the safe state.
A private network only for your devices. “tailnet only” means only they can see it.
A Tailscale option that opens access to the entire internet. Do not use it with Ollama.
A computer rented in a data center and running 24/7. vCPU = one of its processor cores.
Using a model that runs on another company's server and paying for usage.
Macs (M chips) and some GPU machines: the same memory is shared by the processor and GPU.
A setting that opens Ollama to any network. The kit flags it as “open.”
“Abliterated” = an uncensored version of an open model. huihui_ai publishes these versions in the Ollama library.
Billions of parameters: the model size. Larger models answer better and need more memory.
A large model that uses only 3B per word (“MoE”): it takes up the memory of a large model and responds almost as fast as a small one.
A family of open models from Alibaba. The kit uses versions 3.5, 3.6, and 3.8.
Ubuntu = the VPS's Linux system. ssh = access its terminal from yours (the IP is in the provider's dashboard). root = the VPS administrator.
GPU = graphics card. sudo = run a command as an administrator on Linux/Mac (it asks for your password).
python instead of python3. The scripts work, but checa_local.py's port check is for Linux and Mac only. Paths A and B use Linux commands: on Windows, run them on a Linux machine (or the VPS) and use Windows only as the accessing device.Run the commands from the project folder. Would you rather have an assistant do it for you? Each step has a ready-to-use prompt in kit/prompts/.
The tests do not use the internet or Ollama: they only confirm that the scripts are correct. Without git, download the ZIP (prerequisites) and open a terminal inside the folder.
git clone https://github.com/inematds/ia-privada-3-niveis.git cd ia-privada-3-niveis python3 -m unittest discover -s kit/testes -v # ends with OK
The script checks memory (GPU, Mac unified memory, or RAM) and disk space. It shows two models and the command to download them, but does not download anything by itself.
The kit scripts print their messages in Portuguese; the meaning of each line is explained on this page.
python3 kit/scripts/escolhe_modelo.py Memoria: 16.0 GB (RAM / memoria unificada); util para modelo: 14.0 GB Disco livre: 80.0 GB Melhor local (normal): Qwen 3.5 9B -> ollama pull qwen3.5:9b (6.6 GB) uso: bom equilibrio para 16 GB Melhor local (sem censura): Qwen 3.5 9B -> ollama pull huihui_ai/qwen3.5-abliterated:9b (6.6 GB)
| Memory | Standard | Uncensored | Download |
|---|---|---|---|
| 4–5 GB (test only) | qwen3.5:0.8b / qwen3.5:2b-q4_K_M | huihui_ai/qwen3.5-abliterated:0.8B / :2B | 1–1.9 GB |
| 6–9 GB | qwen3.5:4b | huihui_ai/qwen3.5-abliterated:4B | 3.3 GB |
| 10–23 GB | qwen3.5:9b | huihui_ai/qwen3.5-abliterated:9b | 6.6 GB |
| 24–99 GB | qwen3.8:27b | huihui_ai/Qwen3.8-abliterated:27b | 18 GB |
| 31 GB or more (fast alternative) | qwen3.6:35b-a3b | huihui_ai/Qwen3.6-abliterated:35b-a3b | 23–24 GB |
| 100 GB or more | qwen3.5:122b | huihui_ai/qwen3.5-abliterated:122B | 81 GB |
checa_local.py asks a question, measures speed, checks the port, and saves a new file named after the model in kit/verificacao/, alongside this guide's measurements. The port line should say loopback (it does not appear on Windows; that is normal). If it says “Ollama did not respond” (“o Ollama não respondeu”), open the Ollama app or run ollama serve.
ollama pull huihui_ai/qwen3.5-abliterated:9b python3 kit/scripts/checa_local.py --modelo huihui_ai/qwen3.5-abliterated:9b # Porta 11434 nesta maquina: loopback ['127.0.0.1'] # Velocidade: ... tokens/s
To exit, type /bye. In the terminal, paste the document text into your prompt. Prefer a window? The Ollama app (Mac and Windows) chats with downloaded models and lets you drag in files. Standard and uncensored models can be downloaded side by side: switch by calling a different model name.
ollama run huihui_ai/qwen3.5-abliterated:9b
PDF document: convert it to text and send it along with your request. pdftotext is included in the poppler-utils package (Linux) or brew install poppler (Mac). On Windows, the easiest option is the Ollama app: choose a model and drag the file into the chat; everything runs on your computer. A very long document (dozens of pages) may exceed the model's text limit: split it into parts.
pdftotext contrato.pdf contrato.txt
cat contrato.txt | ollama run huihui_ai/qwen3.5-abliterated:9b "Summarize in 2 lines: amount, due date and late fee."
First sign in to your Tailscale account on this machine: on Linux, sudo tailscale up shows a link to open in your browser; on Mac and Windows, the app asks you to sign in when it opens. Then make Ollama available only on your private network. The status should say “tailnet only.” If you see “Access denied,” run sudo tailscale set --operator=$USER once.
sudo tailscale up tailscale serve --bg --tcp 11434 tcp://127.0.0.1:11434 tailscale serve status # must show "tailnet only" tailscale ip -4 # the 100.x.y.z address to use on your phone
On your phone, install the Tailscale app and sign in to the same account. Then install an app that works with Ollama, such as Ollama App (Android) or Enchanted (iPhone), and enter http://100.x.y.z:11434 as the server address. On your laptop, the same address works with checa_local.py:
python3 kit/scripts/checa_local.py --base-url http://100.x.y.z:11434 --modelo huihui_ai/Qwen3.8-abliterated:27b --nome casa-pelo-tailscale
To turn it off: tailscale serve --tcp 11434 off.
For anyone who does not leave a computer on. A typical VPS has no GPU: up to 9B, at the speed shown in the chart above. Rent an Ubuntu VPS with at least 8 GB and open its terminal (using ssh root@<IP> or the provider's web terminal). As root, run:
curl -fsSL https://ollama.com/install.sh | sh ss -ltn | grep 11434 # only 127.0.0.1:11434 curl -fsSL https://tailscale.com/install.sh | sh tailscale up # open the link it prints in your browser and sign in tailscale serve --bg --tcp 11434 tcp://127.0.0.1:11434 ollama pull huihui_ai/qwen3.5-abliterated:4B git clone https://github.com/inematds/ia-privada-3-niveis.git cd ia-privada-3-niveis python3 kit/scripts/checa_local.py --so-porta
Proof that it is closed: from your computer, http://<VPS public IP>:11434 should fail, and http://<VPS Tailscale IP>:11434 should respond. With tailscale serve running, --so-porta on the VPS shows tailscale; when it is off, it shows loopback. Both are safe; open never is. If you do not log in as root, add sudo before tailscale up and tailscale serve.
The free Jarvis Local kit already supports fully local voice chat. Add the sem_censura and casa entries from kit/config/jarvis-cerebros.exemplo.json to its list of brains and say “switch to the uncensored brain.” Voice needs a GPU: on the Path B VPS, text only.
| Ready-to-use prompt | What the assistant does |
|---|---|
| 01 · Install and choose (in Portuguese) | Installs Ollama with your OK, runs the selector, downloads your choice, and measures it. |
| 02 · Home through Tailscale (in Portuguese) | Path A, checking for “tailnet only” and never using funnel. |
| 03 · Always-on VPS (in Portuguese) | Path B, with proof that the public port is closed. |
An abliterated model is an open model with its reflex to refuse removed. It answers almost anything, so the rules below act as guardrails.
OLLAMA_HOST=0.0.0.0, an open router port, or tailscale funnel. checa_local.py --so-porta flags open and exits with an error.