Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>Portfolio AgentNew to Visual Studio Code? Get it now.
Portfolio Agent

Portfolio Agent

Jasen Mackie

|
1 install
| (0) | Free
Open portfolioagent.app chat and sync thread workspaces into VS Code for editing and running repro scripts.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Portfolio Agent — VS Code extension

Use the portfolioagent.app harness inside VS Code: chat in a sidebar or panel, sync thread workspace files into your open folder, edit repro scripts, and run them in the integrated terminal.

Quick start (local dev)

cd extensions/vscode-portfolio-agent
npm install
npm run compile

Press F5 in VS Code (Run Extension) with extensions/vscode-portfolio-agent as the workspace folder, or add a launch config at repo root.

Commands

Command What it does
Portfolio Agent: Sign In Browser sign-in (Clerk) — enables sync via BFF, no LangSmith key
Portfolio Agent: Sign Out Clear stored session
Portfolio Agent: Open Chat Hosted app in Simple Browser
Portfolio Agent: Set Active Thread ID Paste threadId from the web app URL
Portfolio Agent: Sync Thread to Workspace Pull files from LangGraph state → workspace folder

Settings

Key Purpose
portfolioAgent.webAppUrl Chat harness (default https://portfolioagent.app)
portfolioAgent.activeThreadId Deep-link chat + default sync target
portfolioAgent.langgraphDeploymentUrl Advanced: direct LangGraph URL (skip if signed in)
portfolioAgent.langsmithApiKey Advanced: direct mode only — prefer Sign In
portfolioAgent.syncOnSave Push workspace edits back to thread state (experimental)

Typical workflow

  1. Open a folder (e.g. my-analysis/).
  2. Portfolio Agent: Sign In (one-time per machine).
  3. Run analysis on portfolioagent.app.
  4. Click Open in VS Code or Set Active Thread ID.
  5. Sync Thread to Workspace → data/returns.csv, repro/*.R, etc. appear locally.
  6. Edit scripts, run in terminal: Rscript repro/optimize_portfolio.R.
  7. Optional: enable sync on save so the agent sees your edits on the next turn.

Architecture

┌─────────────────────────────────────────────────────────────┐
│ VS Code                                                      │
│  Sidebar (Setup)  ──commands──►  browser / Simple Browser chat │
│  Sync commands    ──LangGraph──►  workspace files locally        │
│  ┌──────────────┐   SDK       ┌──────────────────────────┐  │
│  │ Workspace    │ ◄──────────►│ LangGraph deployment     │  │
│  │ folder       │  getState   │ thread.values.files      │  │
│  └──────────────┘  updateState└──────────────────────────┘  │
│  ┌──────────────┐                                            │
│  │ Terminal     │  Rscript / python repro                   │
│  └──────────────┘                                            │
└─────────────────────────────────────────────────────────────┘

Phase 0 (this scaffold):

  • Chat = embed hosted app (full harness: plan approval, repro bar, teach feedback).
  • Sync = direct LangGraph SDK + operator API key (same as self-hosted / dev).

Phase 1:

  • Browser sign-in → extension token → call portfolioagent.app/api/langgraph (no raw key in settings).
  • Open in VS Code deep link from web app (thread id + one-click sync).

Phase 2:

  • Branded Code-OSS build with extension preinstalled (only if extension retention proves out).

Why not fork Code-OSS first?

The extension reuses 100% of your existing web harness for chat and HITL. The incremental value in VS Code is files + terminal + git — sync delivers that without maintaining a VS Code fork.

Related

  • MCP server: portfolio-agent-mcp (Telegram / other clients)
  • Web UI: frontend/deep-agents-ui
  • Publish: PUBLISHING.md
  • Deep links: vscode://JasenMackie.portfolio-agent/open?threadId=… (from portfolioagent.app)
  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft