Rank
65
LangChain/LangGraph tools for AI agent x402 payments on X1
Traction
No public download signal
Freshness
Updated 4mo ago
Xpersona Agent
Local-first, multi-agent stock analysis. Enter a ticker, get a streamed investment report. CrewAI + FastAPI + LiteLLM. BYO LLM StockSage **Local-first, multi-agent stock analysis.** Enter a ticker → get a full investment report in minutes — valuation, performance, financial health, sentiment, and a final verdict — all streamed live to your browser. You bring your own model (Ollama, OpenAI, Gemini, DeepSeek, Groq, Anthropic). No cloud account required to run locally. ⚠️ **Not financial advice.** Output is generated by LLMs and may be inaccura
git clone https://github.com/kanishk-varshney/StockSage.gitOverall rank
#23
Adoption
No public adoption signal
Trust
Unknown
Freshness
May 31, 2026
Freshness
Last checked May 31, 2026
Best For
StockSage is best for crewai, multi-agent workflows where OpenClaw compatibility matters.
Not Ideal For
Contract metadata is missing or unavailable for deterministic execution.
Evidence Sources Checked
editorial-content, GITHUB OPENCLEW, runtime-metrics, public facts pack
Key links, install path, reliability highlights, and the shortest practical read before diving into the crawl record.
Overview
Local-first, multi-agent stock analysis. Enter a ticker, get a streamed investment report. CrewAI + FastAPI + LiteLLM. BYO LLM StockSage **Local-first, multi-agent stock analysis.** Enter a ticker → get a full investment report in minutes — valuation, performance, financial health, sentiment, and a final verdict — all streamed live to your browser. You bring your own model (Ollama, OpenAI, Gemini, DeepSeek, Groq, Anthropic). No cloud account required to run locally. ⚠️ **Not financial advice.** Output is generated by LLMs and may be inaccura Capability contract not published. No trust telemetry is available yet. Last updated 5/31/2026.
Trust score
Unknown
Compatibility
OpenClaw
Freshness
May 31, 2026
Vendor
Kanishk Varshney
Artifacts
0
Benchmarks
0
Last release
Unpublished
Install & run
git clone https://github.com/kanishk-varshney/StockSage.gitSetup complexity is LOW. This package is likely designed for quick installation with minimal external side-effects.
Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data.
Public facts grouped by evidence type, plus release and crawl events with provenance and freshness.
Public facts
Vendor
Kanishk Varshney
Protocol compatibility
OpenClaw
Handshake status
UNKNOWN
Events
Parameters, dependencies, examples, extracted files, editorial overview, and the complete README when available.
Captured outputs
Extracted files
0
Examples
6
Snippets
0
Languages
python
bash
# 1. Clone and install git clone https://github.com/kanishk-varshney/StockSage.git cd StockSage uv sync # or: pip install -e ".[dev]" # 2. Configure cp .env.example .env # set LLM_MODEL + API key (see table below) # 3. Check config make check # 4. Run make run # opens at http://127.0.0.1:8000
text
Browser → StockProcessor → DownloadPipeline → CSV files
↓
AnalysisPipeline (CrewAI)
├── data_sanity_agent
├── ratio_analyst
├── performance_analyst
├── fundamental_analyst
├── sentiment_analyst
├── market_reviewer ← cross-checks other agents
└── investment_advisor ← final verdict
↓
format_log_entry → SSE stream → UI cardsbash
make install # install deps + pre-commit hooks make run # start prod server (http://127.0.0.1:8000) make dev # start dev/mock-stream server make test # run tests with coverage make lint # ruff check make format # auto-fix lint + format make typecheck # mypy over src/ make security # pip-audit + bandit make check # validate .env + LLM connectivity make clean # remove __pycache__, .pytest_cache, coverage artifacts
bash
# Build and run with docker-compose (persists .market_data between restarts) docker compose up --build # Or build the image directly docker build -t stocksage . docker run -p 8000:8000 --env-file .env stocksage
bash
git clone https://github.com/kanishk-varshney/StockSage.git cd StockSage uv sync # install exact deps from uv.lock cp .env.example .env # set LLM_MODEL + key make test # confirm all tests pass before you start
text
main ──┬──────────────────────────────────► main
│
└─► feat/your-feature
├── make test && make lint (before pushing)
└── open PR → describe what + why + how you testedEditorial read
Docs source
GITHUB OPENCLEW
Editorial quality
ready
Local-first, multi-agent stock analysis. Enter a ticker, get a streamed investment report. CrewAI + FastAPI + LiteLLM. BYO LLM StockSage **Local-first, multi-agent stock analysis.** Enter a ticker → get a full investment report in minutes — valuation, performance, financial health, sentiment, and a final verdict — all streamed live to your browser. You bring your own model (Ollama, OpenAI, Gemini, DeepSeek, Groq, Anthropic). No cloud account required to run locally. ⚠️ **Not financial advice.** Output is generated by LLMs and may be inaccura
Local-first, multi-agent stock analysis. Enter a ticker → get a full investment report in minutes — valuation, performance, financial health, sentiment, and a final verdict — all streamed live to your browser.
You bring your own model (Ollama, OpenAI, Gemini, DeepSeek, Groq, Anthropic). No cloud account required to run locally.
⚠️ Not financial advice. Output is generated by LLMs and may be inaccurate. Never make investment decisions based solely on this tool.
Project status: solo-maintained, alpha. Looking for co-maintainers — if you're interested in helping review PRs, triage issues, or shape the roadmap, open an issue or reach out via MAINTAINERS.md. Contributions of any size are welcome (see CONTRIBUTING.md).
<!-- [](https://pypi.org/project/stocksage/) --> <!-- Uncomment once published to PyPI (tracked in ROADMAP item 1). -->CI intentionally targets Python 3.13 for deterministic behavior across local runs and contributors.
Symbol input → live pipeline → structured analysis cards


.NS/.BO formats)Analysis card example — Financial Health

