Can I run AI locally? Best models for your GPU
Detect your GPU or Mac and see which open LLMs, coding, image and video models you can run locally. VRAM requirements, speed estimates and grades.

CanIRun.ai
The best AI models for your machine — recommended in seconds.
Your browser detects your CPU, RAM and GPU automatically, then we recommend the
top open models to run locally for each use case: coding, chat, reasoning and vision.
No installs, no benchmarks, no guesswork.
Why
Cloud AI APIs are expensive, rate-limited, and send your data to third parties. Running models locally gives you privacy, speed, and zero cost per token — but only if your hardware is up to the job.
CanIRun.ai answers that question instantly. Open the site, let it detect your hardware, and get a curated set of best-pick recommendations grouped by use case (general, coding, reasoning, vision and lightweight) — the top open models that actually run well on your device. Prefer to explore? Switch to Browse all for the full compatibility report across 55+ open-weight models with grades from S to F.
How It Works
Browser APIs → Hardware Detection → Per-Use-Case Ranking → Best-Pick Recommendations
- Hardware detection runs entirely client-side using WebGL, WebGPU,
navigator.deviceMemoryand a lightweight CPU micro-benchmark. - Each model's VRAM requirements are calculated across 7 quantization levels (Q2_K → F16) from parameter count.
- A scoring algorithm combines run status, estimated tokens/second, memory headroom and model size into a letter grade (S–F).
- Results are displayed instantly — nothing is sent to any server.
Supported hardware
| Platform | Detection method |
|---|---|
| NVIDIA RTX 30xx / 40xx / 50xx, A100, H100, B200, GB300/GB300-WS | WebGL renderer string + GPU database |
| AMD RX 6xxx / 7xxx / 9xxx | WebGL renderer string + GPU database |
| Intel Arc A-series | WebGL renderer string + GPU database |
| Apple Silicon M1–M4 (Pro, Max, Ultra) | WebGL + unified memory lookup |
| Mobile (iOS / Android) | Screen resolution, benchmark, Adreno/Mali/Immortalis DB |
Features
- Best-pick recommendations — the top open models for your device, grouped by use case (general, coding, reasoning, vision, lightweight), quality-ranked but gated by what actually runs well
- Zero-install hardware detection — CPU cores, RAM, GPU model, VRAM and memory bandwidth identified from the browser
- 55+ curated open models — from Qwen 3 0.6B up to GLM-5.2 753B and Kimi K2.6 1T, pruned to the ones worth running (no stale duplicates)
- 7 quantization levels per model — Q2_K, Q3_K_M, Q4_K_M, Q5_K_M, Q6_K, Q8_0, F16 with computed VRAM sizes
- S–F grading system — instant letter grade based on your hardware vs. model requirements
- Tokens/second estimates — approximate inference speed from memory bandwidth data
- Filters — by use case (chat, code, reasoning, vision), provider, architecture (dense / MoE), features (tool use, thinking)
- Search & keyboard shortcuts —
/to search,j/kto navigate,Enterto open,vto switch view - Three view modes — compact grid, detailed grid, and list
- Tier list — shareable S–F tier list you can export as an image
- Model detail pages — per-quant compatibility table, one-click Ollama / LM Studio / llama.cpp install commands
- OG images — dynamically generated social preview images for every model
- SEO — Schema.org structured data, sitemap, semantic HTML
- View Transitions — smooth page animations via Astro Client Router
Model Catalog
Models from Meta, Google, Alibaba, DeepSeek, Mistral AI, Microsoft, NVIDIA, Liquid AI, Z.ai, Moonshot AI, OpenAI and the community:
| Family | Models |
|---|---|
| Llama | 3.1 8B, 3.2 1B/3B, 3.3 70B, 4 Scout/Maverick |
| Qwen | 2.5 Coder 1.5B/7B, 3 0.6B–235B, 3 Coder 30B/480B, 3-VL 4B/8B/30B-A3B, 3.5 0.8B–397B, 3.6 27B/35B-A3B |
| Gemma | 3 1B/4B/12B/27B, 4 E2B/E4B/26B-A4B/31B |
| DeepSeek | R1 1.5B–32B/671B, V3.2, V4 Flash |
| Mistral | Ministral 8B, Nemo 12B, Small 3.1 24B, Devstral Small 2 |
| GLM | 4 9B, 4.5 Air, 4.6, 5.2 |
| Others | Phi-4, Nemotron, OLMo 2, SmolLM3, LFM2, Kimi K2.6, GPT-OSS |
API
The same compatibility engine that powers the site is exposed as a small JSON API,
so you can integrate CanIRun.ai into dashboards, PC configurators, CLI tools or
custom assistants. All endpoints are CORS-enabled and return application/json.
| Method | Endpoint | Description |
|---|---|---|
GET |
/api/models |
List the model catalog. Optional ?provider= and ?useCase= filters. |
GET |
/api/models/:id |
Full metadata for one model (accepts fuzzy ids, e.g. llama-3.1-8b). |
POST |
/api/compatibility |
Check one hardware profile against one model. |
POST |
/api/recommend |
Rank the best compatible models for a hardware profile. |
Hardware profile — all POST endpoints accept a hardware object. Provide a GPU
name and we enrich VRAM/bandwidth from the internal database, or pass explicit values:
{
"hardware": {
"cpu": { "name": "AMD Ryzen 7 5800X", "cores": 8, "threads": 16 },
"ramGb": 32,
"gpu": { "name": "NVIDIA RTX 3060", "vramGb": 12, "memoryBandwidthGbps": 360 }
}
}
Apple Silicon ("gpu": { "name": "Apple M3 Max" }) is detected automatically and
treated as unified memory. Omit gpu for a CPU / integrated-GPU profile.
POST /api/compatibility
curl -X POST https://canirun.ai/api/compatibility \
-H 'content-type: application/json' \
-d '{ "hardware": { "ramGb": 32, "gpu": { "name": "NVIDIA RTX 3060" } },
"modelId": "llama-3.1-8b", "quantization": "Q4_K_M" }'
{
"compatible": true,
"status": "comfortable", // comfortable | tight | cpu-offload | insufficient | unknown
"grade": "A", // S–F
"score": 82,
"modelId": "llama3.1-8b",
"quantization": "Q4_K_M",
"recommendedQuantization": "Q8_0",
"estimated": {
"tokensPerSecond": 55,
"modelSizeGb": 3.9,
"vramRequiredGb": 4.6,
"ramRequiredGb": 7.5,
"memoryHeadroomGb": 7.4
},
"notes": ["The model should fit comfortably in GPU memory.", "..."]
}
quantization is optional — when omitted, the best-fitting quant is used.
POST /api/recommend
curl -X POST https://canirun.ai/api/recommend \
-H 'content-type: application/json' \
-d '{ "hardware": { "ramGb": 64, "gpu": { "name": "RTX 4090", "vramGb": 24 } },
"useCase": "code", "limit": 5 }'
Returns a ranked recommendations array (each with quant, grade, status and
estimated tokens/second). useCase and limit (1–25, default 5) are optional.
Tech Stack
| Technology | Purpose | |
|---|---|---|
| 🚀 | Astro 5 | Static site generation with islands architecture |
| 🎨 | Tailwind CSS 4 | Utility-first styling |
| 🔤 | Geist | Sans, Mono and Pixel typefaces |
| 🖼️ | Satori + resvg | OG image generation (JSX → SVG → PNG) |
| 📸 | @zumer/snapdom | Tier list export to image |
| 🗺️ | @astrojs/sitemap | Automatic sitemap generation |
Getting Started
Prerequisites: Node.js 18+ and pnpm
# Clone the repo
git clone https://github.com/midudev/canirun.ai.git
cd canirun.ai
# Install dependencies
pnpm install
# Start dev server
pnpm dev
Open localhost:4321 to see the site.
Commands
| Command | Action |
|---|---|
pnpm dev |
Start dev server at localhost:4321 |
pnpm build |
Build production site to ./dist/ |
pnpm preview |
Preview production build locally |
pnpm scrape |
Fetch model stats from HuggingFace |
Project Structure
packages/
├── models/
│ └── src/index.ts # 90+ AI model definitions with quant calculations (edit here)
├── compatibility/
│ └── src/index.ts # GPU/Apple/Mobile DBs + compatibility scoring (edit here)
└── runai/ # CLI for running models locally
src/
├── data/
│ ├── models.ts # Re-exports @canirun/models (built from packages/models)
│ └── hf-stats.json # HuggingFace download/like counts
├── lib/
│ ├── hardware.ts # Re-exports @canirun/compatibility
│ └── og.ts # OG image generation utilities
├── pages/
│ ├── index.astro # Home — model grid with filters & search
│ ├── tier.astro # Tier list — S–F ranking with image export
│ ├── model/[id].astro # Model detail — quants, compatibility, install
│ ├── api/ # JSON API — models, compatibility, recommend
│ └── og/ # Dynamic OG image endpoints
├── components/
│ └── NavHeader.astro # Site navigation
├── layouts/
│ └── Layout.astro # Base layout with SEO, fonts, transitions
├── icons/ # SVG icon components
└── styles/
└── global.css # Theme tokens, Geist fonts, dark mode
Contributing
Contributions are welcome! Some ways to help:
- Add a model — add an entry to the
STATIC_MODELSarray inpackages/models/src/index.tsfollowing the existing pattern (theAIModelinterface at the top of that file). - Improve hardware detection — extend the GPU/Apple/Mobile databases in
packages/compatibility/src/index.ts - Report inaccurate results — open an issue with your hardware info and the model in question
- Fix bugs or improve UI — PRs are appreciated