Skip to content

Source Library

Every system REACH can reach into. Claude chooses the right library for each source — you declare the source name, Claude handles the connection.

The rule for browser sources: if curl would return what you need, REACH uses HtmlAgilityPack (fast, no browser process). If the page requires JavaScript or interaction, REACH uses Playwright (full headless Chromium).


Outlook

Talks directly to your running Outlook instance via COM Interop. No API keys, no Graph auth, no tokens. Works because Outlook is already open.

SourceWhat it reaches
outlook.inboxInbox — filter, count, group by sender/subject/date
outlook.sentSent items — communication cadence from your side
outlook.calendarCalendar entries — meetings, appointments, events
outlook.folderAny named folder — Deleted Items, custom folders
outlook.draftCompose an email (does not send until instructed)
outlook.sendSend the composed draft (always preceded by a prompt gate)
outlook.meetingCompose a meeting invite

Performance: 3-8s cold, 1-2s warm.


Git

Reads git history. Runs in the current directory or a specified path. No GitHub API — direct git log.

SourceWhat it reaches
git.commitsCommit history — cadence, after-hours %, velocity
git.logRaw log with custom shape — author, date, message

After-hours analysis — when analyze after-hours is specified, Claude splits commits by time of day and calculates the percentage outside core hours (9am–6pm). The benchmark (benchmark 15%) turns the number into a verdict.

After-hours %RPM stateWhat it signals
0–15%🟢 GreenSustainable — occasional late push, not a pattern
15–25%🟡 YellowWatch — creeping into personal time regularly
25–30%🔴 RedRunning hot — recovery needed
30%+🔴🔴 All redStructural overflow — open valley week essential

Screen

Captures exactly what's visible. Returns an image path — Claude reads it inline and reasons about what it sees.

SourceWhat it reaches
screenFull screen capture
screen.windowSpecific named window
screen.regionDefined pixel region

Performance: 3-5s cold, under 1s warm. Fastest reach available.

When to use: UI review, deployment state, errors on screen, anything that words don't capture efficiently. Claude reaches for this itself when it determines it needs to see something.


Browser

SourceWhen to useLibrary
browser.pagePage requires JavaScript, SPA, dynamic contentPlaywright — headless Chromium
browser.authLogin flow before reaching target pagePlaywright
http.getStatic page or REST endpointHttpClient built-in
http.postPost to a REST endpointHttpClient built-in

Performance: Playwright — 10-20s cold, 6-10s warm. HtmlAgilityPack / HttpClient — near-instant.

Playwright capabilities:

  • Navigate to any URL, wait for specific CSS selectors
  • Extract text, tables, links from rendered DOM
  • Screenshot full page or specific element
  • Fill forms, click buttons, navigate through auth flows
  • Persist session cookies across steps

Database

SQL Server queries across named environments. No hardcoded connection strings — Claude maps environment names to connections from your CLAUDE.md.

SourceWhat it reaches
db.queryRun a SQL query, return results in specified format
db.tableInspect a table — schema, row count, sample data

Environment namesenv dev, env staging, env prod — mapped in CLAUDE.md:

csharp
var environments = new Dictionary<string, string>
{
    ["dev"]     = "Server=your-dev-server;Database=YourDb;Integrated Security=true;",
    ["staging"] = "Server=your-staging-server;Database=YourDb;Integrated Security=true;",
    ["prod"]    = "Server=your-prod-server;Database=YourDb;Integrated Security=true;"
};

Files

SourceWhat it reaches
file.readRead .txt, .docx, .pdf — extract as plain text
file.mergeMerge multiple files into one
file.watchWatch a folder for new files, signal on arrival
file.writeWrite findings to a file

Document libraries:

  • .docxDocumentFormat.OpenXml (official Microsoft, handles all Word internals)
  • .pdfPdfPig for text extraction; iTextSharp if layout matters

UI Automation

Interacts with a running application's UI control tree via Windows UIAutomation. Reads the actual control hierarchy — names, types, values. No screenshots needed for structured data.

SourceWhat it reaches
ui.windowAny running desktop application
reach ui.window "OUTLOOK"
  find      name "Inbox"
  read      items
  output    list

Library: FlaUI — wraps Windows UIAutomation cleanly. Finds controls by name, type, or automation ID. Clicks buttons, reads list items, types into fields.


Process

SourceWhat it reaches
process.launchLaunch an application
process.signalWrite a signal file for inter-reach communication

Timesheet

Posts entries to your organization's timesheet system. Always preceded by a prompt gate — never posts silently.

SourceWhat it reaches
timesystem.timesheetDraft timesheet entries from git + calendar analysis
timesystem.postPost reviewed entries

CI/CD

SourceWhat it reaches
ci.pipelineWatch a CI/CD pipeline URL for status changes
ci.error-logRead error output from the most recent pipeline run

How Claude Chooses Libraries

Claude selects the least-friction library for the task. Built-ins first.

SituationClaude reaches for
File is .docxDocumentFormat.OpenXml — official, handles all Word internals
File is .pdfPdfPig for text, iTextSharp if layout matters
Outlook is openCOM Interop — no auth, talks to live instance directly
SQL Server queryMicrosoft.Data.SqlClient — modern, works across all environments
UI interaction neededFlaUI — wraps Windows UIAutomation cleanly
Screen captureSystem.Drawing built-in — no package, fastest reach
Page needs JavaScriptMicrosoft.Playwright — real headless Chromium
Page is static HTMLHtmlAgilityPack — fast, no browser process
Simple HTTP / RESTHttpClient built-in — no package needed
Structured outputSystem.Text.Json built-in, or CsvHelper for CSV