← Back to search

io.github.TickTockBent/charlotte

ticktockbent Scanned 14d ago

Renders web pages into structured, agent-readable representations using headless Chromium.

C
73.3 / 100

Versions

0.1.3latest
first seen May 19, 2026
PermissionsTool SafetyAuthAnnotationsCode QualityStabilitySpecVuln HistoryAuthorTransparencyCommunity

Tools 43

charlotte_tools
annotations: none low

Manage Charlotte tool visibility. Lists available tool groups and their

charlotte_wait_for
annotations: none low

Wait for a condition to be met on the page. Returns page representation when the condition is satisfied, or a TIMEOUT error.

js string text string timeout number selector string element_id string
charlotte_navigate
annotations: none low

Load a URL in the active page. Returns page representation after navigation. Default minimal detail includes landmarks, headings, and interactive element counts — use charlotte_find to locate specific elements, or pass detail: 'summary' to get the full element list.

url string timeout number
charlotte_back
annotations: none low

Navigate back in browser history. Returns page representation after navigation.

charlotte_forward
annotations: none low

Navigate forward in browser history. Returns page representation after navigation.

hard boolean
charlotte_reload
annotations: none low

Reload the current page. Returns page representation after reload.

hard boolean
charlotte_dialog
annotations: none low

Handle a pending JavaScript dialog (alert, confirm, prompt, beforeunload). Accept or dismiss the dialog. Returns page representation after the dialog is resolved.

accept boolean
charlotte_dev_serve
annotations: none low

Serve a local directory as a static website and optionally watch for file changes. Navigates to the served URL and returns the page representation. File changes trigger automatic reloads and surface as reload_event on the next tool response.

path string port number watch boolean
charlotte_dev_inject
annotations: none low

Inject CSS or JavaScript into the current page for testing modifications without editing files. Returns the page representation with a delta showing changes.

js string css string
charlotte_dev_audit
annotations: none low

Run accessibility and quality audits on the current page. Returns findings with severity levels and actionable recommendations.

charlotte_get_cookies
annotations: none low

Get cookies for the active page. Optionally filter by URL(s). Returns cookie name, value, domain, path, and flags.

charlotte_clear_cookies
annotations: none low

Clear cookies from the browser. Optionally filter by name(s) to remove specific cookies. Without a filter, clears all cookies for the current page.

cookies array
charlotte_set_cookies
annotations: none low

Set cookies on the active page. Cookies persist for subsequent navigations within matching domains.

cookies array
charlotte_set_headers
annotations: none low

Set extra HTTP headers for subsequent requests. Headers persist for all navigations on the active page.

charlotte_configure
annotations: none low

Configure Charlotte runtime settings. Changes take effect immediately.

charlotte_tabs
annotations: none low

List all open browser tabs with their URLs, titles, and active status.

url string tab_id string
charlotte_tab_open
annotations: none low

Open a new browser tab. Optionally navigate to a URL. The new tab becomes the active tab.

url string tab_id string
charlotte_tab_switch
annotations: none low

Switch to a different browser tab by its tab ID. Returns the page representation of the activated tab.

width number height number tab_id string
charlotte_tab_close
annotations: none low

Close a browser tab by its ID. If the closed tab was active, switches to the first remaining tab.

width number height number tab_id string
charlotte_viewport
annotations: none low

Change the browser viewport dimensions. Use a device preset or specify custom width/height. Returns page representation at the new viewport size.

width number height number
charlotte_network
annotations: none low

Configure network conditions for the active page. Set throttling presets, block URL patterns, or enable request logging.

charlotte_observe
annotations: none low

Get current page state without performing any action. Use detail levels to control verbosity: "minimal" for landmarks, headings, and interactive element counts by landmark (use charlotte_find to get specific elements with actionable IDs, or observe({ detail: "summary" }) to see all elements), "summary" (default) for content summaries and full element list, "full" for all text content. Use view: "tree" for a compact structural outline (cheapest orientation tool), or view: "tree-labeled" to include labels on interactive elements (still much cheaper than minimal JSON, and shows which button/link/input is which).

selector string
charlotte_find
annotations: none low

Search for elements matching criteria. Filters interactive elements by text, role, type, or spatial proximity. Use the selector parameter to find DOM elements by CSS selector — this reaches elements not in the accessibility tree (custom widgets, non-semantic divs). Selector results return Charlotte element IDs usable with click, hover, drag, etc.

