rtrvr.ai
Browser ExtensionStart in Chrome, on the page you're on.CloudA thousand browsers, on your schedule.RoverThe AI customer engineer for your product.Data & EvalsExpert trajectories for AI labs.
ACCESSAPI + MCPCLI & SDKTemplatesIntegrationsWhatsApp
Use cases
Vibe ScrapingLead EnrichmentWeb MonitoringForm FillingJob ApplicationsSocial MediaAI Web ContextAgentic CheckoutAll use cases
Pricing
BlogLaunches, benchmarks, deep divesDocsExtension, Cloud, API, MCP, CLICase StudiesReal teams, real runsVideosNew runs every weekChangelogWhat just shippedNewslettersProduct releases and real runs
Docs
Log inBook DemoAdd to Chrome
Log in
Menu
Add to ChromeBook a demo
ProductsBrowser ExtensionCloudRoverData & EvalsExploreUse casesPricingBlogDocs
DocsChrome / Cloud / API / MCP
Quick startAPIMCP

Start

OverviewQuick start

Build

Web agentSheets workflowsRecordingsTool callingSkillsEnrichment datasets

Run

CLI and SDKAPI overviewAgent APIScrape APIBrowser API and MCP

Automate

ShortcutsTriggersWebhooksSchedules

Trust & help

Cookie syncPermissions and privacyFAQ
DocsSkills

Guide

Skills

Markdown skill files the agent reads on every task and updates as it learns — persistent, user-editable memory across the extension, cloud, and API.

READ6 MIN
01Learn02Build03Run

Skills are markdown files that act as the agent's persistent memory. The reserved general skill is always shared with the agent — put your standing preferences, context, and defaults there. Every other skill is listed to the agent by name and description; when one matches the task at hand (a site's quirks, a workflow recipe), the agent reads it before working, and on its final review pass it can save what it learned back with rtrvr.saveSkill.

Skills are the only memory that survives a task. vars last one task, sheets hold one deliverable, recordings replay one flow — a skill is what the agent still knows next week.

01

What a skill file looks like

A skill is plain markdown with optional YAML-style frontmatter. Write it however you like — headings, bullets, code blocks — the agent reads the raw text. name and description are the only special fields, and both are optional when you create a skill in the UI.

markdown
--- name: linkedin-outreach description: How I run LinkedIn connection + follow-up campaigns, and LI's UI quirks. --- ## Rules - Never send more than 20 invites per day. - Always personalize the note with the prospect's most recent post. ## Site quirks - The "Connect" button is behind the "More" overflow menu on most profiles. - The invite-note modal caps at 300 characters and silently truncates. ## Output - One row per prospect: name, headline, profile URL, note sent, date.

Uploading a .md file with that frontmatter creates the skill with the right name and description; without frontmatter the file name becomes the skill name. A skill's id is the slugified name, so saving LinkedIn Outreach again updates linkedin-outreach rather than creating a duplicate.

02

The general skill

general is reserved: it is injected into every task in full, so it is the right home for anything that is true across all your work. It is created for you automatically with a short starter template — three sections to fill in:

  • 01

    About me — role, company, the sites and tools you work in. Lets the agent resolve "our CRM" or "the usual sheet" without asking.

  • 02

    Preferences — standing defaults: sheet vs. summary output, tone, language, units, timezone, sources to prefer or avoid.

  • 03

    Notes the agent has learned — where the agent appends what it picks up on its review pass. Edit or delete anything there; it is your file.

NOTE
Keep general short and durable. It is re-sent on every pass of every task, so a bloated general skill costs tokens on work that will never use it — move anything site-specific or workflow-specific into its own named skill.
03

Managing skills

  • 01

    Extension: the Skills dropdown in the composer lists your skills — click one (or type /name) to attach it in full to the next task, upload .md files, and jump to the web editor with the pencil or by typing a new name + Enter.

  • 02

    Cloud: rtrvr.ai/cloud?view=skills is the full library and the editor — live markdown preview, upload or drag-and-drop .md files, and per-skill delete.

  • 03

    Agent-written updates are marked agent in both UIs, so you can always see and revise what the agent taught itself.

