Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Run Pine Script indicators from the command line using pinets-cli. Use when asked to execute, test, or analyze Pine Script indicators, calculate technical an...
Run Pine Script indicators from the command line using pinets-cli. Use when asked to execute, test, or analyze Pine Script indicators, calculate technical an...
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
pinets is a CLI tool that executes TradingView Pine Script indicators via the PineTS runtime. It outputs structured JSON with calculated indicator values.
# Global install npm install -g pinets-cli # Or run directly with npx (no install needed) npx pinets-cli run indicator.pine --symbol BTCUSDT -q Verify (if installed globally): pinets --version When using npx, replace pinets with npx pinets-cli in all examples below.
pinets run [file] [options] The indicator can be a file argument or piped from stdin.
FlagDescription-s, --symbol <ticker>Symbol from Binance (e.g., BTCUSDT, ETHUSDT, SOLUSDT.P for futures)-t, --timeframe <tf>Candle timeframe: 1, 5, 15, 30, 60, 120, 240, 1D, 1W, 1M (default: 60)-d, --data <path>JSON file with candle data (alternative to --symbol)
FlagDescription-o, --output <path>Write to file instead of stdout-f, --format <type>default (plots only) or full (plots + result + marketData)--prettyPretty-print JSON--cleanFilter out null, false, and empty values from plot data--plots <names>Comma-separated list of plot names to include (default: all)-q, --quietSuppress info messages (essential when parsing stdout)
FlagDescription-n, --candles <N>Number of output candles (default: 500)-w, --warmup <N>Extra warmup candles excluded from output (default: 0)
FlagDescription--debugShow transpiled JavaScript code (to stderr)
pinets run indicator.pine --symbol BTCUSDT --timeframe 60 --candles 100 -q
# EMA 200 needs at least 200 bars to initialize pinets run ema200.pine -s BTCUSDT -t 1D -n 100 -w 200 -q
echo '//@version=5 indicator("RSI") plot(ta.rsi(close, 14), "RSI")' | pinets run -s BTCUSDT -t 60 -n 20 -q
pinets run indicator.pine --data candles.json --candles 50 -q
pinets run rsi.pine -s BTCUSDT -t 60 -o results.json -q
pinets run indicator.pine -s BTCUSDT -f full -q --pretty
# Without --clean: 500 entries, mostly false pinets run ma_cross.pine -s BTCUSDT -t 1D -n 500 -q # With --clean: Only actual signals pinets run ma_cross.pine -s BTCUSDT -t 1D -n 500 --clean -q
# Get only RSI, ignore bands pinets run rsi_bands.pine -s BTCUSDT --plots "RSI" -q # Get only Buy and Sell signals pinets run signals.pine -s BTCUSDT --plots "Buy,Sell" -q # Combine both: only signals, only true values pinets run signals.pine -s BTCUSDT --plots "Buy,Sell" --clean -q
{ "indicator": { "title": "RSI", "overlay": false }, "plots": { "RSI": { "title": "RSI", "options": { "color": "#7E57C2" }, "data": [ { "time": 1704067200000, "value": 58.23 }, { "time": 1704070800000, "value": 61.45 } ] } } }
Adds result (raw return values per bar) and marketData (OHLCV candles) to the default output.
[ { "openTime": 1704067200000, "open": 42000.5, "high": 42500.0, "low": 41800.0, "close": 42300.0, "volume": 1234.56, "closeTime": 1704070799999 } ] Required fields: open, high, low, close, volume. Recommended: openTime, closeTime.
pinets-cli accepts standard TradingView Pine Script v5+: //@version=5 indicator("My Indicator", overlay=false) // Technical analysis functions rsi = ta.rsi(close, 14) [macdLine, signalLine, hist] = ta.macd(close, 12, 26, 9) sma = ta.sma(close, 20) ema = ta.ema(close, 9) bb_upper = ta.sma(close, 20) + 2 * ta.stdev(close, 20) // Output โ each plot() creates a named entry in the JSON output plot(rsi, "RSI", color=color.purple)
Always use -q when parsing JSON output programmatically. Warmup matters: Indicators with long lookback periods (SMA 200, EMA 200) produce NaN for the first N bars. Use --warmup to pre-feed the indicator. time values are Unix timestamps in milliseconds. Errors go to stderr with exit code 1. The tool bundles PineTS internally โ no additional npm packages are needed at runtime.
IndicatorMinimum warmupSMA(N) / EMA(N)NRSI(14)30MACD(12,26,9)50Bollinger Bands(20)30SMA(200)200+ Rule of thumb: set warmup to 1.5x-2x the longest lookback period.
Code helpers, APIs, CLIs, browser automation, testing, and developer operations.
Largest current source with strong distribution and engagement signals.