Skip to content

About

Hardware-aware local AI model recommender and starter generator for Ollama. Profile RAM, GPU/VRAM, and OS to find verified models and generate ready-to-run TypeScript chat and tool-calling projects.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

Β 

History

16 Commits

Folders and files

Repository files navigation

πŸš€ Hack Day Starter β€” Run Local AI Models on Any Laptop or PC

Tests TypeScript Node.js Ollama License Hacktoberfest 2026

Hardware-aware local model recommender and zero-dependency TypeScript starters for Ollama.
Built for the Hacktoberfest 2026 "Build for a Friend" Weekend Challenge, Hack Day Starter profiles your hardware (RAM, GPU, CPU, SSD headroom), matches your machine with a verified open-weight AI model fitted to your system memory and compute limits, and generates an immediate, production-ready TypeScript project with zero runtime dependencies.


πŸ“š Technical Documentation & Guides

  • πŸ“– Verified Model Registry: All 23 tracked entries with exact manifest byte sizes, context token windows, lifecycle states, and verified capabilities.
  • ⚑ Ollama Hardware Requirements Guide: In-depth engineering analysis of Apple Silicon Metal, NVIDIA CUDA VRAM, CPU bottlenecks, and KV cache calculations.
  • πŸ› οΈ Building Local Tool-Calling Agents: Native Ollama tool calling, multi-step agent loops, AST arithmetic security, and verified models.
  • βš™οΈ Deterministic Sizing Logic: Mathematical scoring breakdown, binary safety gates, and 1.5 GB buffer policy.

⚑ Quick Answer: How to Run a Local AI Model on Your Device

If you are asking "How do I run an open-source AI model locally on my computer?", here is the 3-step process:

  1. Install Ollama (the local AI runtime):
    # macOS / Linux
    curl -fsSL https://ollama.com/install.sh | sh
    # Windows: Download installer from https://ollama.com/download
  2. Match the right model to your RAM:
    • 8 GB RAM: Run phi4-mini (2.5 GB) or qwen3.5:4b (3.4 GB)
    • 16 GB RAM: Run gemma4:e4b (6.6 GB) or qwen3.5:9b (6.6 GB) or gemma4:12b (7.7 GB)
    • 24 GB – 32 GB RAM: Run gemma4:12b (with 256K context) or qwen3.8:27b (18 GB)
    • 64 GB+ RAM: Run qwen3-coder-next (52 GB) or large MoE models
  3. Pull and execute:
    ollama run gemma4:12b

The catch? Wiring up streaming, handling conversational state, managing function/tool calls, avoiding disk swap death, and writing boilerplate code takes hours.
Hack Day Starter automates this end-to-end.


🎯 The "Build for a Friend" Challenge (Hacktoberfest 2026)

Hack Day Starter was built specifically for the Hacktoberfest 2026 "Build for a Friend" Weekend Challenge. During hackathons, weekend sprints, and local AI prototyping, developers lose the first 2–4 hours fighting common pitfalls:

  • πŸ’₯ Out-of-Memory (OOM) Crashes: Downloading a 14 GB or 20 GB model on an 8 GB or 16 GB laptop triggers aggressive swap thrashing, freezing the machine or crawling at 0.2 tokens/second.
  • πŸ“¦ Stale Model Catalogs: Outdated tutorials recommend retired 2023-era models (like Llama 2 7B) instead of modern state-of-the-art architectures (Gemma 4, Qwen 3.5, Phi-4) that offer 256K context and native tool calling.
  • πŸ’Ύ Disk Space Blindspots: Pulling models without checking SSD headroom can stall multi-gigabyte downloads halfway through.
  • πŸ”Œ Boilerplate & Runtime Frustration: Connecting to local REST daemons, handling chunked NDJSON streams, configuring tool execution loops, and debugging raw ECONNREFUSED connection crashes drain developer momentum.

Hack Day Starter was created to solve this for a friend:

  1. Detect your hardware specs (RAM, GPU acceleration, OS, free storage).
  2. Deterministically recommend verified models with realistic memory requirements.
  3. Choose your starter archetype (Local Chat or Tool-Calling Agent).
  4. Download a clean, ready-to-run TypeScript project ZIP and start building in under 60 seconds.