Storage is local-first in the extension (skills work offline) and mirrors to your account as one file per skill, newest-write-wins. Edit on the web and the extension picks it up on its next sync; let the agent save one mid-task and it is on the web dashboard immediately.

04

Attaching a skill to one task

Named skills are normally summoned by the agent on demand. When you want to guarantee one is applied, attach it — attached skills are injected in full, at the same authority as general, for that task only:

  • 01

    Click the skill's row in the Skills dropdown — it shows an attached badge and a pill above the composer. Click again to detach.

  • 02

    Type /skill-name in the composer. Sending /linkedin-outreach alone just attaches it; /linkedin-outreach find 20 prospects attaches it and runs the task.

  • 03

    Shortcuts win /name collisions — if a shortcut and a skill share a name, the shortcut runs. Rename one to disambiguate.

05

How the agent sees your skills

Your skills are snapshotted once per message and rendered into the task context like this — the general skill and any attached skills in full, everything else as a one-line listing:

text
=== User Skills === --- Skill: general (always applied) --- ## Preferences Default to a Google Sheet for anything over 10 rows. --- End skill --- --- Skill: linkedin-outreach (attached by the user for THIS task — apply it) --- ## Rules Never send more than 20 invites per day. --- End skill --- Other skills (read on demand with rtrvr.readSkill({ name })): - hubspot-sync — How our HubSpot deal stages map to the pipeline sheet. - expense-report — Monthly expense report format and the receipts folder.
NOTE
That listing is how the agent decides what to read, so the description is the retrieval key — not the file body. "Notes" retrieves nothing; "How our HubSpot deal stages map to the pipeline sheet" retrieves on any HubSpot or pipeline task.
06

How the agent uses skills

  • 01

    await rtrvr.readSkill({ name }) — read one skill's full markdown (free, no LLM call). The result is file-shaped, so plans can hand it to sub-agents via fileInputs.

  • 02

    await rtrvr.saveSkill({ name, description?, content }) — create or replace a skill (content ≤16K chars). The agent is taught to fold the smallest durable edit into the existing markdown, never secrets or one-off task data.

Saves REPLACE the whole file, so the agent is instructed to readSkill first and merge. It writes on the review pass — the same script that finishes the task — and only when something durable was learned: a fact you stated about yourself or your setup, a corrected preference, a site quirk that cost a repair pass, a recipe you refined. Most tasks teach nothing durable and save nothing.

It also decides WHERE the note goes: facts about you and how you work (your role, company, the accounts and sheets you name, a standing format or tone choice) go into general; knowledge scoped to one site, tool, or recurring workflow goes into its own named skill — created on the spot when nothing fits, named <domain>-<activity> like linkedin-outreach or hubspot-sync. You will see new skills appear in the library marked agent.

javascript
// The agent's own write-back pattern, in the final plan script. const existing = await rtrvr.readSkill({ name: "linkedin-outreach" }).catch(() => null); await rtrvr.saveSkill({ name: "linkedin-outreach", description: "How I run LinkedIn outreach, and LI's UI quirks.", content: `${existing?.extractedText ?? "## Site quirks"} - Invite modal caps notes at 300 chars.`, }); return rtrvr.done({ summary: "Sent 20 invites; noted the 300-char cap." });
NOTE
Skills are memory, not storage. The agent will not write task output, page dumps, credentials, tokens, or sensitive personal data into a skill — deliverables belong in sheets and artifacts.
07

Limits

LimitValueNotes
Skill name64 charactersSlugified into the skill's id
Description256 charactersThe retrieval key — make it a concrete one-liner
Content16,384 charactersRoughly 4K tokens of markdown per skill
Skills per account100Delete unused skills to make room
Injected block64,000 charactersGeneral + attached skills + the listing, per task
08