role string
charlotte_screenshot
annotations: none low

Capture a visual screenshot. Fallback for when structured representation isn't sufficient (complex visualizations, canvas elements, images). Use save: true to persist as a file artifact that can be referenced later.

format enum quality number
charlotte_screenshots
annotations: none low

List all saved screenshot artifacts. Returns metadata for each saved screenshot including ID, filename, page URL, and timestamp.

id string
charlotte_screenshot_get
annotations: none low

Retrieve a previously saved screenshot artifact by its ID. Returns the image data and metadata.

id string
charlotte_screenshot_delete
annotations: none low

Delete a saved screenshot artifact by its ID. Removes the file from disk.

id string
charlotte_diff
annotations: none low

Compare current page state to a previous snapshot. Returns structural diff showing added, removed, moved, and changed elements.

charlotte_click
annotations: none low

Click an interactive element on the page. Returns full page representation after the click.

x number y number element_id string
charlotte_click_at
annotations: none low

Click at specific page coordinates. Use when target elements are not in the accessibility tree (custom widgets, canvas, non-semantic interactive divs). Dispatches real CDP-level mouse events. Returns full page representation after the click.

x number y number text string element_id string
charlotte_type
annotations: none low

Type text into an input element. Returns full page representation after typing.

text string element_id string
charlotte_select
annotations: none low

Select an option in a select/dropdown element. Returns full page representation after selection.

value string element_id string
charlotte_toggle
annotations: none low

Toggle a checkbox or switch element. Returns full page representation after toggle.

form_id string element_id string
charlotte_submit
annotations: none low

Submit a form. Can submit by form ID or by clicking its submit button. Returns full page representation after submission.

form_id string direction enum
charlotte_scroll
annotations: none low

Scroll the page or a specific container. Returns full page representation after scrolling.

direction enum element_id string
charlotte_hover
annotations: none low

Hover over an element to trigger hover states. Returns full page representation after hover.

source_id string target_id string element_id string
charlotte_drag
annotations: none low

Drag an element to another element. Uses mouse primitives to simulate drag-and-drop. Returns full page representation after the drag.

source_id string target_id string
charlotte_key
annotations: none low

Send keyboard input to the page or a specific element. Supports single key with modifiers, or a sequence of keys. Use for keyboard-driven UIs (games, terminals, code editors) and non-input elements with keydown listeners.

charlotte_upload
annotations: none low

Set files on a file input element. Validates that files exist and that the target is a file input. Returns full page representation after upload.

paths array element_id string
charlotte_fill_form
annotations: none low

Fill multiple form fields in a single call. Auto-detects element types (text input, select, checkbox, etc.) and applies the appropriate action. Returns a single page representation with delta covering all changes. All fields are validated up front before any field is mutated; if validation fails, no fields are changed. Note: if a field action fails mid-list (e.g. a handler throws after earlier fields succeeded), earlier fields remain applied.

element_id string
charlotte_evaluate
annotations: none low

Execute JavaScript in page context. Supports single expressions and multi-statement code. Returns the completion value of the last expression-statement.

timeout number expression string
charlotte_console
annotations: none low

Retrieve console messages from the active page. Returns messages at all severity levels (log, info, warning, error, debug, etc.) with timestamps. Useful for debugging JavaScript behavior.

charlotte_requests
annotations: none low

Retrieve network request history from the active page. Returns all HTTP requests with method, status, resource type, and timestamps. Useful for debugging API calls and resource loading.

Permissions 4

network medium
Server uses network capabilities via: fetch()
filesystem low
Server uses filesystem capabilities via: fs sync ops
shell high
Server uses shell capabilities via: child_process, spawn()
env_vars low
Server uses env_vars capabilities via: process.env

Scan Findings 111

