TradingGoose-Studio is an open-source, AI-native trading analysis and automation system.
Build your own AI trading system by composing workflows that analyze market signals and portfolio state, then act through approvals, alerts, connected services, or brokers.
Monitor β Analyze β Execute β Review
Built for traders, indicator authors, workflow builders, and self-hosting teams that want control over how automation makes and executes decisions.
flowchart LR
BUILD["1 Β· Build & deploy<br/>Create your AI trading workflow"] --> MONITOR["2 Β· Configure a monitor<br/>Choose a trigger source"]
MONITOR --> MARKET["Market signal<br/>Indicator condition"]
MONITOR --> PORTFOLIO["Portfolio state<br/>Account or position condition"]
MARKET --> RUN["3 Β· Signal matches<br/>The AI workflow analyzes and decides"]
PORTFOLIO --> RUN
RUN --> OUTCOME["4 Β· Configured outcome<br/>Approve Β· alert Β· service Β· broker action"]
Four product surfaces work together to turn market context into a controlled AI trading system.
|
Organize the views and tools for a trading process in saved layouts. |
Use one system for market-data indicator events and connected-broker portfolio or position conditions. Both trigger deployed workflows. |
|
Compose AI agents with market context, tools, rules, conditions, and approvals on a visual canvas. |
Run the alerts, service calls, or broker actions you configure and review each execution. |
| Capability | What you can do |
|---|---|
| Custom market views | Pair charts, watchlists, portfolios, and orders in saved layouts. |
| Indicator authoring | Use built-in studies or PineTS scripts, then reuse them as signal inputs. |
| Context-rich agents | Give agents market, portfolio, knowledge, memory, and tool context. |
| Deterministic controls | Route, loop, run in parallel, wait, branch on conditions, and require approval. |
| Connected actions | Use Alpaca or Tradier, APIs, SDKs, webhooks, and MCP from the same system. |
| Run history | Inspect streamed outputs, execution logs, and order records after every run. |
| Without TradingGoose-Studio | With TradingGoose-Studio |
|---|---|
| β Market context, portfolio state, AI analysis, and actions live in separate tools. | βοΈ One workspace connects them through monitors and workflows. |
| β An indicator can tell you something happened, but not what to do next. | βοΈ Monitor events feed a workflow that can analyze, gate, alert, or act. |
| β AI trading logic is trapped in prompts or one-off scripts. | βοΈ Build and deploy a visual AI trading system you can inspect and change. |
| β Automation can act without a clear review point. | βοΈ Put rules and approvals in the workflow and inspect each execution. |
| β You have to accept a fixed strategy or hosted stack. | βοΈ Bring your data, models, tools, and broker connections and define your own system. |
This is the build kit already included in TradingGoose-Studio. Canvas types and agent actions are counted separately: the action total only includes built-in tools the Agent runtime can resolve.
| 151 user-addable canvas types | 15 core blocks, 124 tool blocks, 10 trigger blocks, and loop and parallel control-flow containers. |
| 10 trigger types | Start workflows from manual or input runs, schedules, APIs, chats, webhooks, RSS or IMAP, indicator events, and portfolio-state conditions. |
| 254 agent-callable actions across 71 integrations | Give agents market research, data, communications, storage, web access, and configured trading actions. |
| 86 built-in PineTS studies | Use them in charts, Copilot, and Function blocks; author or import a trigger-enabled indicator when a market monitor should start a workflow. |
| 4 market-data providers | Alpaca, Finnhub, Alpha Vantage and Yahoo Finance. All support series; Alpaca and Finnhub also provide live data. |
| 2 trading providers | Alpaca and Tradier provide portfolio context and configured order actions. |
| 16 AI providers | Choose from direct, cloud, and local model-provider options for agents. |
Connect the credentials, endpoint, or broker account required by each provider. Custom tools and connected MCP servers are workspace-specific, so they are deliberately not included in the fixed counts above.
| Provider adapters β AI providers, market-data feeds, and trading services are exposed through consistent interfaces for models, market context, portfolio state, and broker accounts. | Indicator runtime β PineTS compilation, series normalization, local or sandboxed execution, and trigger detection turn custom indicator code into reusable signals. |
| Workflow executor β Versioned definitions run through agent, function, condition, router, loop, parallel, wait, trigger, and response handlers, with background jobs and streamed run events. | Persistence and extension boundary β PostgreSQL and Drizzle persist workspace, workflow, monitor, run, and order state; Redis, Socket.IO, and Yjs synchronize it; APIs, SDKs, MCP, webhooks, and custom tools extend it. |
The Copilot-MCP allows Claude Code, Cursor, OpenCode, Codex, Antigravity, or Gemini CLI to control/edit your TradingGoose workspace. It requires Node.js 18 or newer and access to the TradingGoose instance.
Choose your platform and open only the instructions you need.
macOS / Linux / WSL
curl -fsSL https://tradinggoose.ai/mcp/setup | shFor a self-hosted instance, replace https://tradinggoose.ai with its URL, such as http://localhost:3000.
Windows PowerShell
irm https://tradinggoose.ai/mcp/setup | iexFor a self-hosted instance, replace https://tradinggoose.ai with its URL, such as http://localhost:3000.
The setup endpoint opens an interactive target picker. Append a supported target to configure it directlyβfor example, `/mcp/setup/codex`. Self-hosted MCP setup requires `API_ENCRYPTION_KEY`.
What can the Monitor system watch?
It supports two sources: indicator events from market data, and conditions on a connected broker account's portfolio or positions. Both sources can start a deployed workflow.
Can I build my own AI trading system?
Yes. Compose monitors, AI agents, tools, rules, approvals, and actions into a system shaped around your own strategy. Deterministic conditions and approvals remain available as controls around the AI analysis.
Can TradingGoose place trades automatically?
Only when you explicitly configure a workflow and connect a broker account. TradingGoose does not place trades on its own and is not financial advice.
Can I write my own indicators?
Yes. Use the built-in studies or author custom indicators with PineTS, then use their events as monitor inputs.
Can I self-host it?
Yes. Run the repository locally or deploy it on your own infrastructure with your own database, credentials, and integrations.
Installation
Requires Bun 1.3.14, Node.js 24.x, and Docker. The repository pins Bun 1.3.14.
git clone https://github.com/TradingGoose/TradingGoose-Studio.git
cd TradingGoose-Studio
bun install
cp apps/tradinggoose/.env.example apps/tradinggoose/.env
cp packages/db/.env.example packages/db/.env
docker run --name tradinggoose-db --env POSTGRES_USER=postgres --env POSTGRES_PASSWORD=postgres --env POSTGRES_DB=tradinggoose --publish 5432:5432 --detach pgvector/pgvector:pg17
docker run --name tradinggoose-redis --publish 6379:6379 --detach redis:7.2.1-alpineSet DATABASE_URL="postgresql://postgres:postgres@localhost:5432/tradinggoose" in both environment files. Replace the BETTER_AUTH_SECRET, ENCRYPTION_KEY, and INTERNAL_API_SECRET placeholders in apps/tradinggoose/.env with separate 64-character hexadecimal values. Set API_ENCRYPTION_KEY too if you will use API keys or MCP.
bun run db:migrate
bun run dev:fullOpen http://localhost:3000. The realtime service runs on port 3002.
Repository checks
Run these from the repository root:
bun run build
bun run test
bun run type-check
bun run lint:check
bun run format:check
bun run docs:auditTech stack
| Area | Technologies |
|---|---|
| Framework | |
| Runtime | |
| Database | |
| Authentication | |
| UI | |
| State | |
| Realtime | |
| Flow editor | |
| Documentation | |
| Monorepo | |
| Background jobs | |
| Remote execution | |
| Charting | |
| Indicator engine | |
| Drawing tools |
Pull requests are welcome.
If you want to improve TradingGoose-Studio, fix a bug, tighten the docs, or ship an idea that makes the platform better for traders and builders, open a PR. Small, focused changes are preferred and easier to review.
This project is moving quickly and is expected to have bugs and frequent breaking changes. Contributors should expect the codebase, interfaces, and workflows to change often, sometimes week to week.
- Read the Contributing Guide for setup, workflow, and PR expectations.
- Review the Code of Conduct before participating in project spaces.
- Follow the Security Policy when reporting vulnerabilities.
- Open an issue first if you want feedback on larger changes or architecture work.
TradingGoose-Studio is licensed under AGPL-3.0. See LICENSE for the complete terms and NOTICE, THIRD-PARTY-LICENSES, and LICENSES for third-party notices and license texts.
The combined project remains AGPL-3.0 so users can use, study, modify, self-host, and redistribute it under the same terms. TradingGoose-Studio integrates PineTS under its AGPL terms; the corresponding attribution and license text are preserved in the repository.
Apache-2.0 notices and the full text for included Apache-licensed components are preserved in LICENSES/Apache-2.0.txt and THIRD-PARTY-LICENSES.
The chart drawing tools vendored in apps/tradinggoose/widgets/widgets/data_chart/plugins/ carry their own MPL-2.0 license. Those modified source files remain covered by MPL-2.0 at the file level; the repository-level AGPL-3.0 distribution does not replace those terms.