Skills vs. the other memory

UseWhenLifetime
SkillKnowledge that should change how FUTURE tasks runPermanent, across tasks
ShortcutA task you re-run with the same steps on demandPermanent, replayed verbatim
RecordingGrounding the agent in an exact DOM flow you demonstratedPermanent, per flow
varsExpensive intermediates reused by the next passOne task
Sheet / artifactThe deliverable itselfOne deliverable
09

Getting reliable retrieval

  • 01

    Write descriptions for matching, not for humans. Name the sites, tools, and nouns a matching task would mention.

  • 02

    One skill per topic. A single 16K "everything" file is listed with one description and matches almost nothing; five focused skills each match their own tasks.

  • 03

    Attach it when it must apply. Retrieval is a judgment call the model makes — /skill-name removes the judgment and injects the file in full.

  • 04

    Put cross-cutting rules in general. It is the only skill that never depends on retrieval.

  • 05

    Smaller models retrieve less. Lightweight models (Inkling Small, MiMo, Flash-class) follow instructions that are in front of them but summon fewer optional resources on their own. Attach the skill explicitly — or run those tasks on a larger model — and keep general tight so the rules that matter are always in context.

10

MCP access

Skills are exposed on the rtrvr MCP server both as tools (list_skills, get_skill) and as MCP resources (rtrvr-skill://{id}, text/markdown) — so Claude, Cursor, or any MCP client can read the same memory your agent uses. Cloud-only: no extension session required.

PreviousTool callingNextEnrichment datasets

YOUR NEXT RUN

Run the example on a real site.

Use Chrome for the page in front of you. Use Cloud when the run should continue on a schedule or across many pages.
Add to ChromeAPI referenceBook a demo

On this page

What a skill file looks likeThe general skillManaging skillsAttaching a skill to one taskHow the agent sees your skillsHow the agent uses skillsLimitsSkills vs. the other memoryGetting reliable retrievalMCP access
rtrvr.ai

Make every site
work for you.

Launches first, roadmap early, and the occasional trick we only share by email.

Products

Browser ExtensionCloudRoverData & Evals

Use cases

Vibe ScrapingLead EnrichmentForm FillingWeb MonitoringSocial MediaJob ApplicationsData MigrationAI Web ContextAgentic Checkout

Resources

DocsBlogData for AI LabsCase StudiesVideosNewslettersChangelogPricingAppSumoDemoAffiliate

Company

TeamContactGCP PartnerWhat We BelieveSecurityPrivacyTerms

Developers

APIMCPCLI & SDKTemplatesIntegrationsWhatsApp

Compare

ApifyBardeenBrowserbaseBrowser UseClayClaudeCometFirecrawl
Products
Browser ExtensionCloudRoverData & Evals
Use cases
Vibe ScrapingLead EnrichmentForm FillingWeb MonitoringSocial MediaJob ApplicationsData MigrationAI Web ContextAgentic Checkout
Resources
DocsBlogData for AI LabsCase StudiesVideosNewslettersChangelogPricingAppSumoDemoAffiliate
Company
TeamContactGCP PartnerWhat We BelieveSecurityPrivacyTerms
Developers
APIMCPCLI & SDKTemplatesIntegrationsWhatsApp
Compare
ApifyBardeenBrowserbaseBrowser UseClayClaudeCometFirecrawl
BACKED BYNVIDIA InceptionGoogle Cloud for StartupsBright DataNEC XSalesforce LaunchpadElevenLabs GrantsGMI CloudComposioSmallest.ai Grants
DISCOVERYllms.txtllms-full.txtagents.mdDocumentation indexSitemapOpenAPIAI Catalog
© 2026 rtrvr.ai · Retriever AI on socials
DiscordYouTubeInstagramTikTokLinkedInXGitHub
support@rtrvr.ai