{"id":26078,"library":"pinets-cli","title":"pinets-cli","description":"pinets-cli is a CLI wrapper for PineTS (v0.1.14), an open-source transpiler that runs Pine Script indicators outside of TradingView. It allows executing .pine files directly from the command line with live market data (Binance) or custom JSON datasets. The release cadence is irregular as it is early-stage. Key differentiators: no code setup, JSON output, stdin support, and multiple timeframe options. It is ideal for quick backtesting and indicator prototyping without an IDE.","status":"active","version":"0.1.14","language":"javascript","source_language":"en","source_url":"https://github.com/QuantForgeOrg/pinets-cli","tags":["javascript","Pine","Script","PineTS","Indicators","Finance","Quant","Trading","Backtesting"],"install":[{"cmd":"npm install pinets-cli","lang":"bash","label":"npm"},{"cmd":"yarn add pinets-cli","lang":"bash","label":"yarn"},{"cmd":"pnpm add pinets-cli","lang":"bash","label":"pnpm"}],"dependencies":[],"imports":[],"quickstart":{"code":"npm install -g pinets-cli\ncat << 'EOF' > sma_cross.pine\n//@version=5\nindicator(\"SMA Cross\", overlay=true)\nfast = ta.sma(close, 9)\nslow = ta.sma(close, 21)\nplot(fast, \"Fast SMA\", color=color.blue)\nplot(slow, \"Slow SMA\", color=color.red)\nEOF\npinets run sma_cross.pine --symbol BTCUSDT --timeframe 60\n","lang":"javascript","description":"Install pinets-cli globally, create a sample Pine Script file with SMA cross, and run it on BTCUSDT hourly data to get JSON output."},"warnings":[{"fix":"Use correct symbol format like BTCUSDT, ETHUSDT, etc.","message":"Symbol must be a Binance-valid ticker (e.g., BTCUSDT).","severity":"gotcha","affected_versions":">=0.1.0"},{"fix":"Ensure JSON file has array of objects with keys: open, high, low, close, volume as numbers.","message":"The --data option accepts JSON but format must match internal candle structure (open, high, low, close, volume).","severity":"deprecated","affected_versions":">=0.1.0"},{"fix":"Use 'pinets run' instead of 'pinets' directly.","message":"Version 0.1.0 changed from npx pinets to npx pinets-cli run.","severity":"breaking","affected_versions":">=0.1.0"},{"fix":"Use file argument or PowerShell's Get-Content pipe.","message":"Piped stdin may not work on Windows without cat or equivalent.","severity":"gotcha","affected_versions":">=0.1.0"},{"fix":"Use --format default for cleaner output.","message":"Output format 'full' (--format full) includes pinescript lines as keys which can be large.","severity":"gotcha","affected_versions":">=0.1.0"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Use correct symbol like 'BTCUSDT', 'ETHUSDT', or 'BNBUSDT'.","cause":"Symbol ticker is not recognized by Binance exchange.","error":"Error: Unsupported symbol. Please use a valid Binance symbol."},{"fix":"Use one of the supported values: '1', '5', '15', '60', '240', '1D', '1W', '1M'.","cause":"Invalid timeframe value provided via --timeframe option.","error":"Error: Timeframe must be one of: 1, 5, 15, 60, 240, 1D, 1W, 1M"},{"fix":"Ensure the file path is correct and file exists.","cause":"Pine script file path is incorrect or file does not exist.","error":"Error: File not found: ./nonexistent.pine"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}