πŸ“Š Hardware Sizing Matrix: What Model Can Your Computer Run?

Memory calculations must account for the model weights, the KV cache (which scales with context length), and operating system overhead (~2.5–4 GB):

Your Available RAM Recommended Models Ollama Tag Model Size Context Window Native Tool Calling Experience / Speed
8 GB RAM (Standard Laptop) Phi-4 Mini
Nemotron 3 Nano
Qwen 3.5 4B
phi4-mini
nemotron-3-nano:4b
qwen3.5:4b
2.5 GB
2.8 GB
3.4 GB
128K
256K
256K
βœ…
βœ…
βœ…
⚑ Fast (30–60 tok/s on M-series or modern CPU)
16 GB RAM (Dev Laptop) Gemma 4 E4B
Qwen 3.5 9B
Gemma 4 12B
gemma4:e4b
qwen3.5:9b
gemma4:12b
6.6 GB
6.6 GB
7.7 GB
128K
256K
256K
βœ…
βœ…
βœ…
πŸš€ Optimal balance of intelligence, speed, and context
24 GB – 32 GB RAM (Pro Mac / RTX PC) Gemma 4 12B (Full KV)
Qwen 3.8 27B
GPT-OSS 20B
gemma4:12b
qwen3.8:27b
gpt-oss:20b
7.7 GB
18 GB
14 GB
256K
256K
128K
βœ…
βœ…
βœ…
🧠 High reasoning power, complex coding & agent tasks
64 GB+ Unified / VRAM (Workstation) Qwen 3 Coder Next
Qwen 3.6 35B
qwen3-coder-next
qwen3.6:35b
52 GB
23 GB
256K
256K
βœ…
βœ…
πŸ† Full frontier-grade local intelligence

Note

Unified Memory (Apple Silicon M1–M6): macOS dynamically shares RAM between CPU and GPU. A 16 GB Mac can dedicate ~12 GB directly to model weights and KV cache, making it one of the most efficient local AI platforms available.


πŸ—οΈ System Architecture

               β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
               β”‚         Developer Laptop Specifications       β”‚
               β”‚  β€’ RAM (GB)      β€’ GPU (Apple / NVIDIA / CPU) β”‚
               β”‚  β€’ Operating OS  β€’ Free Disk Space Headroom   β”‚
               β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                       β”‚
                                       β–Ό
               β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
               β”‚             Hack Day Starter (App)            β”‚
               β”‚  β€’ Deterministic hardware compatibility score β”‚
               β”‚  β€’ Verified Model Registry (Oct 2026 data)    β”‚
               β”‚  β€’ Authoritative vs Estimated memory bounds   β”‚
               β”‚  β€’ Free disk space safety gate                β”‚
               β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                       β”‚
                                       β–Ό
               β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
               β”‚           Verified Model Selection            β”‚
               β”‚  β€’ Exact Ollama tag (e.g. gemma4:12b)         β”‚
               β”‚  β€’ Verified native capabilities (tools/vision)β”‚
               β”‚  β€’ Starter type: Local Chat vs Agent          β”‚
               β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                       β”‚
                                       β–Ό
               β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
               β”‚      Generated Starter Project (ZIP)          β”‚
               β”‚  β€’ Zero runtime dependencies (native fetch)   β”‚
               β”‚  β€’ Direct /api/chat streaming client          β”‚
               β”‚  β€’ Built-in Ollama & Model Readiness check    β”‚
               β”‚  β€’ Safe recursive-descent math tool           β”‚
               β”‚  β€’ Deterministic in-memory generation         β”‚
               β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                       β”‚
                                       β–Ό
               β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
               β”‚          Local Ollama Runtime Daemon          β”‚
               β”‚             http://localhost:11434            β”‚
               β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                       β”‚
                                       β–Ό
               β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
               β”‚          Open-Weight Model Weights            β”‚
               β”‚         gemma4:12b / qwen3.5:9b / ...         β”‚
               β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                       β”‚
                         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                         β–Ό                           β–Ό
                 Direct Response            Tool Call Execution
                                            (src/tools/calculator.ts)
                                                     β”‚
                                                     β–Ό
                                            Synthesized Result

Component Roles & Boundaries

Component Role What It Does / Does Not Do
Ollama Local Daemon Runs locally on port 11434. Pulls weights, manages GGUF quants, and executes hardware-accelerated tensor math on Metal/CUDA/Vulkan.
Open-Weight Models Intelligence Layer Neural network weights (e.g., gemma4:12b, qwen3.5:9b). Runs completely offline inside Ollama.
Hack Day Starter Generator & Recommender Profiles hardware, filters models, and builds custom starter ZIPs in-memory. Does not proxy inference or transmit prompts.
Generated Project Your Application Independent TypeScript codebase. Runs directly on your machine with zero external SDKs or telemetry.

πŸ› οΈ Starter Archetypes

1. Local Chat (hack-day-starter-chat-<model>)

  • Best for: Chatbots, personal offline copilots, document Q&A, and conversational prototyping.
  • Key Capabilities:
    • Zero runtime dependencies: Uses native Node.js 18+ global fetch.
    • Interactive CLI loop: Multi-turn conversational memory with seamless terminal I/O.
    • Smart readiness check: Verifies the Ollama daemon and local model existence before prompting the user.
    • Graceful shutdown: Clean EOF handling on Ctrl+C or typing exit.

2. Autonomous Tool-Calling Agent (hack-day-starter-agent-<model>)

  • Best for: Multi-step autonomous agents, calculation engines, and structured function execution.
  • Strict Safety Gate: Only selectable when the model is verified to support native tool calling (model.capabilities.tools === true).
  • Key Capabilities:
    • Autonomous ReAct Loop: Model generates structured tool_calls β†’ runtime executes tool β†’ sends { role: "tool", content: result } back to model β†’ model synthesizes natural language conclusion.
    • Safe Math Engine: Ships with calculator.ts, a pure recursive-descent arithmetic parser (0% eval(), 0% new Function()).
    • Extensible Architecture: Add new tools in minutes using standard JSON Schema definitions.

πŸ’» Real End-to-End Execution Trace: Gemma 4 12B Agent

Here is the exact terminal output from the generated tool-calling agent running against local Ollama with gemma4:12b:

$ npm run dev

=================================================
πŸ€– Hack Day Starter β€” Tool-Calling Agent
🎯 Model: gemma4:12b (Native Tool-Calling Verified)
πŸ› οΈ  Active Tools: [calculate]
πŸ“‘ Ollama Host: http://localhost:11434
=================================================

✨ Agent ready! Try asking complex calculations or math problems:
Example: 'What is 342 multiplied by 19, and then divide by 4?'
Type 'exit' or press Ctrl+C to quit.

User: What is 342 multiplied by 19, and then divide by 4?
Agent: Thinking...
βš™οΈ  [Tool Call] calculate({"expression":"(342 * 19) / 4"})
πŸ“‹ [Tool Result] 1624.5
Agent: Thinking...
Agent: 342 multiplied by 19, divided by 4, equals 1624.5.

What Happened Behind the Scenes:

  1. User Prompt: Submitted a natural-language multi-step arithmetic request.
  2. Autonomous Tool Call: gemma4:12b recognized it required a calculation and emitted a structured tool call: calculate({"expression": "(342 * 19) / 4"}).
  3. Safe Evaluation: src/tools/calculator.ts evaluated the expression mathematically without invoking any shell or arbitrary JavaScript execution.
  4. Tool Context Feeding: The output 1624.5 was sent back to the model as a tool role message.
  5. Final Synthesis: Gemma 4 synthesized the final, human-readable answer.

πŸ” Verified Model Registry (Live Ollama Source Snapshot)

Unlike static blog posts that become outdated within weeks, Hack Day Starter uses a Verified Model Registry tracking 23 model entries categorized by capability verification, runtime testing status, and lifecycle. The complete catalog with manifest byte sizes and interactive filters is browsable on the Verified Model Registry page:

Model Creator Ollama Tag Display Size Context Tools Verification Status
Gemma 4 12B Google gemma4:12b 7.7 GB 256K βœ… Official Spec: 16 GB
Gemma 4 E4B Google gemma4:e4b 6.6 GB 128K βœ… Official Spec: 8 GB
Llama 3.2 3B Meta llama3.2:3b 2.0 GB 128K βœ… Runtime Verified
Llama 3.1 8B Meta llama3.1:8b 4.9 GB 128K βœ… Runtime Verified
Qwen 3.5 9B Alibaba qwen3.5:9b 6.6 GB 256K βœ… Source Verified
Qwen 3.5 4B Alibaba qwen3.5:4b 3.4 GB 256K βœ… Source Verified
Qwen 2.5 Coder 7B Alibaba qwen2.5-coder:7b 4.7 GB 32K βœ… Source Verified
Mistral NeMo 12B Mistral mistral-nemo:12b 7.1 GB 128K βœ… Source Verified
Qwen 3.8 27B Alibaba qwen3.8:27b 18 GB 256K βœ… Source Verified
Qwen 3.6 35B Alibaba qwen3.6:35b 23 GB 256K βœ… Source Verified
GPT-OSS 20B Community gpt-oss:20b 14 GB 128K βœ… Source Verified
Phi-4 Mini Microsoft phi4-mini 2.5 GB 128K βœ… Source Verified
Nemotron 3 Nano 4B NVIDIA nemotron-3-nano:4b 2.8 GB 256K βœ… Source Verified
LFM 2.5 8B Liquid lfm2.5:8b 5.2 GB 32K ❌ Source Verified
Devstral Small 2 Mistral devstral-small-2:latest 15 GB 32K βœ… Source Verified
DeepSeek R1 1.5B DeepSeek deepseek-r1:1.5b 1.1 GB 128K ❌ Source Verified

🚦 Ollama & Model Readiness UX (Zero Stack Traces)

First-time local AI developers frequently run into confusing crashes:

  • FetchError: connect ECONNREFUSED 127.0.0.1:11434
  • model 'xyz' not found, try pulling it first

Generated projects ship with an integrated Readiness Check (src/readiness.ts). Before any prompt is processed, it checks:

  1. Is Ollama Running?
    If the daemon is offline, it prints a clean, formatted guide:
    ===============================================================
    ⚠️  OLLAMA IS NOT REACHABLE
    ---------------------------------------------------------------
    Could not connect to Ollama at: http://localhost:11434
    
    To run this starter, please:
    1. Install Ollama: https://ollama.com/download
    2. Start the Ollama application or run 'ollama serve'
    3. Restart this starter: npm run dev
    ===============================================================
    
  2. Is the Model Installed?
    If the weights are missing, it provides the exact copy-paste command:
    ===============================================================
    ⚠️  MODEL NOT INSTALLED: gemma4:12b
    ---------------------------------------------------------------
    Ollama is running, but 'gemma4:12b' is not downloaded yet.
    
    To download this model, run:
      ollama pull gemma4:12b
    
    Once download finishes, restart this starter:
      npm run dev
    ===============================================================
    

πŸ”’ Security & Privacy Commitments

  1. No External API Keys: Inference executes locally through your local Ollama instance. Prompts, code, and documents are processed on your machine rather than sent to third-party cloud APIs.
  2. Deterministic & Safe Generation: The generator uses pure template composition. It does not invoke opaque third-party cloud LLMs to write code.
  3. No Dynamic Code Evaluation: src/tools/calculator.ts strictly rejects any input containing letters, semicolons, backticks, or non-arithmetic characters. It never touches eval() or new Function().
  4. Registry Enforcement: The API only generates starters for models registered in VERIFIED_MODEL_REGISTRY. Arbitrary, unverified model tags are rejected.

πŸš€ Step-by-Step Installation & Quickstart

Method 1: Using the Web App Profiler (Recommended)

# 1. Clone this repository
git clone https://github.com/TechGenDM/hack-day-starter.git
cd hack-day-starter

# 2. Install dependencies
npm install

# 3. Launch the web profiler
npm run dev

# 4. Open http://localhost:3000 in your browser
#    - Review your hardware recommendations
#    - Select Chat or Agent starter
#    - Click "Download Starter (.ZIP)"

Method 2: Running Your Downloaded Starter Project

# 1. Unzip your generated project
unzip hack-day-starter-agent-gemma4.zip -d my-ai-agent
cd my-ai-agent

# 2. Pull the model weights locally
ollama pull gemma4:12b

# 3. Install dev dependencies (TypeScript & tsx)
npm install

# 4. Start your local AI!
npm run dev

πŸ§ͺ Comprehensive Automated Test Suite (36/36 Passing)

The codebase includes an extensive automated test suite covering recommendation logic, live data syncing, generator determinism, AST security auditing, runtime readiness diagnostics, score transparency, and starter setup flow contracts:

npm test
βœ” R1: Both starter types ship the readiness module and use it in index.ts
βœ” R2 (chat): Ollama unavailable β†’ friendly message, download URL, no raw error
βœ” R2 (agent): Ollama unavailable β†’ friendly message, download URL, no raw error
βœ” R3 (chat): model missing β†’ exact 'ollama pull qwen3.5:9b', no substitution
βœ” R3 (agent): model missing β†’ exact 'ollama pull gemma4:12b', no substitution
βœ” R4: Chat β€” ready β†’ readiness message, then unchanged chat behavior with exact tag
βœ” R5: Agent β€” ready β†’ unchanged model β†’ calculator tool β†’ result β†’ model loop
βœ” R6: readiness module matches exact tags only (':latest' normalization for bare names)
βœ” A: Gemma 4 E4B metadata matches verified source snapshot
βœ” B: Gemma 4 12B metadata matches verified source snapshot
βœ” C: Qwen 3.5 4B metadata matches verified source snapshot
βœ” D: Qwen 3.5 9B metadata matches verified source snapshot
βœ” E: GPT-OSS 20B metadata matches verified source snapshot
βœ” F: Capability fields match source snapshot
βœ” G: Ollama display sizes and short digests match source snapshot
βœ” H: Current model discovery finds newly added model families including Qwen 3.8
βœ” I: Retired / unavailable models are never recommended
βœ” J: Stale metadata cannot be presented as 'current' or recommended
βœ” K: 24 GB Apple Silicon recommends only models that pass current hardware policy
βœ” L: 8 GB CPU-only does not receive artificially inflated model-capacity bonuses
βœ” M: Tool-calling selection depends on verified capability data
βœ” N: Discrepancy detector flags discrepancies when curated registry disagrees with observations
βœ” O: Runtime verified models and runtime pending models are strictly distinguished
βœ” P: Recommendation transparency and score factor accuracy
βœ” A: Chat starter generation produces standard file set
βœ” B: Agent starter generation produces tool-calling file set
βœ” C: Exact selected Ollama tag is injected into config, code, and README
βœ” D: README contains exact setup commands in sequence
βœ” E: Agent generation rejects a no-tools model with exact error message
βœ” F: Generated file paths are valid relative paths and JSON files parse cleanly
βœ” G: Generated project is 100% deterministic across multiple runs
βœ” H: Retired, unverified, or arbitrary models cannot bypass safety gates
βœ” I: Generated templates do not access invalid readline.clearLine or cursorTo
βœ” J: Calculator tool security audit β€” zero eval, zero Function, strict validation, correct arithmetic
βœ” K: Starter API route enforces strict model safety and capability verification
βœ” L: Starter Workbench setup flow prerequisites and command contract

β„Ή tests 36
β„Ή suites 0
β„Ή pass 36
β„Ή fail 0

❓ Frequently Asked Questions (FAQ)

Q1: Can I run an AI model locally without a dedicated GPU?

Yes. Modern open-weight small language models (such as phi4-mini at 2.5 GB or qwen3.5:4b at 3.4 GB) run efficiently on standard modern x86/ARM CPUs using Ollama's SIMD and AVX-512 optimizations. On Apple Silicon (M1–M6), the CPU and GPU share high-bandwidth Unified Memory, giving desktop-grade performance on thin laptops.

Q2: How much RAM do I need for local AI?

  • Minimum: 8 GB RAM allows comfortable execution of 2B–4B parameter models.
  • Sweet Spot: 16 GB RAM runs 7B–12B models (e.g., gemma4:12b or qwen3.5:9b) at full speed with generous context windows.
  • Power User: 32 GB–64 GB RAM unlocks 27B–35B parameter reasoning models and coding specialists.

