Guide
Connect a dataset once, iterate on it forever
Connect a file into the core once, then have your agent run analyses against it repeatedly. Use `info` to keep the agent oriented across turns.
5/18/2026 · connect0 · 4 min
Connect a dataset into the core once and it stays there — every future turn and session your agent picks up right where it left off.
The most common upload pattern isn't "drop a file, get an answer, done." It's "drop a file, then have an iterative back-and-forth where every step touches that file." Here's how to set it up so the agent doesn't lose its bearings between turns.
The setup
> I'm going to share a sales CSV with you. Make me an upload link.
Agent calls upload.create_link. You PUT the file via curl or the browser helper.
> Verify it landed and tell me the column names.
Agent calls info with your slugs and sees recent_uploads[0].status === "claimed". Then sh "head -1 /workspace/data/sales.csv".
Why this works
Between turns, the agent doesn't "remember" your file in the LLM sense — it has the conversation, but it doesn't carry filesystem state in its head. What it does have is info. Every call returns:
recent_commands— the last 10shcalls and their exit codes.recent_uploads— the last 10 upload-link rows (including claim status).warmed_at— when the sandbox last saw activity.
So an agent that starts a new conversation in the same project can info and instantly reorient: "we already uploaded sales.csv, the last command was a head that exited 0, it's fine to continue analyzing."
A long-running session looks like this
upload.create_link→ user PUTs.sh "wc -l /workspace/data/sales.csv"→ get a sense of scale.sh "python -c 'import pandas as pd; df = pd.read_csv(\"/workspace/data/sales.csv\"); print(df.dtypes)'".- (user asks a question)
sh "..."→ answer.- (many more turns)
info→ confirm we're still on track.
The file is persistent — R2 prefix isolation means it sticks around for the project's lifetime. You don't re-upload it next week.
When to re-upload
- File contents changed on your end (new export, fixed data quality issue).
- You want a clean baseline (overwrite + verify).
Just call upload.create_link again with the same target_path. R2 replaces the object; the audit ledger gets a new row. Old links are still valid until they expire — typically not a concern because they're tied to a content-length you don't expect to match.
Egress and iteration
If your project's egress = restricted (the default), the agent can pip install, fetch from PyPI, run network analyses inside the sandbox, as long as those targets allow it. Most package indexes don't. Flip to egress = open from the dashboard if you need general internet access during analysis.
Next steps
Where this fits
This is the Connect everything pillar of connect0 — the core that connects everything your company runs on. Once data is connected into the core it persists, so your agent treats it as a standing source it can revisit turn after turn without re-uploading. Start building → · All guides →