Skip to content
investiDocs

Uploads, playbook and memory

Upload any file and Investi checks what it is and puts it in the right place; strategy documents become your playbook, and everything you share is remembered.

On this page

You can hand Investi any file: a Schwab export, a screener export, a strategy document, a statement, an article, a spreadsheet, a picture. Investi checks what the file really is, does the right thing with it, tells you what it did, and remembers it for every later analysis and chat.

Upload with the paperclip in the analysis panel, by dropping files anywhere on that panel, or under Settings > Uploads.

What happens to a file#

Files can be up to 20 MB. The type is read from the file's bytes, not its name or extension: a PDF renamed .csv is still read as a PDF, and a program renamed .csv is stored and never opened. Then each file goes to one place:

The file is What Investi does What you see
A Schwab Order Status, trade history (CSV or JSON) or Positions export Runs the same importer as Import history, into the account named in the file, your only account, or a new "Schwab account" The same counts as Import history, for example "12 new orders · 0 updated · 0 unchanged · 17 rows read (Schwab Order Status) into Schwab ...782."
A Schwab stock screener export or a Finviz export Saves its rows as screen candidates "Imported 48 screener rows (Finviz export)."
A strategy or rules document (PDF, Word, Markdown or text) Reads its rules into your playbook "Saved as playbook: 7 rules, 2 proposed settings changes."
Anything else with text (notes, a statement, an article, JSON, a spreadsheet) Summarizes it once and keeps its text so you can attach it in the chat "Stored, attachable in chat."
An image or a zip Stores it; the AI does not read pictures yet "Stored." with the reason
A file with no readable text (damaged, password protected, a scan) Stores it with the reason "Could not read this file: ..."

An .xlsx export is read as its first sheet, so a Schwab or Finviz export saved from Excel is imported like the CSV. A file is never dropped silently: each upload is listed in Settings with its status and what was done.

The same file twice is one upload. Investi recognizes it by its contents (a SHA-256 fingerprint), shows the earlier result, and does not run an importer again.

Deleting an upload removes the file and what Investi remembers from it. Records an import already added stay in your ledger; remove those under Settings > Import history.

If a document was stored as a document but is really your strategy, choose Use as playbook on it in Settings.

Your playbook#

The playbook is your own investing rules, saved to your account. Investi builds it when you upload a strategy document, and you can add, edit or delete rules in Settings > Playbook. Each rule is one of two kinds:

  • Guides analysis. A rule in your words, such as "Never use margin for new buys." These are sent as "Your playbook" with every analysis and every chat, and the AI names the rule it applied.
  • Proposed setting. A rule that sets a number your strategy rules already have, such as a standard position of $25,000. These are never applied on their own. Settings shows the current value next to the proposed one, for example $50,000 → $25,000, with an Apply button. Applying writes a new strategy-rules version through the same checks as the strategy-rules form, so a value out of bounds or inconsistent with another threshold is refused with the reason. Once the policy has that value, the rule reads In effect.

Every change to the playbook is a new version. Earlier versions are kept: pick one under History to view it and Restore this version to make it current again.

Memory#

Memory is what Investi knows about you from what you have shared: one line for every upload (its summary and key facts, or what was imported), your playbook rules, and anything you ask the chat to remember. Every analysis and chat receives it as "What you have told me", as background about you, never as instructions.

In Settings > Memory you can add a line, edit or remove any line, undo a removal from Recently removed, and Clear memory with one confirmation (with an Undo right after). Each line shows where it came from (Upload, Chat, Playbook or You) and when.

Changing memory from the chat#

You can ask the chat directly:

  • "Remember that I never buy biotech."
  • "Forget the Q3 statement."
  • "Add never hold more than five names in one sector to my rules."
  • "Change memory mem_... to I never buy biotech or pharma."

The answer confirms each change on its own line, such as "Saved to memory: I never buy biotech" or "Removed from memory: ...". If what you named matches more than one thing, the chat asks which one instead of guessing.

A change is made on the spot only when all of these hold:

  • your own message asks for that kind of change ("remember" or "add" to save, "forget", "remove", "delete", "drop" or "erase" to remove);
  • the text saved is taken from your message itself, and something removed is named by your message (by its id, or by at least two specific words that match exactly one entry); at most one removal per message;
  • no file was attached in the conversation;
  • you are signed in to the app, or your token has workspace:write.

Anything else the AI suggests is shown under its answer as a proposal with Confirm and Dismiss, and nothing changes until you choose. Text inside a file, or a line already in memory, can never make a change by itself.

Where memory is stored#

Memory always lives in Investi's database with the rest of your records, so Settings, undo and every analysis work without any outside service.

A server can also connect Supermemory for better recall in the chat, by setting SUPERMEMORY_API_KEY. Then each account has its own Supermemory space, named by your Investi user id (never your email), and every line is written to it and deleted from it as it changes in Investi. What is sent to Supermemory: each memory line's text and its labels (kind, source, source reference, your Investi user id and the line's id). Never your files, your password, tokens or broker credentials. The chat searches that space for the lines most relevant to your question; a line removed in Investi is never used even if the outside copy lingers. Without the key, recall is a plain word match over your lines. Settings shows which mode is on under Data sources and status.

Safety#

  • Files are stored under your account only (Vercel Blob in production, the local data folder on a self-hosted or desktop install). Every read checks the owner; another account gets "not found".
  • Files are never run. Spreadsheet cells are read as text and formulas are never evaluated.
  • Parsers are bounded: PDF reading is limited to 150 pages, a spreadsheet stops at 50,000 rows, a million cells or 4 million characters, and a file that would inflate past 20 MB is refused as too large to read. A file a parser cannot read is stored with that status.
  • File text reaches the AI inside a clearly marked block, and the AI is told it is data, never instructions.
  • Uploading never trades. Investi never places, changes or cancels orders.