Examples
Use cases
Real problems Parlo solves. Give agents any API with no SDK, debug across services, and analyze full datasets as files.
Parlo turns APIs and cloud files into one thing every human, script, and agent already understands: a filesystem. Here are the problems that solves, end to end.
Give a coding agent any API, in 30 seconds, no MCP server
Problem: To let an agent use a new API, you normally find or write an MCP server, wire up its tools, and hope the schema fits in context. Every new service is another integration project.
Solution: Connect once. The agent uses commands it already knows. No SDK, no MCP server, no tool definitions.
1parlo connect stripeNow any agent with a shell just explores:
1cat ~/parlo/stripe/README.md # how this mount is laid out2ls ~/parlo/stripe/charges/3cat ~/parlo/stripe/charges/recent.jsonl # latest items, one JSON object per line4grep -R "refunded" ~/parlo/stripe/charges/The agent never imported a schema, registered a tool, or learned an SDK. Connect any API. Use it as files.
Debug a bug that spans three services
Problem: A billing bug touches GitHub, Linear, and Stripe. That means three SDKs, three auth flows, and a pile of tool descriptions burning context before any real work starts.
Solution: Every service is a folder. One grep crosses all of them.
1parlo mount2cd ~/parlo3 4grep -R "billing\|invoice\|subscription" github/issues linear/issues | head5cat github/issues/42.md6cat linear/issues/ENG-123.md7cat stripe/customers/cus_8x92.md8 9# Write the finding back to a cloud-backed drive.10mkdir -p main/reports11echo "Cause: subscription cache stale after Stripe webhook" > main/reports/billing-bug.mdAnalyze a full dataset with SQL, no ETL pipeline
Problem: You want to run analytics over every charge, issue, or event. The API caps each request at one page, so you would normally build a paginating exporter and somewhere to put the rows.
Solution: Read all.jsonl. Parlo paginates the upstream API in the background and materializes the whole dataset as JSONL. It is just a file. Pipe it into any tool you already use.
1# First read may return "building" while Parlo paginates. Retry after ~30s.2cat ~/parlo/stripe/charges/all.jsonl | jq -s 'map(.amount) | add'3 4# Hand it to DuckDB, pandas, or anything that reads JSONL.5duckdb -c "SELECT status, count(*) FROM read_json_auto('~/parlo/stripe/charges/all.jsonl') GROUP BY 1"No exporter to write, no warehouse to provision. The data lake builds itself.
Stay synced without re-pulling everything
Problem: Once you have the full export, new data keeps arriving. Re-downloading everything on every run is slow and wasteful.
Solution: Read the incremental export for only what changed since a given date.
1cat ~/parlo/stripe/charges/since-2026-05-01.jsonl | jq -s 'length'Use all.jsonl for the full picture and since-{date}.jsonl for the delta. Both are materialized by Parlo, both are just files.
Search a giant repo without cloning it
Problem: You need to grep a huge codebase (v8, the Linux kernel) but cloning locally is slow, and recursive grep over a network mount is painful.
Solution: parlo rg runs ripgrep next to cached repo data, so heavy search happens server-side.
1parlo rg "TODO" vercel/next.js --path packages2parlo rg malloc -t cpp v8/v8 --statsRun agents in CI and sandboxes without a mount
Problem: Your agent runs in a container or CI job where FUSE mounting is not available.
Solution: The same paths work through direct CLI ops, no mount required.
1parlo connections2parlo ls github/issues/3parlo cat linear/ENG-123.md4parlo write linear/ENG-123.md --from ./updated.mdWhere to go next
| Goal | Read |
|---|---|
| Install Parlo | Quickstart |
| Connect an API | API connections |
| Drive an agent | Coding agents |
| Search codebases | Codebase search |