Webseiten mit Share2Agent an Ollama senden
Verarbeite jede Webseite mit einem lokalen Ollama-Modell. Fasse Artikel zusammen, übersetze Dokumentation, extrahiere Kernpunkte oder analysiere Inhalte. Share2Agent sendet die Seite an einen kleinen Webhook-Receiver, der Ollamas API aufruft und das Ergebnis speichert.
Voraussetzungen
- Ollama installiert und läuft (ollama.com)
- Ein Modell gepullt (z.B.
ollama pull llama3.2) - Share2Agent Chrome-Erweiterung installiert
- Python 3.10+
Schritt 1: Webhook-Receiver bauen
Dieses Skript empfängt Seiten von Share2Agent, sendet den Inhalt mit deinem Kommentar als Prompt an Ollama und speichert sowohl die Originalseite als auch die LLM-Antwort.
Speichere das als ollama_receiver.py:
#!/usr/bin/env python3
"""Share2Agent → Ollama webhook receiver."""
import json
import urllib.request
from datetime import datetime
from http.server import HTTPServer, BaseHTTPRequestHandler
from pathlib import Path
PORT = 9876
OUTPUT_DIR = Path.home() / "share2agent-ollama"
OLLAMA_URL = "http://localhost:11434/api/generate"
MODEL = "llama3.2"
DEFAULT_PROMPT = "Summarize this article in 3-5 bullet points."
OUTPUT_DIR.mkdir(parents=True, exist_ok=True)
def call_ollama(prompt: str, content: str) -> str:
payload = json.dumps({
"model": MODEL,
"prompt": f"{prompt}\n\n---\n\n{content}",
"stream": False,
}).encode()
req = urllib.request.Request(
OLLAMA_URL,
data=payload,
headers={"Content-Type": "application/json"},
)
with urllib.request.urlopen(req, timeout=120) as resp:
return json.loads(resp.read())["response"]
class Handler(BaseHTTPRequestHandler):
def do_POST(self):
length = int(self.headers.get("Content-Length", 0))
data = json.loads(self.rfile.read(length))
title = data.get("title", "untitled")
content = data.get("content", "")
comment = data.get("comment", "").strip()
prompt = comment if comment else DEFAULT_PROMPT
print(f"Processing: {title[:60]}...")
result = call_ollama(prompt, content)
# Save result
ts = datetime.now().strftime("%Y-%m-%d-%H%M")
slug = title[:40].lower().replace(" ", "-")
out = OUTPUT_DIR / f"{ts}-{slug}.md"
out.write_text(
f"# {title}\n\n"
f"**Prompt:** {prompt}\n"
f"**Source:** {data.get('url', '')}\n\n"
f"---\n\n{result}\n"
)
print(f"Saved: {out.name}")
self.send_response(200)
self.send_header("Content-Type", "application/json")
self.send_header("Access-Control-Allow-Origin", "*")
self.end_headers()
self.wfile.write(json.dumps({"status": "ok"}).encode())
def do_OPTIONS(self):
self.send_response(204)
self.send_header("Access-Control-Allow-Origin", "*")
self.send_header("Access-Control-Allow-Methods", "POST, OPTIONS")
self.send_header("Access-Control-Allow-Headers", "Content-Type")
self.end_headers()
if __name__ == "__main__":
print(f"Ollama receiver on :{PORT} (model: {MODEL})")
HTTPServer(("0.0.0.0", PORT), Handler).serve_forever()Schritt 2: Receiver starten
python3 -u ollama_receiver.pyStelle sicher, dass Ollama läuft (ollama serve oder die Ollama-App).
Schritt 3: Share2Agent konfigurieren
- Klicke auf das Share2Agent-Icon in Chrome.
- Öffne Settings.
- Setze die Webhook URL auf
http://localhost:9876. - Speichere.
Schritt 4: Eine Seite verarbeiten
- Öffne irgendeinen Artikel oder eine Doku-Seite.
- Klicke auf das Share2Agent-Icon.
- Schreibe deine Instruktion in das comment-Feld:
Summarize in 3 bulletsTranslate to SpanishExtract all code examplesList the pros and cons mentioned
- Klicke auf Share.
Wenn du den Kommentar leer lässt, nutzt der Receiver den Default-Prompt ("Summarize this article in 3-5 bullet points").
Das Ergebnis landet in ~/share2agent-ollama/:
~/share2agent-ollama/2026-03-28-1430-understanding-rust-lifetimes.md
Anpassen
Modell wechseln: Ändere die Variable MODEL. Mit ollama list siehst du alle verfügbaren Modelle.
Default-Prompt ändern: Passe DEFAULT_PROMPT an, um ein anderes Fallback-Verhalten festzulegen.
Timeout erhöhen: Bei langen Dokumenten oder langsamen Modellen erhöhe den Wert timeout=120 in urlopen.
Streaming-Antworten: Setze "stream": True im Ollama-Payload und lies Chunks inkrementell für Echtzeit-Output.
Was als Nächstes?
- Web-UI hinzufügen - erweitere den Receiver um eine simple HTML-Seite, die verarbeitete Ergebnisse in Echtzeit anzeigt.
- Nach Comment-Keyword routen - nutze unterschiedliche Modelle oder Prompts je nach Kommentar (z.B. "translate" nutzt ein mehrsprachiges Modell, "code" ein Coding-Modell).
- Mit anderen Tools verketten - speichere Ollamas Output in einem Verzeichnis, das ein anderes AI-Tool (Aider, Cursor, Windsurf) beobachtet, und baue so eine zweistufige Pipeline.