low
Tool 'charlotte_tools' has no annotations annotation_checker · 100%
low
Tool 'charlotte_wait_for' has no annotations annotation_checker · 100%
low
Tool 'charlotte_navigate' has no annotations annotation_checker · 100%
low
Tool 'charlotte_back' has no annotations annotation_checker · 100%
low
Tool 'charlotte_forward' has no annotations annotation_checker · 100%
low
Tool 'charlotte_reload' has no annotations annotation_checker · 100%
low
Tool 'charlotte_dialog' has no annotations annotation_checker · 100%
low
Tool 'charlotte_dev_serve' has no annotations annotation_checker · 100%
low
Tool 'charlotte_dev_inject' has no annotations annotation_checker · 100%
low
Tool 'charlotte_dev_audit' has no annotations annotation_checker · 100%
low
Tool 'charlotte_get_cookies' has no annotations annotation_checker · 100%
low
Tool 'charlotte_clear_cookies' has no annotations annotation_checker · 100%
low
Tool 'charlotte_set_cookies' has no annotations annotation_checker · 100%
low
Tool 'charlotte_set_headers' has no annotations annotation_checker · 100%
low
Tool 'charlotte_configure' has no annotations annotation_checker · 100%
low
Tool 'charlotte_tabs' has no annotations annotation_checker · 100%
low
Tool 'charlotte_tab_open' has no annotations annotation_checker · 100%
low
Tool 'charlotte_tab_switch' has no annotations annotation_checker · 100%
low
Tool 'charlotte_tab_close' has no annotations annotation_checker · 100%
low
Tool 'charlotte_viewport' has no annotations annotation_checker · 100%
low
Tool 'charlotte_network' has no annotations annotation_checker · 100%
low
Tool 'charlotte_observe' has no annotations annotation_checker · 100%
low
Tool 'charlotte_find' has no annotations annotation_checker · 100%
low
Tool 'charlotte_screenshot' has no annotations annotation_checker · 100%
low
Tool 'charlotte_screenshots' has no annotations annotation_checker · 100%
low
Tool 'charlotte_screenshot_get' has no annotations annotation_checker · 100%
low
Tool 'charlotte_screenshot_delete' has no annotations annotation_checker · 100%
low
Tool 'charlotte_diff' has no annotations annotation_checker · 100%
low
Tool 'charlotte_click' has no annotations annotation_checker · 100%
low
Tool 'charlotte_click_at' has no annotations annotation_checker · 100%
low
Tool 'charlotte_type' has no annotations annotation_checker · 100%
low
Tool 'charlotte_select' has no annotations annotation_checker · 100%
low
Tool 'charlotte_toggle' has no annotations annotation_checker · 100%
low
Tool 'charlotte_submit' has no annotations annotation_checker · 100%
low
Tool 'charlotte_scroll' has no annotations annotation_checker · 100%
low
Tool 'charlotte_hover' has no annotations annotation_checker · 100%
low
Tool 'charlotte_drag' has no annotations annotation_checker · 100%
low
Tool 'charlotte_key' has no annotations annotation_checker · 100%
low
Tool 'charlotte_upload' has no annotations annotation_checker · 100%
low
Tool 'charlotte_fill_form' has no annotations annotation_checker · 100%
low
Tool 'charlotte_evaluate' has no annotations annotation_checker · 100%
low
Tool 'charlotte_console' has no annotations annotation_checker · 100%
low
Tool 'charlotte_requests' has no annotations annotation_checker · 100%
high
Hardcoded OAuth client ID in TickTockBent-charlotte-c2289d4/tests/integration/oauth-facade.test.ts auth_checker · 85%
info
Sandbox failed to start for behavioral verification behavioral_verifier · 100%
medium
Suspicious package name: react-dom dependency_analyzer · 60%
medium
Buffer.from base64 in TickTockBent-charlotte-c2289d4/src/core/observation.ts:519 entropy_analyzer · 75%
medium
Buffer.from base64 in TickTockBent-charlotte-c2289d4/src/core/observation.ts:526 entropy_analyzer · 75%
medium
Buffer.from base64 in TickTockBent-charlotte-c2289d4/src/core/observation.ts:556 entropy_analyzer · 75%
medium
Buffer.from base64 in TickTockBent-charlotte-c2289d4/tests/integration/screenshot-artifacts.test.ts:75 entropy_analyzer · 75%
medium
Buffer.from base64 in TickTockBent-charlotte-c2289d4/tests/integration/screenshot-artifacts.test.ts:105 entropy_analyzer · 75%
medium
Buffer.from base64 in TickTockBent-charlotte-c2289d4/tests/integration/screenshot-artifacts.test.ts:128 entropy_analyzer · 75%
medium
Buffer.from base64 in TickTockBent-charlotte-c2289d4/tests/integration/screenshot-artifacts.test.ts:153 entropy_analyzer · 75%
medium
Buffer.from base64 in TickTockBent-charlotte-c2289d4/tests/integration/screenshot-artifacts.test.ts:161 entropy_analyzer · 75%
medium
Buffer.from base64 in TickTockBent-charlotte-c2289d4/tests/integration/screenshot-artifacts.test.ts:199 entropy_analyzer · 75%
info
Tool: charlotte_set_cookies manifest_parser · 75%
medium
Buffer.from base64 in TickTockBent-charlotte-c2289d4/tests/integration/file-output.test.ts:131 entropy_analyzer · 75%
medium
Buffer.from base64 in TickTockBent-charlotte-c2289d4/tests/integration/remote-artifacts.test.ts:222 entropy_analyzer · 75%
info
package.json metadata manifest_parser · 100%
info
Tool: charlotte_tools manifest_parser · 85%
info
Tool: charlotte_wait_for manifest_parser · 75%
info
Tool: charlotte_navigate manifest_parser · 75%
info
Tool: charlotte_back manifest_parser · 75%
info
Tool: charlotte_forward manifest_parser · 75%
info
Tool: charlotte_reload manifest_parser · 75%
info
Tool: charlotte_dialog manifest_parser · 75%
info
Tool: charlotte_dev_serve manifest_parser · 75%
info
Tool: charlotte_dev_inject manifest_parser · 75%
info
Tool: charlotte_dev_audit manifest_parser · 75%
info
Tool: charlotte_get_cookies manifest_parser · 75%
info
Tool: charlotte_clear_cookies manifest_parser · 75%
info
Tool: charlotte_set_headers manifest_parser · 75%
info
Tool: charlotte_configure manifest_parser · 75%
info
Tool: charlotte_tabs manifest_parser · 75%
info
Tool: charlotte_tab_open manifest_parser · 75%
info
Tool: charlotte_tab_switch manifest_parser · 75%
info
Tool: charlotte_tab_close manifest_parser · 75%
info
Tool: charlotte_viewport manifest_parser · 75%
info
Tool: charlotte_network manifest_parser · 75%
info
Tool: charlotte_observe manifest_parser · 75%
info
Tool: charlotte_find manifest_parser · 75%
info
Tool: charlotte_screenshot manifest_parser · 75%
info
Tool: charlotte_screenshots manifest_parser · 75%
info
Tool: charlotte_screenshot_get manifest_parser · 75%
info
Tool: charlotte_screenshot_delete manifest_parser · 75%
info
Tool: charlotte_diff manifest_parser · 75%
info
Tool: charlotte_click manifest_parser · 75%
info
Tool: charlotte_click_at manifest_parser · 75%
info
Tool: charlotte_type manifest_parser · 75%
info
Tool: charlotte_select manifest_parser · 75%
info
Tool: charlotte_toggle manifest_parser · 75%
info
Tool: charlotte_submit manifest_parser · 75%
info
Tool: charlotte_scroll manifest_parser · 75%
info
Tool: charlotte_hover manifest_parser · 75%
info
Tool: charlotte_drag manifest_parser · 75%
info
Tool: charlotte_key manifest_parser · 75%
info
Tool: charlotte_upload manifest_parser · 75%
info
Tool: charlotte_fill_form manifest_parser · 75%
info
Tool: charlotte_evaluate manifest_parser · 75%
info
Tool: charlotte_console manifest_parser · 75%
info
Tool: charlotte_requests manifest_parser · 75%
info
Transport: stdio manifest_parser · 90%
info
Required env vars (4) manifest_parser · 80%
medium
Hardcoded OAuth client ID in TickTockBent-charlotte-c2289d4/tests/integration/oauth-facade.test.ts oauth_scope_analyzer · 80%
info
Sandbox failed to start for output poisoning scan output_poisoning · 100%
medium
Permission: network access detected permission_analyzer · 70%
low
Permission: filesystem access detected permission_analyzer · 90%
high
Permission: shell access detected permission_analyzer · 95%
low
Permission: env_vars access detected permission_analyzer · 90%
info
SBOM generated: 699 components sbom_generator · 100%
medium
No build provenance detected (SLSA L0) slsa_assessor · 90%