How jasonkneen/curf works
curf is a scriptable browser with a graphical front end and a loopback HTTP API. The principal workflow is a user or agent entering a URL/search, browsing a page, then extracting or manipulating page content and recording annotations or changes. The README documents distinct Cluso Inspector and security/site-info capabilities as well. The Qt front end and shared helpers are sampled; the native WebKit front end and detailed route implementations are not, so their internal wiring is not expanded.
Main entry points: main.cpp Qt browser · main.mm WebKit browser · inject.js.hpp Page instrumentation · cluso.js.hpp Embedded Inspector
Components 15
Browser UI
- Qt browser
src/qt/main.cpp - WebKit browser
src/main.mm - Input resolver
src/url_util.cpp
Script Control
- HTTP control server
src/control_server.cpp - curfctl client
curfctl.py
Page Interaction
- Page instrumentation
src/inject.js.hpp - Change log
src/qt/main.cpp - Annotations
src/qt/main.cpp
Inspection Tools
- Cluso Inspector
src/cluso.hpp - Embedded Inspector
src/cluso.js.hpp
Other components
- Browser user
- Automation client
- Web content
- Cluso relay
- Certificate services
Connections 19
- Browser user → Qt browser: browses
- Browser user → WebKit browser: browses
- Qt browser → Input resolver: resolves input
- Qt browser → Web content: loads page
- WebKit browser → Input resolver: resolves input
- WebKit browser → Web content: loads page
- Automation client → curfctl client: issues commands
- curfctl client → HTTP control server: HTTP requests
- HTTP control server → Qt browser: dispatches routes
- Qt browser → Page instrumentation: injects script
- Page instrumentation → Web content: observes and acts
- Qt browser → Change log: records changes
- Page instrumentation → Qt browser: reports mutations
- Qt browser → Annotations: saves annotations
- Qt browser → Cluso Inspector: configures inspector
- Cluso Inspector → Embedded Inspector: embeds script
- Embedded Inspector → Web content: injects inspector
- Embedded Inspector → Cluso relay: sends comments
- Qt browser → Certificate services: checks certificates