IntelliTab
Private AI code completion for VS Code on Apple Silicon.
IntelliTab runs a local MLX model on your Mac. It suggests code at your cursor using fill-in-the-middle prompts, nearby code, and the enclosing scope. Press Tab to accept a suggestion or Esc to dismiss it. No cloud inference account or API key is required.

Screenshot from the development build. The current output channel and commands are named IntelliTab. Performance varies with your Mac, model, and context.
Requirements
- Apple Silicon Mac (M1 or newer), macOS 14+.
- Native Apple Silicon VS Code 1.90+ desktop. Intel/Rosetta, Windows, Linux, browser VS Code, and remote workspace files are not supported.
- Native ARM64 Python 3.10+, installed from python.org or Homebrew (
brew install python). Python 3.12–3.14 is a practical choice.
- Several GB of free disk space for Python dependencies and the model; allow about 4 GB of available memory for the default 3B model. Larger or additional models need more memory.
- Internet access during setup to reach PyPI and Hugging Face. Completion works offline after setup.
End users do not need Node.js, npm, a repository clone, or an Extension Development Host.
Install and start completing
IntelliTab is available as an initial public preview for Apple Silicon. Open IntelliTab in the VS Code Marketplace.
Search IntelliTab in VS Code's Extensions view and install the extension from jabir khan (publisher ID: jabirkhan). You can also install a provided intellitab-darwin-arm64.vsix using Extensions → … → Install from VSIX….
Open a local project you trust. Run IntelliTab: Set Up Local AI from the Command Palette (Cmd+Shift+P).
Choose Install Local AI. Setup creates a private Python environment, installs MLX, and downloads mlx-community/Qwen2.5-Coder-3B-4bit. The download is several GB; progress details appear under Output → IntelliTab. Cancel and rerun setup to resume a partial download.
Wait for IntelliTab: ready in the status bar. Open a local code file and type, for example:
const add = (a, b) =>
Pause briefly, then press Tab to accept ghost text. You can also run IntelliTab: Trigger Inline Completion.
The first model load takes longer than subsequent completions. Check that Editor: Inline Suggest: Enabled is enabled in your VS Code settings; IntelliTab respects your existing setting.
Controls
Click the IntelliTab status bar item for setup, restart, pause/resume, output, and settings. These actions are also available in the Command Palette:
| Command |
Purpose |
| IntelliTab: Set Up Local AI |
Install or repair the managed runtime and default model |
| IntelliTab: Restart Backend |
Reload Python and the models |
| IntelliTab: Enable/Disable Completions |
Pause/resume; pausing unloads the backend models |
| IntelliTab: Show Output |
View setup progress and backend diagnostics |
| IntelliTab: Trigger Inline Completion |
Request a suggestion at the cursor |
Settings
Search Settings for IntelliTab or mlxCompletion. Settings apply to this machine and cannot be supplied by a repository's workspace settings. Changes restart the backend.
| Setting |
Default |
Purpose |
mlxCompletion.enabled |
true |
Enable completion |
mlxCompletion.pythonPath |
empty |
Use the managed runtime; set an executable path to use your own environment |
mlxCompletion.modelPath |
empty |
Discover local Qwen models; set an explicit directory to choose one |
mlxCompletion.debounceMs |
50 |
Delay after typing, in milliseconds |
mlxCompletion.maxTokens |
32 |
Requested token budget; completion policies apply their own bounds |
mlxCompletion.contextLinesBefore |
60 |
Maximum preceding context lines |
mlxCompletion.contextLinesAfter |
15 |
Maximum following context lines |
mlxCompletion.temperature |
0 |
Generation temperature |
mlxCompletion.quantization |
4bit |
Quantization setting for unquantized checkpoints; prequantized models retain theirs |
mlxCompletion.speculative |
true |
Use a compatible smaller draft model when one is installed |
mlxCompletion.draftModelPath |
empty |
Discover a draft model locally, or use an explicit path |
mlxCompletion.numDraftTokens |
3 |
Tokens per speculative verification step |
mlxCompletion.dualModel |
true |
Route short completions to an installed fast model when available |
mlxCompletion.fastModelPath |
empty |
Discover a fast model locally, or use an explicit path |
mlxCompletion.debugLogging |
false |
Additional local diagnostics; can include source snippets |
Automatic quality-model discovery prefers ~/.mlx-models/Qwen2.5-Coder-7B-Instruct-MLX-4bit, then Qwen2.5-Coder-3B-4bit, then Qwen2.5-Coder-3B-Instruct-MLX-4bit. Setup installs only the 3B base model. Draft/fast routing does not download additional models; it falls back to the quality model. Set modelPath explicitly if several models are installed and you want predictable memory use.
Bring your existing Python environment and model
Install python-server/requirements.txt into a dedicated virtual environment from a checkout of this repository, then set these User settings (use your real paths):
{
"mlxCompletion.pythonPath": "/absolute/path/to/venv/bin/python3",
"mlxCompletion.modelPath": "/absolute/path/to/Qwen2.5-Coder-3B-4bit"
}
Paths beginning with ~/ are supported. Explicit model paths must contain config.json, tokenizer files, and model weights. IntelliTab supports Qwen2.5-Coder MLX checkpoints; arbitrary model families are not verified. Guided setup switches Python back to the managed environment but preserves your explicit model choice.
Privacy and storage
Code context travels only to a local Python child process over stdin/stdout. The inference process uses Hugging Face/Transformers offline mode. IntelliTab adds no analytics or hosted inference service.
Setup accesses PyPI and Hugging Face to install software and download model files. The Python environment lives in VS Code's extension global storage; models live under ~/.mlx-models. Uninstalling the extension does not remove those model files. Debug logging is opt-in and may contain source code. See Privacy for details.
Troubleshooting
| Symptom |
What to do |
| Python not found / wrong architecture |
Install ARM64 Python, or set mlxCompletion.pythonPath to the correct executable. Use native VS Code, not Rosetta. |
Missing mlx or mlx_lm |
Run Set Up Local AI, or install requirements in the interpreter selected by pythonPath. |
| Setup cannot reach PyPI/Hugging Face |
Check your connection/proxy, inspect Output → IntelliTab, then rerun setup. |
| Model missing / load error |
Rerun setup to complete the default download, or correct the explicit model path. |
| Backend stopped or startup timed out |
Check Output for the Python error. Close memory-heavy apps, select the 3B model, and restart. |
| No ghost text |
Confirm status says ready, trust the workspace, enable inline suggestions, and try the trigger command. Temporarily disable other inline completion providers if they compete. |
| High memory usage / slow completion |
Set the model to 3B explicitly and disable speculative/dual routing. Longer context and larger models cost more. |
| Remote/virtual files |
Use a local workspace; remote completion is not supported in this preview. |
Report a bug with VS Code, macOS, Python and model versions. Review logs before sharing them.
Development and releases
git clone https://github.com/captain-jack-sparrow909/IntelliTab.git
cd IntelliTab
npm ci
npm run release:check
Node.js 22+ and Python 3.10+ are needed for development checks. release:check lints, compiles, runs CPU-only tests, packages an Apple Silicon VSIX, and checks its contents. Tests do not download models. Press F5 in VS Code to run the development extension.
For model benchmarks, install the Python requirements and local models, then run npm run test:bench. See Architecture and the publishing guide, including the manual installed-VSIX smoke test required before release.
License
IntelliTab is MIT licensed. Models and dependencies retain their own licenses; the default Qwen2.5-Coder 3B model's upstream terms are linked from its model card. The extension license does not relicense model weights.