archon-bridge
$
npx mdskill add taracodlabs/aiden/archon-bridgeAggregates portfolio and routes orders across Zerodha, Upstox, and Angel One
- Provides unified view of holdings and P&L across multiple Indian brokers
- Uses Kite, Upstox, and Angel One APIs for data and order execution
- Routes orders to the broker with optimal margin or execution conditions
- Returns normalized portfolio data and confirms order execution status
SKILL.md
.github/skills/archon-bridgeView on GitHub ↗
---
name: archon-bridge
description: Unified portfolio + order routing across Zerodha, Upstox, Angel One
category: india
version: 1.0.0
tags: archon, broker, portfolio, aggregation, zerodha, upstox, angel, india, trading, unified
license: Apache-2.0
---
# Archon Bridge
Unified broker bridge that aggregates portfolio data and normalizes order routing across multiple Indian brokers — Zerodha Kite, Upstox, and Angel One — into a single consistent interface.
## When to Use
- User has accounts on multiple Indian brokers and wants a unified view
- User asks "what's my total portfolio across all brokers?"
- User wants to compare holdings or P&L across Zerodha and Upstox
- User needs a normalized order format regardless of which broker to use
- User asks Aiden to route an order to the broker with better margin or execution
## How to Use
### Aggregate portfolio from multiple brokers
```powershell
# Requires env vars: KITE_API_KEY, KITE_ACCESS_TOKEN, UPSTOX_TOKEN
function Get-KiteHoldings {
$h = @{ "X-Kite-Version"="3"; "Authorization"="token $env:KITE_API_KEY:$env:KITE_ACCESS_TOKEN" }
(Invoke-RestMethod -Uri "https://api.kite.trade/portfolio/holdings" -Headers $h).data |
Select-Object @{N='symbol';E={$_.tradingsymbol}},
@{N='qty';E={$_.quantity}},
@{N='avg';E={$_.average_price}},
@{N='ltp';E={$_.last_price}},
@{N='broker';E={'Zerodha'}}
}
function Get-UpstoxHoldings {
$h = @{ "Authorization"="Bearer $env:UPSTOX_TOKEN"; "Accept"="application/json" }
(Invoke-RestMethod -Uri "https://api.upstox.com/v2/portfolio/long-term-holdings" -Headers $h).data |
Select-Object @{N='symbol';E={$_.tradingsymbol}},
@{N='qty';E={$_.quantity}},
@{N='avg';E={$_.average_price}},
@{N='ltp';E={$_.last_price}},
@{N='broker';E={'Upstox'}}
}
$all = @(Get-KiteHoldings) + @(Get-UpstoxHoldings)
$all | Sort-Object symbol | Format-Table -AutoSize
```
### Calculate total portfolio value across brokers
```powershell
$all = @(Get-KiteHoldings) + @(Get-UpstoxHoldings)
$total = ($all | ForEach-Object { $_.ltp * $_.qty } | Measure-Object -Sum).Sum
$cost = ($all | ForEach-Object { $_.avg * $_.qty } | Measure-Object -Sum).Sum
$pnl = $total - $cost
Write-Host "Total Value: ₹$([math]::Round($total,2))"
Write-Host "Total Cost: ₹$([math]::Round($cost,2))"
Write-Host "Total P&L: ₹$([math]::Round($pnl,2)) ($([math]::Round($pnl/$cost*100,2))%)"
```
### Find duplicate holdings across brokers
```powershell
$all = @(Get-KiteHoldings) + @(Get-UpstoxHoldings)
$all | Group-Object symbol | Where-Object Count -gt 1 |
ForEach-Object {
Write-Host "=== $($_.Name) ==="
$_.Group | Format-Table broker, qty, avg, ltp -AutoSize
}
```
### Normalize order parameters across brokers
```powershell
function New-ArchonOrder {
param(
[string]$Symbol,
[string]$Side, # BUY or SELL
[int]$Qty,
[string]$OrderType, # MARKET or LIMIT
[double]$Price = 0,
[string]$Broker # Zerodha or Upstox
)
if ($Broker -eq "Zerodha") {
return @{
tradingsymbol = $Symbol
exchange = "NSE"
transaction_type = $Side
order_type = $OrderType
quantity = $Qty
price = $Price
product = "CNC"
}
} elseif ($Broker -eq "Upstox") {
return @{
instrument_token = "NSE_EQ|$Symbol"
transaction_type = $Side
order_type = $OrderType
quantity = $Qty
price = $Price
product = "D"
validity = "DAY"
}
}
}
```
## Examples
**"Show my total equity portfolio across Zerodha and Upstox"**
→ Call both broker APIs, merge holdings, calculate combined value and P&L.
**"Do I hold Reliance in more than one broker?"**
→ Aggregate all holdings, group by symbol, find symbols present in multiple broker accounts.
**"Create a normalized order for buying 10 shares of HDFC Bank via Upstox"**
→ Call `New-ArchonOrder -Symbol "HDFCBANK" -Side "BUY" -Qty 10 -OrderType "MARKET" -Broker "Upstox"`.
## Cautions
- Each broker's access token must be refreshed daily — check token validity before aggregation calls
- Broker APIs may use different symbol formats (e.g., NIFTY vs NIFTY50) — normalize symbols before cross-referencing
- Never auto-route orders across brokers without explicit user confirmation of the target broker
- P&L calculations use last traded price — may differ slightly from official broker statements due to corporate actions
More from taracodlabs/aiden
- ade-footerInstalled skill — add instructions here
- censysCensys lookups: hosts, certificates, services on the public internet
- clipboard-historyRead/write Windows clipboard text, HTML, images, history (PowerShell)
- code_executionRunning scripts and code on Windows
- create_txt_fileCreates a text file with specified content at a given path
- crt.shEnumerate subdomains and TLS certs via CT logs (no API key needed)
- currently_running_processesShow me my currently running processes.
- cveapiCVE lookup via MITRE + NVD: severity, CVSS, affected products, refs
- decrease_volume_littleDecreases the system volume by a small amount.
- defender-quickscanWindows Defender: scans, threat history, signatures (PowerShell)