figranium is a free, open source data extraction & web scraping project written in TypeScript and released under GPL-3.0. It has 733 GitHub stars, 42 forks and 18 open issues, and was last pushed 15 hours ago. On this registry it ranks #94 of 105 tracked projects in Data Extraction & Web Scraping, with 5 head-to-head comparisons available.

Figranium Banner

Figranium

Figranium is an open-source, deterministic browser automation platform that lets you build visual browser tasks that can be called as APIs. Create scraping and automation workflows visually, pass dynamic inputs at runtime, and get structured results—without usage credits or third-party data hosting.

What You Get

  • Block‑based automation — build flows with actions like click, type, wait, hover, and execute JavaScript against modern pages.
  • Task API — trigger saved tasks via HTTP (/api/tasks/:id/api), pass variables at runtime, and secure runs with the API key you control.
  • Captures & Cabinets — review screenshots and recordings in Captures, while browser downloads are routed into task-selected Cabinets for later download or upload.
  • Proxy management — host, rotate, or import HTTP/SOCKS proxies, flag a default, and toggle rotation per task.
  • Task Scheduling — run workflows automatically using visual interval/daily/weekly/monthly settings or advanced cron expressions.
  • Security-first — session authentication, IP allowlists, secret management, and audit trails live entirely inside your environment.

Official Partners

Figranium is proudly supported by:

Featured Partner

Integration Partner

Infrastructure Backers

DigitalOcean                   Algolia         

Getting Started

This starts the app on http://localhost:11345 and the VNC viewer on http://localhost:54311.

Docker Compose (Standard)

1. Create a Project Directory

Create a directory for your Figranium installation and navigate into it:

mkdir figranium-server
cd figranium-server

2. Create docker-compose.yml

Create a docker-compose.yml file in your project directory:

wget https://raw.githubusercontent.com/figranium/figranium/main/docker-compose.deploy.yml -O docker-compose.yml

3. Start with Docker Compose

Run the following command to start the application in detached mode:

docker compose up -d

Session Secret

Set SESSION_SECRET before any run. A quick generator:

node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"

Configuration

Variable Purpose Default
SESSION_SECRET Signs session cookies. Required.
ALLOWED_IPS Comma list for basic IP allowlisting. none (open)
TRUST_PROXY Honor X-Forwarded-* when behind a reverse proxy. 0
ALLOW_PRIVATE_NETWORKS Allow scraping local/private IPs (SSRF risk). false
VITE_DEV_PORT Port for front-end dev server. 5173
VITE_BACKEND_PORT Backend port for proxying + scripts. 11345
DB_TYPE Optional database type overriding disk storage. Set to postgres to use PostgreSQL.
DB_POSTGRESDB_HOST Hostname for the PostgreSQL database (required if DB_TYPE is postgres).
DB_POSTGRESDB_PORT Port number for the PostgreSQL database (required if DB_TYPE is postgres).
DB_POSTGRESDB_USER Username for the PostgreSQL database (required if DB_TYPE is postgres).
DB_POSTGRESDB_PASSWORD Password for the PostgreSQL database (required if DB_TYPE is postgres).
DB_POSTGRESDB_DATABASE Database name for PostgreSQL. postgres
USE_CLOAK_ENGINE Set to true to run the browser engine on CloakBrowser instead of the default Playwright stealth stack. false
CLOAKBROWSER_LICENSE_KEY CloakBrowser license key for the latest binary.

CAPTCHA solving

Figranium uses Fiptcha for CAPTCHA solving. Fiptcha owns the CAPTCHA solver implementation and its configuration, supported providers, local/remote solving behavior, model setup, and platform-specific companion tooling. See the Fiptcha repository for the current CAPTCHA documentation instead of relying on duplicated configuration here.

Proxy rotation also respects data/proxies.json (see below), and data/allowed_ips.json works as an alternate allowlist format.

Advanced Configuration

  • PLAYWRIGHT_BROWSERS_PATH (or set PLAYWRIGHT_CHROMIUM_EXECUTABLE_PATH) when using a shared Playwright installation.
  • NODE_ENV=production enables the bundled dist/ client and reduces console verbosity.
  • HOST=0.0.0.0 allows binding beyond localhost inside Docker containers, while PORT overrides the Express listen port (defaults to 11345).
  • Set LOG_LEVEL to debug if you need more Playwright or proxy diagnostics.

Task Modes

Figranium has two task modes:

  • Agent Mode — deterministic browser automation built from an ordered sequence of actions, control flow, variables, and extraction.
  • Scrape Mode — lightweight HTTP-based scraping and extraction without launching a browser.

Visible browser sessions are a debugging/runtime capability, not a third task mode.

UI Walkthrough

  • Dashboard — view Task and execution metrics, search and sort Tasks, and open or create Tasks.
  • Task Editor — build Agent or Scrape Tasks, configure actions and extraction, test blocks, manage variables, choose a Cabinet, schedule runs, and trigger executions.
  • Executions — browse and filter run history, inspect outcomes and execution details, and review returned data.
  • Captures — review generated screenshots and recordings with open, download, copy, and delete controls.
  • Cabinets — manage durable file queues used by Task downloads and Upload blocks, including files, ZIPs, folders, and upload status.
  • Settings — manage API Keys, AI Models, User Agent, Proxies, Appearance, and About settings.

Task Capabilities

  • Tasks support actions including navigation, click, type, wait, press, scroll, JavaScript, hover, screenshots, conditions, loops, variables, uploads, and error handling.
  • Variable templating ({$var}) and structured conditions make Tasks reusable with runtime inputs.
  • Extraction can return structured data from browser or scrape executions.
  • See AGENT_SPEC.md for the Task schema and action contract.

Proxies

Proxies can be defined via the UI or data/proxies.json:

[
  "http://user:[email protected]:8000",
  { "server": "socks5://proxy2.example.com:1080", "label": "data center" }
]
  • host is always available and represents your machine’s default IP.
  • Rotation settings (round-robin or random) live in Settings and persist through the backend endpoints.
  • Import/export operations live behind /api/settings/proxies/import.

API Surface

Figranium exposes a REST

readme truncated — read the full docs on github

Frequently asked questions

Is figranium free to use?

figranium is open source under the GPL-3.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does figranium do?

Stack blocks visually to build complex browser workflows and execute them via API

What is figranium written in?

figranium is primarily written in TypeScript. Its source is publicly available at https://github.com/figranium/figranium, and it has 733 GitHub stars.