Installation Guide · Apple silicon · macOS Tahoe

VectifyAI/PageIndex Installation Guide

Vectorless reasoning-based RAG that builds hierarchical document trees and lets LLMs reason over them instead of vector similarity/chunking.

Beginner-friendlyCopy-paste examplesFirst-party sources checked
Works with conditions

This repository runs multiple processes or services. Apple silicon is generally suitable when upstream dependencies publish arm64 builds, but Docker images, ports, memory, and third-party credentials must all be checked before first use.

What this guide will do

This walkthrough assumes you are using an Apple-silicon Mac—an M-series processor—running macOS Tahoe. It treats Terminal as unfamiliar territory and separates commands that belong in Terminal from slash commands that belong inside an AI coding application.

Installation styleNone documented
RuntimePython
Upstream OS notesNone documented
Step 1

Open Terminal and confirm your Mac

Open Spotlight with ⌘ + Space, type Terminal, and press Return. Paste the block below and press Return. arm64 confirms that the Terminal session is using Apple silicon rather than Intel translation.

Paste in Terminal
uname -m
sw_vers -productName
sw_vers -productVersion
How to read command blocks: paste one block at a time. Lines beginning with # are explanations that Terminal ignores. If macOS asks for your password, type it even though no characters appear, then press Return.
Step 2

Install the safe Mac foundation

Install Apple's command-line tools

These provide Git, compilers, and signing utilities used by many repositories. If they are already installed, the first command prints a path and you can continue. If an installer window opens, finish it and then run this block a second time.

Paste in Terminal
xcode-select -p || xcode-select --install
git --version

Install Homebrew for native arm64 packages

Homebrew is the Mac package manager used throughout this guide. On Apple silicon it normally lives under /opt/homebrew. If brew --version already works, skip the installer line.

Paste in Terminal
brew --version || /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
grep -qxF 'eval "$(/opt/homebrew/bin/brew shellenv)"' "$HOME/.zprofile" 2>/dev/null || echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> "$HOME/.zprofile"
eval "$(/opt/homebrew/bin/brew shellenv)"
brew --version

Install this repository's runtimes

Only install the runtimes used by the recommended path. A runtime is the underlying engine—such as Node.js or Python—that actually executes the repository's code.

Install and verify a required runtime
brew install python
python3 --version
Step 3

Install VectifyAI/PageIndex

The following route is taken from the upstream repository documentation and adapted for a Tahoe Mac. Run the blocks in order. If a block starts with a slash, paste it inside the named coding agent rather than into Terminal.

Paste in Terminal
git clone https://github.com/VectifyAI/PageIndex.git
cd PageIndex
python3 -m venv .venv
source .venv/bin/activate
pip install --upgrade -r requirements.txt
Pause for installers and permissions. Read any prompt before accepting it. Do not grant Full Disk Access, Accessibility access, browser cookies, GitHub scopes, or cloud credentials unless the feature you intend to use genuinely needs them.
Step 4

Configure accounts, keys, and local settings

Credentials

LLM key for LLM-assisted modes

When a key is required, put it in the repository's documented .env file or your shell environment. Never paste a real secret into a public issue, screenshot, chat transcript, or committed file.

External services

optional PageIndex cloud, LiteLLM provider

Start with the least-privileged account and smallest scope. Confirm billing, retention, and data-sharing settings before sending real project data.

Optional secret-loading pattern
# Example for macOS's default zsh—replace the variable name with the exact one documented upstream.
read -s "YOUR_API_KEY?Paste the key, then press Return: "
echo
export YOUR_API_KEY
echo "Key loaded for this Terminal session."
Step 5

Verify the installation before doing real work

Verification should be harmless: it checks versions, imports, or status without modifying an important project. A successful result is a version number, help page, healthy status, or explicit “OK” message.

Paste in Terminal
python -c "import dotenv; print('Python environment ready')"
  • Confirm the command resolves from /opt/homebrew, your home folder, or the expected virtual environment—not an unexpected Intel path.
  • Open a new Terminal window and repeat the version check to prove the PATH change is persistent.
  • If the tool uses an agent host, restart that host and confirm the plugin, skill, or MCP server appears.
Step 6

Complete a small first run

Use disposable sample data or a test repository first. The goal is to prove that the whole path works before you point the tool at private code, production systems, paid APIs, or irreplaceable files.

First-run example
cp .env.example .env 2>/dev/null || touch .env
# Add OPENAI_API_KEY to .env, then:
python run_pageindex.py --pdf_path /absolute/path/to/document.pdf

Compare the result with the repository's documented output. If the command opens a local web page, keep the Terminal process running while you use that page; pressing Control + C stops the process.

Troubleshooting on Apple silicon and Tahoe

Command not found

Reload your shell and confirm Homebrew's native path.

Diagnose your PATH
source "$HOME/.zprofile"
echo "$PATH"
which brew
which node 2>/dev/null || true
which python3 2>/dev/null || true
Intel and arm64 tools are mixed

arch should print arm64. Native Homebrew should normally be /opt/homebrew/bin/brew. Reinstall the affected dependency with native Homebrew instead of forcing Rosetta.

Check architectures
arch
which brew
file "$(which brew)"
file "$(which node)" 2>/dev/null || true
macOS blocks an app or binary

Download only from the repository's official Releases page. In System Settings → Privacy & Security, inspect the blocked-item notice and verify the developer/source before choosing Open Anyway. Do not disable Gatekeeper globally.

Python package installs into the wrong place

Activate the project's virtual environment first, then use python -m pip. The shell prompt normally gains a (.venv) prefix.

Check the active Python environment
source .venv/bin/activate
python --version
python -m pip --version
Docker services do not start

Open Docker Desktop, wait for “Engine running,” confirm enough disk and memory are available, then retry. Apple silicon requires images with an arm64 variant; an amd64-only image may be slow under emulation or may fail.

Check Docker Desktop
open -a Docker
docker version
docker info | sed -n '1,24p'

Updates, backups, and removal

  1. Back up project files, agent configuration, and any .env file before upgrading.
  2. Read the upstream release notes for breaking changes and new minimum versions.
  3. For a cloned source tree, run git status first; commit or copy your changes before git pull --ff-only.
  4. For package-manager installs, use that same package manager to update. For plugins, update inside the host application and restart it.
  5. For removal, use the upstream uninstall command. Keep configuration until you have confirmed you no longer need its data.
Inspect before updating
# Safe update check for a cloned repository
git status
git fetch --tags
git log --oneline --decorate -5

Sources and scope

This guide was compiled from the repository profile and first-party files fetched on August 18, 2026. Repository commands can change; re-check the upstream README before a security-sensitive or production installation.