Web Dashboard · Schwab API

Risk management that never blinks

Sentinel watches your Schwab positions in real-time and enforces your limits automatically — so a bad trade doesn't become a blown account.

Get started →
What it does

Sentinel connects to your Schwab account and watches every position while the market is open.

When something exceeds your limits — too many contracts, a position down too much, a bad day crossing your threshold, or a ticker you've blocked — Sentinel acts immediately, not after you notice.

Sentinel is hosted and managed by CGTU. You connect your own Schwab account and set your own limits. Nothing is shared between users. During market hours, limits can only be tightened and Sentinel cannot be stopped or unlinked.

How Sentinel compares

Against other tools in the space

Feature Sentinel Tool 1 Tool 2 Tool 3 Tool 4
Works with Schwab retail ~
Enforcement-first (not execution)
Platform independent — enforces regardless of where you trade
Runs independently — no desktop required
Cannot be bypassed mid-session
Per-position loss limits ~
Daily loss kill switch ~ ~
Ticker blocking
Time-based trading windows
Web dashboard (Discord optional) ~
Buying power limits
Free to start

✓ Supported  ·  ~ Partial or limited  ·  ✗ Not supported

Security & Trust

Your account.
Your access.
Your control.

Giving any third-party tool access to your brokerage account is a serious decision. We built Sentinel with that trust in mind — here is exactly how it works, with no vague reassurances.

✓ OAuth only

We never see your password

Connecting Sentinel uses Schwab's official OAuth flow — the same mechanism used by any trusted app. You log in directly on Schwab's own login page. Your username and password never touch Sentinel at any point.

✓ No withdrawals possible

Sentinel cannot move your money

The Schwab API does not permit fund transfers. Sentinel can open and close positions, but it is technically impossible for it to withdraw, transfer, or move funds out of your account. This is a hard constraint enforced by Schwab, not a policy.

✓ Per-user isolation

Your token is yours alone

Every user's Schwab connection is stored and handled independently. No other user's Sentinel instance has any access to your account — not read access, not trade access, nothing.

✓ Enterprise infrastructure

Hosted on enterprise-grade cloud

Sentinel runs on enterprise-grade cloud infrastructure — no shared hosting, no cheap VPS, no shortcuts. Your credentials and account data are not stored beyond what is required to maintain the API connection.

✓ Fully revocable

You can disconnect anytime — from Schwab's side

You can revoke Sentinel's access directly from your Schwab account settings at any time, completely independently of Sentinel itself. You do not need to contact us or do anything on our end. Your access, your revocation.

The full feature set

Every limit.
Every position.
Always watching.

Sentinel enforces every one of these in real time while the market is open. Set them once when you're thinking clearly — Sentinel holds them when you're not.

Option contracts per position
Closes the position down to your limit the moment it's exceeded.
Shares per position
Same enforcement for equity positions — trims to your configured share cap.
Buying power per position
Closes any single position whose BP usage exceeds your per-position ceiling.
Total buying power used
If aggregate BP exceeds your total, Sentinel closes the most recently opened positions until you're back within limit.
Max open positions
Closes the smallest positions until you're at or below your configured maximum.
Single-position loss
Closes any position the moment its unrealized loss crosses your threshold.
Daily loss — kill switch
When total daily loss hits your ceiling, Sentinel cancels all open orders and closes every position. Trading is done for the day.
Triggers kill switch
Blocked tickers
Force-closes any blocked ticker as soon as it's detected and cancels all associated orders.
Instant on detection
Time-block windows & lockout
Flattens positions and cancels orders within defined ET time windows or after a manual lockout. Clears automatically at market close.
Hard stop automation
Places automatic stop orders on long positions at your configured level.
Profit target orders
Closes a position automatically when it reaches your defined profit target.
Automatic breakeven stop
Once a position hits your profit target, your stop moves to breakeven — you can't lose on a trade that was already up.
Loss-to-breakeven trigger
If a position falls below a set threshold, the target order moves to breakeven. If you have a chance to get out clean, take it.
Trailing profit protection
Trails a stop behind a profitable position as it moves in your favor — locking in more as it runs.
Elite only
Per-position protection
Configure protective orders individually for each position rather than applying them globally.
Elite only

Ready to get started?

Set up Sentinel in minutes from the dashboard.

Link your Schwab account, configure your limits, and arm Sentinel — all in one place.

Open Dashboard →
Billing
!guard subscribe
Start a subscriptionDMs you a Stripe checkout link. Every plan starts with a free Elite trial — billing begins when the trial converts.
!guard manage
Manage billingUpdate your card or view past invoices.
!guard cancel
Cancel subscriptionCancels at the end of the current billing period.
Setup & linking
!guard link
Connect your Schwab accountDMs you a private OAuth link. Credentials never appear in a public channel.
!guard auth <url>
Finish linkingPaste the redirected URL after logging in to Schwab (DM only).
!guard reauth
Re-authenticate SchwabDo this weekly — the Schwab link expires every 7 days. The dashboard can do this in one click.
!guard set <name> <value>
Set a single limitNames: options, shares, positions, totalbp, posbp, singleloss, dailyloss. Set to 0 to disable. e.g. !guard set options 10
!guard setup <opt> <loss> <daily>
Quick 3-in-one setupSet option contracts, single-position loss, and daily loss limit in one command.
!guard limits
View all your limitsShows every configured limit and its current value.
!guard unlink
Disconnect SchwabRemoves your account connection. Blocked during market hours.
Protection & exits
!guard protect <name> on|off
Protective orders (long only)Names: hardstop, target, be20, protect50, lossbe. e.g. !guard protect hardstop on, !guard protect target 100
!guard protect accountfloor <$>
Account floorIf net liquidation value falls below $X, Sentinel flattens everything and locks out for the day.
!guard trailing on|off
Trailing profit lockLocks in gains once given back. Tune with arm <$|always>, trail <$ or N%>, action flatten|lock.
!guard perposition on|off
Per-position modeDefault protects every open position. Turn on to protect only the positions you enact (confirmation required).
!guard enact <symbol>
Enact a positionIn per-position mode, protect one specific position. It stays protected until you exit it or market close.
Blocking & windows
!guard block <ticker>
Block a tickerForce-closes any position in that ticker on sight and cancels its orders. Multiple tickers can be listed.
!guard unblock <ticker>|all
Remove a blockLifts the block on a ticker or all tickers. Locked in market hours.
!guard timeblock <ticker|all> <HH:MM> <HH:MM>
Time-based blockFlattens and cancels a ticker's positions within a specified ET window each day.
!guard untimeblock <ticker|all>
Remove time blockClears the time window for a ticker or all tickers. Locked in market hours.
!guard lockout
Done for the dayFlattens all positions and blocks any new trades for the rest of the session.
!guard unlock
Lift lockoutRemoves the day lockout. Only available after market close.
Control
!guard start
Arm SentinelBegins real-time monitoring. Sentinel will enforce all configured limits until stopped or market closes.
!guard stop
Disarm SentinelPauses monitoring without closing positions. Blocked during market hours.
!guard status
Positions & P&LDMs you a full snapshot of open positions and current P&L.
!guard events
Recent actionsDMs you the last 10 force-closes and kill switch triggers.
!guard kill
Emergency closeCancels all open orders and closes every position immediately with market orders. Always available, even during market hours.
!guard publish #channel
Public position feedPosts your positions and fills to a specified channel hourly.

Suggest a feature

Sentinel is built by traders for traders. If something would make it more useful for how you actually trade, we want to hear it.

No idea is too small — whether it's a new limit type, a command, a notification style, or something Sentinel should do that it doesn't yet.