A macOS app that wraps zenscans.com in a native webview. Clicking a stock ticker automatically sends it to TradingView (or any other app) by simulating a click, typing the symbol, and pressing Enter. Works with multiple screens.
- macOS
- Python 3.11+
- uv
git clone <repo-url>
cd zenbot-wrapper
uv syncCopy the example env file and edit if needed:
cp .env.example .envBefore using the automation, you need to tell the app where to click (e.g. TradingView's location on your screen):
uv run zenbot-wrapper setupClick the target location when prompted. The coordinates are saved to user_data/click_target.json.
macOS requires Accessibility permissions for simulating clicks and keystrokes. Grant access to your terminal app in:
System Settings > Privacy & Security > Accessibility
You can verify permissions with:
uv run zenbot-wrapper debug clickThis prints the saved click target and sends a test click after 2 seconds.
To create a macOS .app bundle that shows up in Spotlight and the Dock:
./scripts/create-app-bundle.shThis installs Zenbot.app to ~/Applications/ by default. To install to a different location:
./scripts/create-app-bundle.sh /path/to/directoryThe app launches the wrapper using uv run from the project directory, so the repo must stay in place.
uv run zenbot-wrapper- Click any stock ticker in the scanner to automatically send it to TradingView.
- Use arrow keys (Up/Down) to navigate the list — each selection is sent automatically.
- Window position and size are remembered across sessions.
This is an unofficial, independent project and is not affiliated with, endorsed by, or associated with ZenBot, zenscans.com, or Rocket Fuel Studio LLC in any way. "ZenBot", "ZenScans", and any related names, logos, and trademarks are the property of their respective owners.
This software is provided for educational and personal use only, on an "as is" basis, without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose, and noninfringement. The author assumes no liability for any damages arising from the use of this software. Use at your own risk.