Q3: Why run models locally instead of using cloud APIs like OpenAI or Anthropic?

  1. Local Privacy & Data Control: Prompts, code, and documents run directly on your machine instead of being transmitted to third-party cloud servers.
  2. Zero Incurred Usage Fees: No subscription tiers, no per-token billing, and no credit card required.
  3. Offline Resilience: Functions completely disconnected from external networks (airplanes, field work, secure offline environments).
  4. No Cloud Rate Limits: Requests are bound only by your local hardware capabilities, without artificial vendor request caps or token-per-minute throttling.

Q4: What is the difference between Ollama and Hack Day Starter?

  • Ollama is the runtime engine (analogous to the Node.js runtime or Docker daemon) that manages model execution.
  • Hack Day Starter is the developer bootstrapper that profiles your machine, recommends the best model for your exact hardware, and scaffolds a complete TypeScript application with zero runtime dependencies.

Q5: How does tool-calling work without an internet connection?

The open-weight model is trained to recognize when a query requires a tool. It outputs a structured JSON object specifying the tool name and arguments. Your local TypeScript runtime executes the function on your machine (e.g., querying a local database or running a math parser) and returns the output to the model to generate the final response.


πŸ“ Repository Structure

β”œβ”€β”€ app/
β”‚   β”œβ”€β”€ api/recommend/route.ts      # Hardware scoring & model recommendation API
β”‚   β”œβ”€β”€ api/starter/route.ts        # Starter generation & model safety gating API
β”‚   β”œβ”€β”€ globals.css                 # Dark theme & UI layout styling
β”‚   β”œβ”€β”€ layout.tsx                  # Root layout & SEO metadata
β”‚   └── page.tsx                    # Hardware profiler, model picker & ZIP downloader
β”œβ”€β”€ lib/
β”‚   β”œβ”€β”€ types.ts                    # Core TypeScript interfaces & registry schemas
β”‚   β”œβ”€β”€ registry.ts                 # Curated Verified Model Registry
β”‚   β”œβ”€β”€ memory-calculator.ts        # Authoritative vs estimated memory heuristics
β”‚   β”œβ”€β”€ recommend.ts                # Deterministic recommendation scoring engine
β”‚   β”œβ”€β”€ sources/
β”‚   β”‚   └── ollama.ts               # Ollama library observation scraper & parser
β”‚   └── starter/
β”‚       β”œβ”€β”€ types.ts                # Starter project types
β”‚       β”œβ”€β”€ generate.ts             # In-memory deterministic project generator
β”‚       └── templates/
β”‚           β”œβ”€β”€ chat.ts             # Zero-dependency Local Chat template
β”‚           β”œβ”€β”€ agent.ts            # Autonomous Tool-Calling Agent template
β”‚           └── readiness.ts        # Ollama daemon & model readiness check template
β”œβ”€β”€ scripts/
β”‚   └── sync-model-registry.ts      # Automated registry discovery & discrepancy checker
β”œβ”€β”€ tests/
β”‚   β”œβ”€β”€ recommend.test.ts           # Tests A–P: 16 recommendation, transparency & registry tests
β”‚   β”œβ”€β”€ starter.test.ts             # Tests A–L: 12 starter generation, security & setup flow tests
β”‚   └── readiness.test.ts           # Tests R1–R6: 8 readiness & runtime integration tests
β”œβ”€β”€ package.json
β”œβ”€β”€ LICENSE                         # MIT License
└── README.md

🀝 Contributing

Contributions to improve hardware profiling heuristics, expand verified model registry snapshots, or add new starter templates are welcome!

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/model-sync
  3. Ensure all tests pass: npm test
  4. Submit a Pull Request

πŸ“„ License

Distributed under the MIT License. See LICENSE for details.
Built with ❀️ for Hacktoberfest 2026 β€” Weekend Challenge: Build for a Friend.

About

Hardware-aware local AI model recommender and starter generator for Ollama. Profile RAM, GPU/VRAM, and OS to find verified models and generate ready-to-run TypeScript chat and tool-calling projects.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages