The bot trades RSI/EMA signals, without wallet scanning
Stopping Cabbage can interrupt its client-side stop protection. That warning in the README deserves attention before the live command does. This Python bot connects an existing RSI/EMA crossover strategy to Investing Algorithm Framework's order and portfolio services. It supports backtesting, paper execution, and live spot trading through CCXT. Its useful role is an inspectable route through that framework, with explicit commands separating simulation from real orders.
Our checkout contained 1,419 files and roughly 186,273 source lines in 376.5 MB. Much of that breadth comes from including the original framework, its examples, data, and documentation. The README identifies the embedded framework as 9.0.0a18 and says it is the actual runtime. Buying into this repository means learning that underlying system as well as the small Cabbage wrapper.
What happened when we ran it
Our sandbox installed Cabbage's 134 packages in 59 seconds and built it in 5 seconds, but its tests timed out after 900 seconds. We ran commit 530c2c6 on October 13, 2026, in an unprivileged Debian container with 3 CPUs, 8 GB of RAM, and no secrets. The image was ghcr.io/astral-sh/uv:python3.12-bookworm. Installation occupied 918 MB on disk.
The test log reached progress markers of 3% and 6%, with an F and skip markers visible before the timeout. It contains no completed summary or traceback identifying the failure. We cannot name the failing case, count passing tests, or say what blocked completion from those lines. A 900-second timeout with a visible failure marker is sufficient reason to withhold a clean-suite claim. Increasing the deadline alone would not explain the failure.
Pip-audit reported 1 known vulnerability. The supplied measurement names neither the affected package nor its severity, so the finding cannot support a claim about exploitability or a specific fix. The scan also found 1 CI workflow file, a tests directory, and no Dockerfile. Our no-secrets run contains no evidence of live exchange execution, successful online paper trading, or strategy profitability. Those claims require different observations.
Paper mode is explicit, but still needs exchange data
The 918 MB installed environment precedes account setup and runtime state. The README recommends Python 3.12, a virtual environment, and settings copied from .env.example. Offline backtesting uses bundled data. Paper mode uses exchange quotes, so public exchange access still matters even when it sends no real orders. The doctor command inspects configuration, while its online variant checks public exchange data without placing orders.
Live mode requires the selected exchange's API key and secret, a supported spot pair, suitable account permissions, and sufficient balance. The application wrapper refuses live mode when credentials are absent and rejects upstream environment overrides that could conflict with explicit mode selection. That is a useful boundary to inspect. It does not establish that a given account accepts the chosen order size or that the venue will fill it.
The fixed stop does not guarantee a fill price
Our 5-second build says nothing about exchange behavior. The configured strategy uses long-only spot entries and exits, a fixed quote-currency ticket, and a percentage stop. It excludes incomplete candles and can legitimately generate no orders. The README says the signal schedule cannot run faster than its candle timeframe. This fits someone studying a specific rules-based strategy, rather than someone expecting a universal bot that starts trading immediately after launch.
Stops come from the original framework and are not guaranteed exchange-side orders or guaranteed execution prices. Original limit execution can also leave an order pending. Those are reasons for a competent developer to decline unattended live use unless they have checked the actual execution path and interruption behavior. A percentage in a configuration file cannot establish the eventual sale price.
Backtest reports document a run, not proven returns
A 59-second install does not establish the quality of the historical data or the strategy's returns. The bundled offline backtest uses BTC/EUR candles from June 2024 and writes HTML plus native framework artifacts. The README describes that route as an integration check and explicitly declines to claim the promotional profit narrative. That makes the backtest useful for examining data flow and reporting, while leaving the decision to risk capital unsupported.
The project also says Jev inference, Robinhood Chain wallet scanning, and the promotional smart-wallet strategy are absent. If those features brought you to the repository, walk away: the implementation serves a different task. The strategy source subclasses the upstream crossover strategy and retains long-entry and long-exit signals. It supplies a concrete rules-based bot to read and modify, without the promised intelligence implied by those missing integrations.
Runtime directories cannot be shared by competing processes
The 376.5 MB checkout includes more than the wrapper, and running it creates further state. Cabbage separates runtime directories by mode, market, and pair. The framework persists its database and reports there, and bounded runs or normal shutdown export latest-run.json. The README warns against running two processes against the same state directory. Keep those paths explicit if you compare simulations or operate different pairs, and preserve the reports needed to understand pending orders.
September activity leaves a thin maintenance record
The last push was September 24, 2026. GitHub returned 267 stars, no open issues or PRs, and no latest release. The issue-history endpoint also returned no entries. That is too little history to infer dependable maintenance from a quiet tracker, and the recent push does not justify calling it abandoned. English documentation exists in the main README, alongside a Russian getting-started guide.
For a broader strategy workflow, Freqtrade includes backtesting and Telegram or web controls. Hummingbot suits work needing centralized and decentralized exchange connectors. Cabbage is worth a paper-only investigation when you specifically want its framework integration. Before considering live use, identify the audit finding and the failure behind our 900-second test timeout, then check the exchange behavior the build could never establish.