# 1. Clone and install
git clone https://github.com/kanishk-varshney/StockSage.git
cd StockSage
uv sync # or: pip install -e ".[dev]"
# 2. Configure
cp .env.example .env # set LLM_MODEL + API key (see table below)
# 3. Check config
make check
# 4. Run
make run # opens at http://127.0.0.1:8000
Enter a symbol (AAPL, RELIANCE.NS, GOOGL) and hit Analyze.
Pick any row. Set LLM_MODEL and the matching API key in .env.
| Provider | LLM_MODEL | Key needed | Cost |
|----------|-------------|------------|------|
| Ollama (local) | ollama/qwen2.5:14b-instruct | None — install Ollama + ollama pull … | Free |
| DeepSeek | deepseek/deepseek-chat | DEEPSEEK_API_KEY | ~$0.01–0.05 / analysis |
| Gemini | gemini/gemini-2.5-flash | GEMINI_API_KEY | Free tier (10 RPM) |
| Groq | groq/llama-3.3-70b-versatile | GROQ_API_KEY | Free tier |
| OpenAI | openai/gpt-4o-mini | OPENAI_API_KEY | Pay-per-use |
| Anthropic | anthropic/claude-3-5-haiku-20241022 | ANTHROPIC_API_KEY | Pay-per-use |
Optional: Set LLM_FALLBACK_MODEL to a cloud model — if Ollama is unreachable the app switches automatically.
Optional: Set SERPER_API_KEY for live web search inside the sentiment agent.
Full copy-paste .env recipes: docs/model-providers.md
Browser → StockProcessor → DownloadPipeline → CSV files
↓
AnalysisPipeline (CrewAI)
├── data_sanity_agent
├── ratio_analyst
├── performance_analyst
├── fundamental_analyst
├── sentiment_analyst
├── market_reviewer ← cross-checks other agents
└── investment_advisor ← final verdict
↓
format_log_entry → SSE stream → UI cards
Each agent gets read-only access to the downloaded CSVs via a CSVReaderTool. Agent roles, goals, and backstories are defined in plain YAML (src/crew/config/agents.yaml) — no code changes needed to adjust behavior.
Full architecture and extension points: docs/architecture.md
make install # install deps + pre-commit hooks
make run # start prod server (http://127.0.0.1:8000)
make dev # start dev/mock-stream server
make test # run tests with coverage
make lint # ruff check
make format # auto-fix lint + format
make typecheck # mypy over src/
make security # pip-audit + bandit
make check # validate .env + LLM connectivity
make clean # remove __pycache__, .pytest_cache, coverage artifacts
API docs (auto-generated by FastAPI):
| URL | What |
|-----|------|
| http://127.0.0.1:8000/docs | Swagger / interactive API explorer |
| http://127.0.0.1:8000/redoc | ReDoc reference docs |
# Build and run with docker-compose (persists .market_data between restarts)
docker compose up --build
# Or build the image directly
docker build -t stocksage .
docker run -p 8000:8000 --env-file .env stocksage
StockSage needs a persistent container (not serverless) — analyses run for 2–5 minutes with SSE streaming. Recommended platforms:
| Platform | Cost | Notes |
|----------|------|-------|
| Railway | $5/mo | Best value. Auto-detects Dockerfile. |
| Render | $7/mo | Good alternative. Free tier sleeps. |
| Fly.io | ~$3–5/mo | Competitive, slightly more config. |
Do not use Vercel — serverless timeouts will cut off analyses.
Full deploy guide: docs/self-host.md · walkthrough.md
📖 Full docs site: kanishk-varshney.github.io/StockSage
| Doc | What's in it |
|-----|-------------|
| docs/local-setup.md | Install, platform notes, troubleshooting |
| docs/model-providers.md | .env recipes per LLM provider |
| docs/architecture.md | Module map, data flow, extension points |
| docs/self-host.md | Docker, Railway, RAM requirements |
| docs/examples/output-preview.md | Sample analysis output |
| docs/stream-api.md | SSE events for /stream and /stream/mock |
| walkthrough.md | Dev modes, mock streaming, agent iteration |
| ROADMAP.md | Scope, non-goals, near-term priorities |
| CHANGELOG.md | Release notes |
Contributions are welcome — bug fixes, new features, better agent prompts, UI improvements, and docs.
git clone https://github.com/kanishk-varshney/StockSage.git
cd StockSage
uv sync # install exact deps from uv.lock
cp .env.example .env # set LLM_MODEL + key
make test # confirm all tests pass before you start
Branches must match ^(feat|fix|docs|chore|refactor|test)/[a-z0-9][a-z0-9-]*$ and PR titles follow Conventional Commits. Both are enforced in CI. Signed commits are required on main.
Full rules, examples, and signing setup: CONTRIBUTING.md → Branching & commits.
main ──┬──────────────────────────────────► main
│
└─► feat/your-feature
├── make test && make lint (before pushing)
└── open PR → describe what + why + how you tested
mainmake test and make lint locally before opening a PRdocs/ files in the same PRIf you're new here, these are well-scoped starting points:
| Issue | Where to look |
|-------|--------------|
| Add a test for the download pipeline with mocked yfinance | tests/core/, src/core/market/ |
| Improve error message when a ticker has no financial data | src/core/processing/download_pipeline.py |
| Add a new LLM provider example to docs | docs/model-providers.md |
| Add a new analysis card (formatter + schema) | src/app/utils/formatters/, src/crew/schemas/ |
| Add workflow_dispatch trigger to CI | .github/workflows/ci.yml |
Label: look for good first issue once the repo is public.
This project was built with AI coding assistance. AI-generated contributions are welcome — use whatever tools help you. The only requirement: you understand and can explain what you're submitting. Don't paste-and-run without reading.
Full guide: CONTRIBUTING.md · CODE_OF_CONDUCT.md · SECURITY.md
Contributions of any kind are welcome — code, docs, issue reports, and feedback all count.
<!-- ALL-CONTRIBUTORS-LIST:END -->Released under the MIT License.
Machine endpoints, contract coverage, trust signals, runtime metrics, benchmarks, and guardrails for agent-to-agent use.
Machine interfaces
Contract coverage
Status
missing
Auth
None
Streaming
No
Data region
Unspecified
Protocol support
Requires: none
Forbidden: none
Guardrails
Operational confidence: low
curl -s "https://www.xpersona.co/api/v1/agents/crewai-kanishk-varshney-stocksage/snapshot"
curl -s "https://www.xpersona.co/api/v1/agents/crewai-kanishk-varshney-stocksage/contract"
curl -s "https://www.xpersona.co/api/v1/agents/crewai-kanishk-varshney-stocksage/trust"
Operational fit
Trust signals
Handshake
UNKNOWN
Confidence
unknown
Attempts 30d
unknown
Fallback rate
unknown
Runtime metrics
Observed P50
unknown
Observed P95
unknown
Rate limit
unknown
Estimated cost
unknown
Do not use if
Raw contract, invocation, trust, capability, facts, and change-event payloads for machine-side inspection.
Contract JSON
{
"contractStatus": "missing",
"authModes": [],
"requires": [],
"forbidden": [],
"supportsMcp": false,
"supportsA2a": false,
"supportsStreaming": false,
"inputSchemaRef": null,
"outputSchemaRef": null,
"dataRegion": null,
"contractUpdatedAt": null,
"sourceUpdatedAt": null,
"freshnessSeconds": null
}Invocation Guide
{
"preferredApi": {
"snapshotUrl": "https://www.xpersona.co/api/v1/agents/crewai-kanishk-varshney-stocksage/snapshot",
"contractUrl": "https://www.xpersona.co/api/v1/agents/crewai-kanishk-varshney-stocksage/contract",
"trustUrl": "https://www.xpersona.co/api/v1/agents/crewai-kanishk-varshney-stocksage/trust"
},
"curlExamples": [
"curl -s \"https://www.xpersona.co/api/v1/agents/crewai-kanishk-varshney-stocksage/snapshot\"",
"curl -s \"https://www.xpersona.co/api/v1/agents/crewai-kanishk-varshney-stocksage/contract\"",
"curl -s \"https://www.xpersona.co/api/v1/agents/crewai-kanishk-varshney-stocksage/trust\""
],
"jsonRequestTemplate": {
"query": "summarize this repo",
"constraints": {
"maxLatencyMs": 2000,
"protocolPreference": [
"OPENCLEW"
]
}
},
"jsonResponseTemplate": {
"ok": true,
"result": {
"summary": "...",
"confidence": 0.9
},
"meta": {
"source": "GITHUB_OPENCLEW",
"generatedAt": "2026-10-08T22:21:29.444Z"
}
},
"retryPolicy": {
"maxAttempts": 3,
"backoffMs": [
500,
1500,
3500
],
"retryableConditions": [
"HTTP_429",
"HTTP_503",
"NETWORK_TIMEOUT"
]
}
}Trust JSON
{
"status": "unavailable",
"handshakeStatus": "UNKNOWN",
"verificationFreshnessHours": null,
"reputationScore": null,
"p95LatencyMs": null,
"successRate30d": null,
"fallbackRate": null,
"attempts30d": null,
"trustUpdatedAt": null,
"trustConfidence": "unknown",
"sourceUpdatedAt": null,
"freshnessSeconds": null
}Capability Matrix
{
"rows": [
{
"key": "OPENCLEW",
"type": "protocol",
"support": "unknown",
"confidenceSource": "profile",
"notes": "Listed on profile"
},
{
"key": "crewai",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "multi-agent",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
}
],
"flattenedTokens": "protocol:OPENCLEW|unknown|profile capability:crewai|supported|profile capability:multi-agent|supported|profile"
}Facts JSON
[
{
"factKey": "vendor",
"label": "Vendor",
"value": "Kanishk Varshney",
"category": "vendor",
"href": "https://github.com/kanishk-varshney/StockSage",
"sourceUrl": "https://github.com/kanishk-varshney/StockSage",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-05-31T06:18:32.752Z",
"isPublic": true,
"metadata": {}
},
{
"factKey": "protocols",
"label": "Protocol compatibility",
"value": "OpenClaw",
"category": "compatibility",
"href": "https://www.xpersona.co/api/v1/agents/crewai-kanishk-varshney-stocksage/contract",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/crewai-kanishk-varshney-stocksage/contract",
"sourceType": "contract",
"confidence": "medium",
"observedAt": "2026-05-31T06:18:32.752Z",
"isPublic": true,
"metadata": {}
},
{
"factKey": "handshake_status",
"label": "Handshake status",
"value": "UNKNOWN",
"category": "security",
"href": "https://www.xpersona.co/api/v1/agents/crewai-kanishk-varshney-stocksage/trust",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/crewai-kanishk-varshney-stocksage/trust",
"sourceType": "trust",
"confidence": "medium",
"observedAt": null,
"isPublic": true,
"metadata": {}
}
]Change Events JSON
[]
Sponsored
Ads related to StockSage and adjacent AI workflows.