Authorization notice. Vitre is dual-use. Only use it on software, sites and systems you own or have explicit permission to test.
Who it is forA developer or data analyst who needs structured rows from a page rendered in an app WebView.
The problemPer-field extraction loses row alignment when one row is missing a value, so later records land on the wrong item.
The outcomeA JSON array of records in the workflow variable named by into, with missing values as empty strings inside their own row.
What you need first
- Kotlin 2.3.10 Multiplatform project (Android minSdk 24, iOS 15.0+, or desktop with JetBrains Runtime and JCEF 21)
- Maven Central access, which is the only setup needed for the published artifacts
- Compose Multiplatform if you want the optional vitre-compose UI layer
Steps
- Add vitre-core to your commonMain dependencies as in the first use case.
- Write extractRows with a row locator, for example xpath("//li[@data-sku]"), and a limit.
- Add column entries with their own locators, using xpath(".") to read the row itself.
- Run the workflow with WorkflowEngine and read the variable named in into from the Completed event.
Prompt for your agent
Using the vitre-core dependency in <project-path>, write an extractRows step over <row-xpath> with columns <column-list> and a limit of <n>. Expected output: a JSON array with one record per matched row. Verify that a row lacking a column value has an empty string for that column and does not shift the other records.
Caveat. The README describes ExtractRows for matching rows on the page, but you must confirm the target page's markup supports the chosen XPath expressions before relying on the output.
Use this in your AI agent
Ask your agent
Using the Deduped MCP, get the setup steps for ggoggam/vitre and "Pull a whole results table into JSON in one step"
Add Deduped to Claude Code once
claude mcp add --transport http deduped https://dedupedai.com/mcp
Every Monday: the 5 hottest repos and exactly how to use them. Free, one email a week, unsubscribe anytime.
Get them freeShare: X LinkedIn Hacker News Email Copy link
Third-party repos we don't own. AI-written use cases can be wrong. Disclaimer