Solurum.StaelTradeBot 1.0.5

dotnet tool install --global Solurum.StaelTradeBot --version 1.0.5
                    
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest
                    
if you are setting up this repo
dotnet tool install --local Solurum.StaelTradeBot --version 1.0.5
                    
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=Solurum.StaelTradeBot&version=1.0.5
                    
nuke :add-package Solurum.StaelTradeBot --version 1.0.5
                    

StaelTradeBot (Solurum.StaelTradeBot)

StaelTradeBot is a .NET CLI tool that generates a stock health summary from a plain text input file using the OpenAI Responses API with web search enabled, and writes the result as a self-contained HTML report. Optionally, it can email that HTML report using Brevo.

Not financial advice. This tool summarizes information and may be wrong or incomplete. Always verify sources and do your own research.


What it does

Given:

  • an input text file describing which stocks to research (and any initial context/data you want to provide),

It will:

  1. call an LLM (default model: gpt-5, configurable via env var),
  2. allow the model to use web search while researching,
  3. require the model to output only valid HTML,
  4. save the report to result.html in your chosen results folder,
  5. optionally email the HTML report via Brevo.

Install

dotnet tool install --global Solurum.StaelTradeBot

Update:

dotnet tool update --global Solurum.StaelTradeBot

Run:

StaelTradeBot --help

If your package/tool command name differs (depending on how you pack/publish), use:

dotnet tool run StaelTradeBot --help

Quick start

1) Create an input file

Create a file like stocks.txt:

Stocks to analyze:
- MSFT
- NVDA
- ASML.AS

Notes / context:
- I�m a long-term investor.
- Focus on financial health, competitive position, risks, and valuation sanity checks.
- Mention any major recent news and cite sources where possible.

2) Run the tool

StaelTradeBot ^
  --inputStockInfo "stocks.txt" ^
  --llmServiceToken "%OPENAI_API_KEY%" ^
  --result-folder ".\out"

Output:

  • .\out\result.html

Open it in your browser.


Command line options

Required

  • --inputStockInfo <path>

    • Text file containing the stocks to research + your context.
  • --llmServiceToken <token>

    • API token used to call the LLM service (currently OpenAI).
  • --result-folder <path>

    • Folder where result.html will be written.
    • Warning: the folder is emptied before writing results.

Optional (email via Brevo)

  • --emailServiceToken <token>

    • Brevo API key. If provided, the tool will send an email.
  • --brevoToEmail <email>

    • Required if --emailServiceToken is provided.
  • --brevoToName <name>

    • Optional. (If not provided, recipient name defaults to the email address.)

Email example (Brevo)

StaelTradeBot ^
  --inputStockInfo "stocks.txt" ^
  --llmServiceToken "%OPENAI_API_KEY%" ^
  --result-folder ".\out" ^
  --emailServiceToken "%BREVO_API_KEY%" ^
  --brevoToEmail "you@example.com" ^
  --brevoToName "Jan"

What gets sent:

  • Subject: StaelTradeBot � Stock Health Summary
  • From: solurumbot@gmail.com (display name SolurumBot)
  • Body: the generated HTML report

Model selection

By default the tool uses:

  • gpt-5

You can override the model using the environment variable:

  • OPENAI_MODEL

Example

Windows (PowerShell):

$env:OPENAI_MODEL="gpt-5"
StaelTradeBot --inputStockInfo "stocks.txt" --llmServiceToken $env:OPENAI_API_KEY --result-folder ".\out"

Linux/macOS (bash):

export OPENAI_MODEL="gpt-5"
StaelTradeBot --inputStockInfo "stocks.txt" --llmServiceToken "$OPENAI_API_KEY" --result-folder "./out"

Input file tips (best results)

The model receives:

  • a built-in system prompt (InitialPrompt.txt, shipped with the app),
  • your input file content as data.

To get better reports, include:

  • tickers + exchange suffix where relevant (e.g. ASML.AS),
  • your investing style (long-term, swing, etc.),
  • what to prioritize (financial strength, dilution, debt, margins, moat, catalysts),
  • constraints (avoid penny stocks, focus on EU, etc.),
  • any known positions or risk tolerance.

Output

  • The tool extracts HTML from the model output and writes:

    • <result-folder>/result.html

If the model returns extra text, the tool will attempt to locate:

  • <!DOCTYPE ...> or <html ...> start
  • and end at </html> (or </body> if needed)

If no HTML start tag is found, the tool fails with an error.


Notes & limitations

  • Result folder is wiped (files + subfolders) on every run.
  • Web search is enabled via the Responses API tool call; results depend on model/tool availability.
  • Output can be large (default MaxOutputTokenCount = 50000) and may take time.
  • If emailing is enabled and Brevo rejects your request, the tool throws with the HTTP status + response body.

Troubleshooting

�Could not find 'InitialPrompt.txt'��

InitialPrompt.txt must be present next to the executable at runtime. If you�re packaging this as a NuGet tool/package, ensure the file is included in the output (e.g., as content copied to output).

�No HTML start tag found��

Your model response didn�t include <!DOCTYPE ...> or <html ...>. Try:

  • ensuring your input file is clean and doesn�t contain confusing instructions,
  • using a different model via OPENAI_MODEL,
  • tightening your prompt expectations (e.g., �Return a single HTML document��).

Brevo email send failed

Double-check:

  • your Brevo API key,
  • recipient email,
  • Brevo account permissions / sender validation requirements.

Security

  • Treat --llmServiceToken and --emailServiceToken as secrets.
  • Prefer passing tokens via environment variables in CI and local shells.
  • The generated HTML may include externally sourced content; open and share reports responsibly.

License

MIT

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

Version Downloads Last Updated
1.0.5 106 1/22/2026
1.0.4 91 1/22/2026
1.0.3 95 1/22/2026
1.0.2 100 1/19/2026
1.0.1 97 1/19/2026
1.0.0 99 1/19/2026