Documentation

Connect any model. Give every agent a semantic browser.

Sentinel sits between your agent and the browser. Models read compact menus, then call tools by index instead of spending context on screenshots.

CLI

semantic browser loop

$ sentinel open https://example.comPAGE: Example DomainMENU:[1] More information · navigate · iana.org/domains/example$ sentinel act 1 clickOK: click on [1] succeeded

OpenAI / ChatGPT models

OpenAI-compatible

Use GPT-4.1, GPT-4o, or any OpenAI-compatible gateway for planning and tool-call decisions.

LLM_PROVIDER=openai

OPENAI_API_KEY=sk-...

OPENAI_MODEL=gpt-4.1-mini

Mistral

Fast reasoning

Route Sentinel agent decisions through Mistral via an OpenAI-compatible endpoint or gateway.

LLM_PROVIDER=openai

OPENAI_BASE_URL=https://api.mistral.ai/v1

OPENAI_API_KEY=...

OPENAI_MODEL=mistral-small-latest

Claude Code

Developer loop

Use Sentinel as a local semantic browser layer while Claude Code handles planning and code edits.

LLM_PROVIDER=anthropic

ANTHROPIC_API_KEY=sk-ant-...

LLM_MODEL=claude-haiku-4-5-20251001

Claude Desktop MCP

MCP tools

Expose browser_open, browser_observe, browser_act, and browser_read directly to Claude Desktop.

HEADLESS=true

BROWSER_PROFILE_PATH=/Users/you/.sentinel-sfa/browser-profile

OpenCLAW / custom agent

External agents

Connect any agent runtime by calling AgentBridge or the MCP tools as a semantic observe/act API.

import { AgentBridge } from "sentinel-sfa"

await bridge.start("https://example.com")

Sentinel CLI

Local automation

Run agent demos, MCP server, and semantic scans from the command line for repeatable workflows.

sentinel open https://example.com

sentinel agent "find docs"

macOS

macOS / Linux install

$ git clone https://github.com/Winzyss-code/sentinel-sfa.git$ cd sentinel-sfa$ npm install$ npx playwright install chromium$ cp .env.example .env$ npm run test:context
Windows

Windows PowerShell install

> git clone https://github.com/Winzyss-code/sentinel-sfa.git> cd sentinel-sfa> npm install> npx playwright install chromium> copy .env.example .env> npm run test:context
Config

Claude Desktop MCP config

{  "mcpServers": {    "sentinel-sfa": {      "command": "node",      "args": ["/absolute/path/to/sentinel-sfa/src/mcp/server.js"],      "env": {        "HEADLESS": "true",        "BROWSER_PROFILE_PATH": "/Users/you/.sentinel-sfa/browser-profile"      }    }  }}
Config

Model provider env

# Anthropic / ClaudeLLM_PROVIDER=anthropicANTHROPIC_API_KEY=sk-ant-...LLM_MODEL=claude-haiku-4-5-20251001# OpenAI / ChatGPT / compatible gatewaysLLM_PROVIDER=openaiOPENAI_API_KEY=sk-...OPENAI_MODEL=gpt-4.1-mini# Mistral via OpenAI-compatible endpointOPENAI_BASE_URL=https://api.mistral.ai/v1OPENAI_MODEL=mistral-small-latest

Tool contract

browser_open

Launch or navigate to a URL and return the semantic menu.

browser_observe

Rescan after navigation, loading, or DOM changes.

browser_act

Click, type, hover, or submit by numbered index.

browser_read

Extract readable page text after opening a result.