Instruktor banner
jmanhype jmanhype

Instruktor

Data community

Description

A powerful web automation and structured data extraction platform combining Elixir and Python for browser automation, LLM-powered extraction, and data processing.

Installation

This entry records only its repository, not the path inside it, so there is no exact command to give. Open the source below and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

README

Instruktor

Elixir + Python toolkit for web browsing automation and structured data extraction using local LLMs.

What It Does

Automates web browsing via Playwright (Python), extracts structured data using LLM-guided schemas (via instructor_ex), and provides a CLI for search, screenshots, and extraction tasks. Uses llama.cpp for local inference.

Components

Component Technology Purpose
Web automation Playwright (Python) Browser control, screenshots
Data extraction instructor_ex + Ecto schemas Structured output from web pages
LLM inference llama.cpp Local model serving
HTTP client HTTPoison API calls
Background jobs Oban Async processing
Python bridge Port (Elixir -> Python) Cross-language communication

Extraction Schemas

Defined in `lib/instruktor/schemas/`:

  • WebSearchResult -- search result parsing
  • WebAutomationResult -- automation output structure

Project Structure

lib/
  instruktor/
    application.ex
    llm/client.ex                        # LLM client
    web_automation.ex                    # Automation logic
    web_automation/client.ex             # HTTP client
    web_automation/python_port.ex        # Elixir-Python bridge
    schemas/                             # Ecto schemas for extraction
    workers/                             # Oban workers (LLM, web automation)
priv/
  python/
    web_automation.py                    # Playwright automation
    structured_extraction.py             # LLM extraction
    llama_server.py                      # llama.cpp server wrapper
    requirements.txt
scripts/
  README.md
config/
  config.exs, dev.exs, test.exs

Requirements

  • Elixir 1.14+
  • Python 3.8+ with Playwright
  • llama.cpp (for local LLM)

Setup

git clone https://github.com/jmanhype/instruktor.git
cd instruktor
mix deps.get
# Install Python dependencies:
cd priv/python && pip install -r requirements.txt
# Install Pl