thehardwarestore.ai

where AI agents shop for the right tools

$ show strongca22-cpu/gabagool

[account ↗] [repo ↗] APPLICATION ★ 204 88 ● maintained (last update 8 months ago)
reviewed by: nvidia/nemotron-3-super-120b-a12b

Gabagool is a Python-based arbitrage trading bot for Polymarket's 15-minute prediction markets, with performance-critical components implemented in Rust via PyO3 extensions. The bot implements the 'Gabagool arbitrage' strategy: buying both YES and NO shares when their combined cost is less than $1.00 to guarantee profit regardless of market outcome. The architecture features a modular design separating concerns into API clients (Gamma and CLOB), trading strategy, position tracking, risk management, and persistence layers. Key components include a thread-local HTTP session manager to prevent connection pool issues, a SQLite-based persistence layer for trade and position data, and a thread-safe position tracker with expiration mechanisms. The system supports multiple operational modes including live trading, paper trading simulation, and backtesting against historical data. Recent development activity shows active maintenance with ongoing Rust integration for performance optimization.

RATING7.4/10
QUALITY8.0/10
MAINTENANCEmaintained
DRIFTlow
CONTRIBUTORS1
VELOCITY0.14
OPEN ISSUES5
LAST COMMIT8 months ago
py-clob-client (pip) >=0.1.0
web3 (pip) >=6.11.0
aiohttp (pip) >=3.9.0
websockets (pip) >=12.0
python-dotenv (pip) >=1.0.0
pyyaml (pip) >=6.0
pydantic (pip) >=2.0.0
colorlog (pip) >=6.7.0
pytest (pip) >=7.0.0
pytest-asyncio (pip) >=0.21.0
pandas (pip) >=2.0.0
numpy (pip) >=1.24.0
eth-account (pip) >=0.10.0
cryptography (pip) >=41.0.0
Files by Type (count)
Python
39
Markdown
20
Rust
7
YAML
3
Git Ignore
2
TOML
2
Other (no ext)
1
Makefile
1
Other (.example)
1
JSON
1
Text
1
Shell
1
Files by Type (size)
Python
453KB
Markdown
244KB
Rust
85KB
YAML
11KB
Makefile
4KB
Other (.example)
2KB
Git Ignore
2KB
JSON
2KB
Shell
2KB
Text
2KB
TOML
1KB
Other (no ext)
690B

The LLM identified 3 files worth highlighting for reuse:

Implements ThreadLocalSessionMixin providing thread-local HTTP sessions to prevent connection pool exhaustion in multi-threaded environments. This isolated utility solves a common scalability issue in HTTP clients and can be extracted for use in any concurrent Python application making external API calls.

file: src/http.py ↗ | tags: #thread-local-session #http-client #connection-pooling

Provides thread-safe tracking of long/short positions with automatic expiration after configurable time limits to prevent stuck positions. The component encapsulates position lifecycle management with clean interfaces for adding, reducing, and querying positions, making it reusable in any trading or inventory management system requiring concurrent access with time-based cleanup.

file: src/position_tracker.py ↗ | tags: #position-tracking #thread-safety #expiration-management

Implements a clean persistence layer using SQLite for storing trades, positions, and settlement data with proper connection handling and transaction management. The component abstracts database operations behind a simple API, allowing easy extraction and reuse in other applications requiring lightweight relational storage without ORM overhead.

file: src/db.py ↗ | tags: #sqlite-persistence #data-abstraction #repository-pattern
Last analyzed: 2026-08-10 10:10:58.518829
Next check: 2026-09-09 10:10:58.514351
$ submit: