Shadow Watch
"Like a shadow — always there, never seen."
Behavioral intelligence for your application. Add passive behavioral biometrics, personalization, and fraud detection with zero user friction.
What It Does
Shadow Watch silently learns user behavior patterns and uses them for:
- 🔐 Security: Behavioral biometric authentication (detects account takeovers)
- 🎯 Personalization: Auto-generates interest profiles based on activity
- 🤖 Intent Prediction: Understands what users care about without asking
- 🚨 Fraud Detection: Flags suspicious behavior before damage happens
Installation
# Basic installation
pip install shadowwatch
# With Redis support (recommended for production)
pip install shadowwatch[redis]
# With FastAPI integration
pip install shadowwatch[fastapi]
Get your free trial license: Email tanishqdasari2004@gmail.com or visit the license server
Quick Start
from shadowwatch import ShadowWatch
# Initialize with your database
sw = ShadowWatch(
database_url="postgresql+asyncpg://user:pass@localhost/db",
license_key="SW-TRIAL-XXXX-XXXX-XXXX" # Get trial at shadowwatch.dev
)
# Track user activity (silent, no UI)
await sw.track(
user_id=123,
entity_id="AAPL",
action="view"
)
# Get user profile
profile = await sw.get_profile(user_id=123)
# Returns: {"total_items": 42, "fingerprint": "a7f9e2c4...", "library": [...]}
# Verify login (trust score)
trust = await sw.verify_login(
user_id=123,
request_context={
"ip": "192.168.1.1",
"user_agent": "...",
"library_fingerprint": "..." # From client cache
}
)
# Returns: {"trust_score": 0.85, "risk_level": "low", "action": "allow"}
How It Works
- Silent Tracking: Every user action (views, searches, trades) is logged
- Interest Scoring: Actions aggregate into weighted interest scores
- Fingerprinting: Top interests generate a unique behavioral fingerprint
- Trust Calculation: Fingerprint mismatch = suspicious login attempt
Use Cases
Fintech Apps
- Detect account takeover attempts
- Behavioral 2FA (no user friction)
- Portfolio-aware personalization
E-commerce
- Predict purchase intent
- Fraud detection
- Product recommendations
Trading Platforms
- Smart watchlists
- Pattern-based alerts
- Risk profiling
Features
✅ Zero User Friction - Works silently, no prompts
✅ Passive Authentication - Behavioral biometric layer
✅ Auto-Generated Profiles - based on actual behavior
✅ Investment Priority - Trades weighted 10x higher than views
✅ Self-Hosted - Runs on YOUR infrastructure
✅ Privacy-First - Your data never leaves your servers
Database Setup
Shadow Watch uses 3 tables:
# Create tables (SQLAlchemy)
from shadowwatch.models import Base
async with engine.begin() as conn:
await conn.run_sync(Base.metadata.create_all)
Tables created:
shadow_watch_activity_events(raw events)shadow_watch_interests(aggregated scores)shadow_watch_library_versions(snapshots)
Pricing
| Tier | Price | Events/Month | Support |
|---|---|---|---|
| Trial | Free (30 days) | 10,000 | |
| Startup | $500/month | 100,000 | Priority |
| Growth | $1,500/month | 1,000,000 | Slack |
| Enterprise | Custom | Unlimited | Dedicated |
For trial license: tanishqdasari2004@gmail.com
Documentation
- Getting Started Guide - 5-minute setup
- API Reference - Complete API documentation
- Integration Guides - FastAPI, Django, Flask
Comparison
| Feature | Traditional 2FA | Shadow Watch |
|---|---|---|
| User Friction | High (SMS, app) | Zero (passive) |
| Hackable | Yes (SIM swap) | No (behavioral) |
| Setup Time | Weeks | 5 lines of code |
| Personalization | None | Auto-generated |
License
MIT License - see LICENSE
Author
Built by Tanishq during development of QuantForge Terminal
Questions?
- Email: tanishqdasari2004@gmail.com
- GitHub Issues: github.com/Tanishq1030/Shadow_Watch/issues
"Always there. Never seen. Forever watching." 🌑
Metadata
Release files for shadowwatch 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| shadowwatch-0.3.0.tar.gz | 21.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| shadowwatch-0.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 46.2 kB
Release files / shadowwatch-0.3.0.tar.gz
| Download URL | shadowwatch-0.3.0.tar.gz |
|---|---|
| Size | 21.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f7765fcf49e472e65d2967739a45a0a1a9355afabdc3de8d764149dad3e07096
|
|
BLAKE2b-256 checksum How to use checksums |
afd21131736158e3e9b07c09203477d72c72317c0450951070adb5d12524aaaf
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.0
|
Release files / shadowwatch-0.3.0-py3-none-any.whl
| Download URL | shadowwatch-0.3.0-py3-none-any.whl |
|---|---|
| Size | 24.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
92533da24fd283307e4b02df1d4930c4dc8fe26a6f1299e8af399fecbbca3980
|
|
BLAKE2b-256 checksum How to use checksums |
9b1e67c499dbcbb368bdd8f7b4343723831f3bb0f0d16336fbb2220c85808210
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.0
|