TradeClaw

Open-source AI market intelligence for traders who prefer evidence over noise.

Self-hosted by default

Product

  • Dashboard
  • Screener
  • Backtest
  • Track record
  • Live demo

Transparency

  • What we tested and killed
  • Methodology
  • Why long-term
  • Open data
  • Calibration

Resources

  • Blog
  • Docs
  • API reference
  • How it works
  • FAQ
  • Glossary

Community

  • Discord
  • Weekly digest
  • Contribute
  • Contributors
  • Sponsors

Open source

  • GitHub repo
  • Star history
  • Self-host guide
  • Security
  • Data freshness
  • Roadmap

© 2026 TradeClaw. MIT licensed.

Terms|Privacy|Trading involves risk. Signals are informational only and are not financial advice.
DashboardScreenerCopilotTrack Record
GitHub Action

TradeClaw GitHub Action

Fetch the latest rule-generated candidates for logging and research. Provider availability and source freshness can vary.

Inspect action sourceStar on GitHub

How it works

1

Add the action to your workflow

Reference the action with your pair, timeframe, and confidence threshold.

2

Action fetches the latest available candidates

Uses curl + python3 (pre-installed on runners) to query the TradeClaw API. Zero dependencies.

3

Use outputs in subsequent steps

signal_found, signal_direction, signal_confidence, and signal_json are available as step outputs.

Installation

Add to any workflow file in .github/workflows/:

.github/workflows/signal.yml
- uses: naimkatiman/tradeclaw/packages/tradeclaw-action@main
  id: signal
  with:
    pair: BTCUSD
    timeframe: H1

Example Workflows

Log a BTC sell candidate

Poll on a schedule and post a best-effort notification when a matching scored candidate is returned.

alert.yml
name: BTC Sell Alert
on:
  schedule:
    - cron: '0 */4 * * *'

jobs:
  check:
    runs-on: ubuntu-latest
    steps:
      - uses: naimkatiman/tradeclaw/packages/tradeclaw-action@main
        id: signal
        with:
          pair: BTCUSD
          direction: SELL
          min_confidence: 80

      - name: Send Slack alert
        if: steps.signal.outputs.signal_found == 'true'
        run: |
          curl -X POST "$SLACK_WEBHOOK" -d "{
            \"text\": \"BTC SELL @ ${{ steps.signal.outputs.signal_confidence }}%\"
          }"

Archive a research snapshot

Record a candidate in a manually triggered workflow without tying software deployment to a market score.

deploy-gate.yml
name: Signal Snapshot
on: workflow_dispatch

jobs:
  snapshot:
    runs-on: ubuntu-latest
    steps:
      - uses: naimkatiman/tradeclaw/packages/tradeclaw-action@main
        id: signal
        with:
          pair: BTCUSD
          direction: BUY
          min_confidence: 70

      - name: Record candidate
        run: echo "Signal candidate archived for research; not a deployment gate."

Candidate log

Hourly signal check that appends returned research candidates to a file; it does not simulate fills.

paper-trade.yml
name: Candidate Log
on:
  schedule:
    - cron: '0 * * * *'

jobs:
  trade:
    runs-on: ubuntu-latest
    steps:
      - uses: naimkatiman/tradeclaw/packages/tradeclaw-action@main
        id: signal
        with:
          pair: ETHUSD
          timeframe: H4
          min_confidence: 75

      - name: Append candidate
        if: steps.signal.outputs.signal_found == 'true'
        run: |
          echo "Candidate ${{ steps.signal.outputs.signal_direction }} ETH"
          echo "${{ steps.signal.outputs.signal_json }}" >> signal-candidates.log

Daily Signal Report

Matrix strategy scanning 3 pairs and writing a job summary.

daily-report.yml
name: Daily Signal Report
on:
  schedule:
    - cron: '0 8 * * *'

jobs:
  report:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        pair: [BTCUSD, ETHUSD, XAUUSD]
    steps:
      - uses: naimkatiman/tradeclaw/packages/tradeclaw-action@main
        id: signal
        with:
          pair: ${{ matrix.pair }}
          timeframe: D1

      - name: Write summary
        run: |
          echo "### ${{ matrix.pair }}" >> $GITHUB_STEP_SUMMARY
          echo "- Direction: ${{ steps.signal.outputs.signal_direction }}" >> $GITHUB_STEP_SUMMARY
          echo "- Confidence: ${{ steps.signal.outputs.signal_confidence }}%" >> $GITHUB_STEP_SUMMARY

Inputs

InputDefaultDescription
pairBTCUSDTrading pair (BTCUSD, ETHUSD, XAUUSD, ...)
timeframeH1Signal timeframe (H1, H4, D1)
directionALLFilter by direction (BUY, SELL, ALL)
min_confidence70Minimum mechanical rule score (0-100; not a probability)
base_urlhttps://tradeclaw.winTradeClaw instance URL

Outputs

OutputDescription
signal_foundWhether a matching signal was found (true/false)
signal_directionSignal direction (BUY or SELL)
signal_confidenceMechanical rule score (0-100; not a calibrated probability)
signal_jsonFull signal JSON payload

Zero Dependencies

Composite action using curl + python3 — no node_modules

Research Filters

Filter returned candidates by direction or mechanical score

Rich Summaries

Signal report in your Actions run UI via GITHUB_STEP_SUMMARY

Scheduled Scans

Cron-based multi-pair signal monitoring

Self-Hosted

Point base_url to your own TradeClaw instance

Matrix Support

Scan multiple pairs in parallel with matrix strategy

Inspect the action before using it

The action source and inputs live in this repository. Public-instance availability is not guaranteed; self-hosted instances can be configured with base_url.

View action sourceStar on GitHub