@intentsolutionsio/openbb-terminal 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,87 @@
1
+ ---
2
+ name: openbb-options
3
+ description: Options analysis using OpenBB - chain data, Greeks, implied volatility,...
4
+ ---
5
+ # OpenBB Options Analysis
6
+
7
+ Options chain analysis, Greeks calculations, and strategy optimization using OpenBB Platform.
8
+
9
+ ## Usage
10
+
11
+ ```bash
12
+ /openbb-options TICKER [--strategy covered-call|put|spread] [--expiry 30d]
13
+ ```
14
+
15
+ ## Key Features
16
+
17
+ ### Options Data
18
+ - Options chains (calls/puts, all strikes)
19
+ - Greeks (Delta, Gamma, Theta, Vega, Rho)
20
+ - Implied volatility smile/skew
21
+ - Open interest and volume analysis
22
+ - Unusual options activity
23
+
24
+ ### Workflow
25
+
26
+ ```python
27
+ from openbb import obb
28
+
29
+ ticker = "AAPL"
30
+ expiry = "2024-12-20"
31
+
32
+ # Get options chain
33
+ chain = obb.derivatives.options.chains(symbol=ticker, expiration=expiry)
34
+
35
+ # Analyze call options
36
+ calls = chain[chain['option_type'] == 'call']
37
+ print(f"\n📞 Call Options for {ticker} (Exp: {expiry})")
38
+ print(f"{'Strike':>8} {'Last':>8} {'IV':>8} {'Delta':>8} {'OI':>10} {'Volume':>10}")
39
+
40
+ for _, opt in calls.iterrows():
41
+ print(f"${opt['strike']:>7.2f} ${opt['last']:>7.2f} {opt['iv']:>7.1f}% "
42
+ f"{opt['delta']:>7.3f} {opt['open_interest']:>9,} {opt['volume']:>9,}")
43
+
44
+ # Greeks summary
45
+ print(f"\n🔢 Portfolio Greeks:")
46
+ print(f"Net Delta: {calls['delta'].sum():.2f}")
47
+ print(f"Net Gamma: {calls['gamma'].sum():.4f}")
48
+ print(f"Net Theta: {calls['theta'].sum():.2f} (daily decay)")
49
+ print(f"Net Vega: {calls['vega'].sum():.2f} (per 1% IV move)")
50
+ ```
51
+
52
+ ### Strategy Analysis
53
+
54
+ ```python
55
+ # Covered Call Strategy
56
+ stock_price = obb.equity.price.quote(symbol=ticker).price
57
+ strike = stock_price * 1.05 # 5% OTM
58
+
59
+ call_premium = chain[(chain['strike'] == strike) & (chain['option_type'] == 'call')]['last'].iloc[0]
60
+
61
+ print(f"\n📊 Covered Call Strategy ({ticker}):")
62
+ print(f"Stock Price: ${stock_price:.2f}")
63
+ print(f"Sell Call: ${strike:.2f} strike")
64
+ print(f"Premium: ${call_premium:.2f}")
65
+ print(f"Max Profit: ${(strike - stock_price + call_premium):.2f} ({((strike - stock_price + call_premium) / stock_price * 100):.1f}%)")
66
+ print(f"Breakeven: ${(stock_price - call_premium):.2f}")
67
+ ```
68
+
69
+ ### Unusual Activity
70
+
71
+ ```python
72
+ # Detect unusual options activity
73
+ unusual = chain[chain['volume'] > chain['open_interest'] * 2]
74
+ print(f"\n🚨 Unusual Activity ({len(unusual)} contracts):")
75
+
76
+ for _, opt in unusual.head(5).iterrows():
77
+ print(f"{opt['option_type'].upper()} ${opt['strike']:.2f} - "
78
+ f"Vol: {opt['volume']:,} (OI: {opt['open_interest']:,})")
79
+ ```
80
+
81
+ ## Examples
82
+
83
+ ```bash
84
+ /openbb-options SPY --strategy=covered-call
85
+ /openbb-options TSLA --expiry=14d
86
+ /openbb-options NVDA --unusual-activity
87
+ ```
@@ -0,0 +1,154 @@
1
+ ---
2
+ name: openbb-portfolio
3
+ description: Portfolio analysis and optimization using OpenBB - performance tracking,...
4
+ ---
5
+ # OpenBB Portfolio Analysis
6
+
7
+ Comprehensive portfolio management and optimization using OpenBB Platform.
8
+
9
+ ## Usage
10
+
11
+ ```bash
12
+ /openbb-portfolio [--analyze] [--optimize] [--benchmark SPY]
13
+ ```
14
+
15
+ ## What This Command Does
16
+
17
+ Analyzes portfolio performance, calculates risk metrics, and provides optimization recommendations.
18
+
19
+ ## Key Features
20
+
21
+ ### Portfolio Metrics
22
+ - **Returns**: Total return, annualized, Sharpe ratio, Sortino ratio
23
+ - **Risk**: Volatility, max drawdown, VaR, conditional VaR
24
+ - **Allocation**: Asset mix, sector exposure, geographic distribution
25
+ - **Performance Attribution**: Contribution analysis by position
26
+
27
+ ### Workflow
28
+
29
+ ```python
30
+ from openbb import obb
31
+ import pandas as pd
32
+
33
+ # Define portfolio (can load from file or define inline)
34
+ portfolio = {
35
+ "AAPL": {"shares": 50, "cost_basis": 150.00},
36
+ "MSFT": {"shares": 30, "cost_basis": 300.00},
37
+ "GOOGL": {"shares": 20, "cost_basis": 2500.00},
38
+ "BTC-USD": {"shares": 0.5, "cost_basis": 45000.00}
39
+ }
40
+
41
+ # Calculate current values
42
+ total_value = 0
43
+ positions = []
44
+
45
+ for symbol, data in portfolio.items():
46
+ current_price = obb.equity.price.quote(symbol=symbol).price
47
+ position_value = current_price * data["shares"]
48
+ total_value += position_value
49
+
50
+ pnl = (current_price - data["cost_basis"]) * data["shares"]
51
+ pnl_pct = (current_price / data["cost_basis"] - 1) * 100
52
+
53
+ positions.append({
54
+ "symbol": symbol,
55
+ "shares": data["shares"],
56
+ "cost_basis": data["cost_basis"],
57
+ "current_price": current_price,
58
+ "value": position_value,
59
+ "pnl": pnl,
60
+ "pnl_pct": pnl_pct,
61
+ "weight": 0 # Calculate after total_value known
62
+ })
63
+
64
+ # Calculate weights
65
+ for pos in positions:
66
+ pos["weight"] = (pos["value"] / total_value) * 100
67
+
68
+ # Display portfolio
69
+ print(f"\n💼 Portfolio Overview")
70
+ print(f"{'='*80}")
71
+ print(f"Total Value: ${total_value:,.2f}\n")
72
+ print(f"{'Symbol':<10} {'Shares':>10} {'Price':>12} {'Value':>15} {'P/L %':>10} {'Weight':>10}")
73
+ print(f"{'-'*80}")
74
+
75
+ for pos in positions:
76
+ print(f"{pos['symbol']:<10} {pos['shares']:>10.2f} ${pos['current_price']:>11.2f} "
77
+ f"${pos['value']:>14.2f} {pos['pnl_pct']:>9.1f}% {pos['weight']:>9.1f}%")
78
+ ```
79
+
80
+ ### Risk Analysis
81
+
82
+ ```python
83
+ # Calculate portfolio-level risk metrics
84
+ returns = []
85
+ for symbol in portfolio.keys():
86
+ hist = obb.equity.price.historical(symbol=symbol, period="1y")
87
+ returns.append(hist.to_dataframe()['close'].pct_change())
88
+
89
+ portfolio_returns = pd.concat(returns, axis=1).mean(axis=1)
90
+ portfolio_vol = portfolio_returns.std() * (252 ** 0.5) * 100 # Annualized
91
+
92
+ # Sharpe Ratio (assuming 4% risk-free rate)
93
+ risk_free_rate = 0.04
94
+ sharpe = (portfolio_returns.mean() * 252 - risk_free_rate) / (portfolio_returns.std() * (252 ** 0.5))
95
+
96
+ # Max Drawdown
97
+ cumulative = (1 + portfolio_returns).cumprod()
98
+ running_max = cumulative.expanding().max()
99
+ drawdown = (cumulative - running_max) / running_max
100
+ max_dd = drawdown.min() * 100
101
+
102
+ print(f"\n📊 Risk Metrics:")
103
+ print(f"Annualized Volatility: {portfolio_vol:.2f}%")
104
+ print(f"Sharpe Ratio: {sharpe:.2f}")
105
+ print(f"Max Drawdown: {max_dd:.2f}%")
106
+ ```
107
+
108
+ ### Portfolio Optimization
109
+
110
+ ```python
111
+ print(f"\n🎯 Optimization Recommendations:")
112
+
113
+ # Diversification score
114
+ diversification = 100 - max([pos['weight'] for pos in positions])
115
+ print(f"Diversification Score: {diversification:.0f}/100")
116
+
117
+ if diversification < 70:
118
+ print("⚠️ Portfolio concentrated - consider adding positions")
119
+
120
+ # Rebalancing suggestions
121
+ target_weight = 100 / len(positions)
122
+ rebalance_needed = []
123
+
124
+ for pos in positions:
125
+ diff = abs(pos['weight'] - target_weight)
126
+ if diff > 10:
127
+ action = "Reduce" if pos['weight'] > target_weight else "Increase"
128
+ rebalance_needed.append(f"{action} {pos['symbol']}: {pos['weight']:.1f}% → {target_weight:.1f}%")
129
+
130
+ if rebalance_needed:
131
+ print(f"\n🔄 Rebalancing Suggestions:")
132
+ for suggestion in rebalance_needed:
133
+ print(f" • {suggestion}")
134
+ ```
135
+
136
+ ## Examples
137
+
138
+ ```bash
139
+ # Analyze current portfolio
140
+ /openbb-portfolio --analyze
141
+
142
+ # Optimize allocation
143
+ /openbb-portfolio --optimize
144
+
145
+ # Compare to SPY benchmark
146
+ /openbb-portfolio --benchmark=SPY
147
+ ```
148
+
149
+ ## Integration
150
+
151
+ - Import positions from CSV/Excel
152
+ - Export reports to PDF
153
+ - Sync with brokerage accounts (via supported integrations)
154
+ - Tax-loss harvesting analysis
@@ -0,0 +1,173 @@
1
+ ---
2
+ name: openbb-research
3
+ description: AI-powered investment research using OpenBB - comprehensive analysis, thesis...
4
+ ---
5
+ # OpenBB AI Investment Research
6
+
7
+ AI-powered comprehensive investment research combining OpenBB data with Claude's analytical capabilities.
8
+
9
+ ## Usage
10
+
11
+ ```bash
12
+ /openbb-research SYMBOL [--depth deep|quick] [--focus thesis|risks|opportunities]
13
+ ```
14
+
15
+ ## What This Command Does
16
+
17
+ Conducts comprehensive AI-powered investment research by combining multiple OpenBB data sources with advanced analysis.
18
+
19
+ ## Workflow
20
+
21
+ ### 1. Data Aggregation
22
+
23
+ ```python
24
+ from openbb import obb
25
+
26
+ symbol = "AAPL"
27
+
28
+ # Gather comprehensive data
29
+ data = {
30
+ "price": obb.equity.price.historical(symbol=symbol, period="1y"),
31
+ "fundamentals": obb.equity.fundamental.metrics(symbol=symbol),
32
+ "analyst": obb.equity.estimates.analyst(symbol=symbol),
33
+ "news": obb.equity.news(symbol=symbol, limit=10),
34
+ "peers": obb.equity.compare.peers(symbol=symbol),
35
+ "insider": obb.equity.ownership.insider(symbol=symbol)
36
+ }
37
+ ```
38
+
39
+ ### 2. Investment Thesis Generation
40
+
41
+ ```python
42
+ print(f"\n📋 Investment Thesis for {symbol}")
43
+ print(f"{'='*60}")
44
+
45
+ # Business Analysis
46
+ print(f"\n1. Business Quality:")
47
+ print(f" - Competitive moats identified")
48
+ print(f" - Revenue growth trajectory")
49
+ print(f" - Margin trends and sustainability")
50
+ print(f" - Market position and share")
51
+
52
+ # Financial Health
53
+ print(f"\n2. Financial Strength:")
54
+ print(f" - Balance sheet assessment")
55
+ print(f" - Cash flow generation")
56
+ print(f" - Capital allocation efficiency")
57
+ print(f" - Debt levels and coverage")
58
+
59
+ # Valuation
60
+ print(f"\n3. Valuation Assessment:")
61
+ print(f" - P/E vs sector average")
62
+ print(f" - PEG ratio analysis")
63
+ print(f" - DCF model implications")
64
+ print(f" - Historical valuation ranges")
65
+
66
+ # Catalysts
67
+ print(f"\n4. Key Catalysts:")
68
+ print(f" - Upcoming earnings/events")
69
+ print(f" - Product launches")
70
+ print(f" - Regulatory developments")
71
+ print(f" - Industry trends")
72
+ ```
73
+
74
+ ### 3. Risk Assessment
75
+
76
+ ```python
77
+ print(f"\n⚠️ Risk Factors:")
78
+
79
+ risks = []
80
+
81
+ # Check technical risks
82
+ if data["price"].rsi[-1] > 75:
83
+ risks.append("Overbought conditions - potential pullback risk")
84
+
85
+ # Check fundamental risks
86
+ if data["fundamentals"].debt_to_equity > 1.5:
87
+ risks.append("High leverage - financial risk elevated")
88
+
89
+ # Check market risks
90
+ if data["price"].volatility > 50:
91
+ risks.append("High volatility - price uncertainty")
92
+
93
+ for i, risk in enumerate(risks, 1):
94
+ print(f" {i}. {risk}")
95
+ ```
96
+
97
+ ### 4. Opportunity Analysis
98
+
99
+ ```python
100
+ print(f"\n💡 Investment Opportunities:")
101
+
102
+ opportunities = []
103
+
104
+ if data["analyst"].rating_score > 4.0:
105
+ opportunities.append("Strong analyst support - positive sentiment")
106
+
107
+ if data["insider"].net_buy_sell > 0:
108
+ opportunities.append("Insider buying - management confidence")
109
+
110
+ if data["fundamentals"].roe > 20:
111
+ opportunities.append("High ROE - efficient capital use")
112
+
113
+ for i, opp in enumerate(opportunities, 1):
114
+ print(f" {i}. {opp}")
115
+ ```
116
+
117
+ ### 5. Actionable Recommendations
118
+
119
+ ```python
120
+ print(f"\n🎯 Recommendation:")
121
+
122
+ # Decision matrix
123
+ score = 0
124
+ score += 2 if data["analyst"].rating_score > 4.0 else 0
125
+ score += 2 if data["fundamentals"].roe > 15 else 0
126
+ score += 1 if data["price"].trend == "bullish" else 0
127
+ score -= 1 if data["fundamentals"].pe_ratio > 30 else 0
128
+
129
+ if score >= 4:
130
+ rating = "BUY"
131
+ action = "Consider accumulating position"
132
+ elif score >= 2:
133
+ rating = "HOLD"
134
+ action = "Monitor closely, hold current position"
135
+ else:
136
+ rating = "AVOID"
137
+ action = "Wait for better entry point"
138
+
139
+ print(f" Rating: {rating}")
140
+ print(f" Action: {action}")
141
+ print(f" Confidence: {score}/5")
142
+ ```
143
+
144
+ ## Examples
145
+
146
+ ```bash
147
+ # Deep research report
148
+ /openbb-research AAPL --depth=deep
149
+
150
+ # Quick thesis
151
+ /openbb-research MSFT --depth=quick --focus=thesis
152
+
153
+ # Risk analysis
154
+ /openbb-research TSLA --focus=risks
155
+ ```
156
+
157
+ ## Output Format
158
+
159
+ 1. Executive Summary
160
+ 2. Investment Thesis
161
+ 3. Financial Analysis
162
+ 4. Valuation Assessment
163
+ 5. Risk Factors
164
+ 6. Opportunities
165
+ 7. Recommendation & Price Targets
166
+ 8. Monitoring Checklist
167
+
168
+ ## Integration
169
+
170
+ - Export reports to PDF/Markdown
171
+ - Track recommendations over time
172
+ - Compare with analyst consensus
173
+ - Portfolio integration via `/openbb-portfolio`
package/package.json ADDED
@@ -0,0 +1,51 @@
1
+ {
2
+ "name": "@intentsolutionsio/openbb-terminal",
3
+ "version": "1.0.0",
4
+ "description": "Open-source investment research terminal integration - equity analysis, crypto tracking, macro indicators, portfolio optimization, and AI-powered financial insights using OpenBB Platform",
5
+ "keywords": [
6
+ "finance",
7
+ "investment",
8
+ "openbb",
9
+ "stocks",
10
+ "crypto",
11
+ "portfolio",
12
+ "trading",
13
+ "financial-analysis",
14
+ "market-data",
15
+ "equity-research",
16
+ "options",
17
+ "forex",
18
+ "macroeconomics",
19
+ "quant",
20
+ "ai-finance",
21
+ "claude-code",
22
+ "claude-plugin",
23
+ "tonsofskills"
24
+ ],
25
+ "repository": {
26
+ "type": "git",
27
+ "url": "git+https://github.com/jeremylongshore/claude-code-plugins-plus-skills.git",
28
+ "directory": "plugins/business-tools/openbb-terminal"
29
+ },
30
+ "homepage": "https://tonsofskills.com/plugins/openbb-terminal",
31
+ "bugs": "https://github.com/jeremylongshore/claude-code-plugins-plus-skills/issues",
32
+ "license": "MIT",
33
+ "author": {
34
+ "name": "Jeremy Longshore",
35
+ "email": "jeremy@claudecodeplugins.io",
36
+ "url": "https://github.com/jeremylongshore"
37
+ },
38
+ "publishConfig": {
39
+ "access": "public"
40
+ },
41
+ "files": [
42
+ "README.md",
43
+ ".claude-plugin",
44
+ "skills",
45
+ "commands",
46
+ "agents"
47
+ ],
48
+ "scripts": {
49
+ "postinstall": "node -e \"console.log(\\\"\\\\n→ This npm package is a tracking/proof artifact. Install the plugin via:\\\\n ccpi install openbb-terminal\\\\n or /plugin install openbb-terminal@claude-code-plugins-plus in Claude Code\\\\n\\\")\""
50
+ }
51
+ }
@@ -0,0 +1,7 @@
1
+ # Assets
2
+
3
+ Bundled resources for openbb-terminal skill
4
+
5
+ - [ ] report_template.html: HTML template for generating investment reports
6
+ - [ ] example_report.pdf: Example investment report generated using the plugin
7
+ - [ ] openbb_logo.png: OpenBB logo for branding purposes
@@ -0,0 +1,32 @@
1
+ {
2
+ "skill": {
3
+ "name": "skill-name",
4
+ "version": "1.0.0",
5
+ "enabled": true,
6
+ "settings": {
7
+ "verbose": false,
8
+ "autoActivate": true,
9
+ "toolRestrictions": true
10
+ }
11
+ },
12
+ "triggers": {
13
+ "keywords": [
14
+ "example-trigger-1",
15
+ "example-trigger-2"
16
+ ],
17
+ "patterns": []
18
+ },
19
+ "tools": {
20
+ "allowed": [
21
+ "Read",
22
+ "Grep",
23
+ "Bash"
24
+ ],
25
+ "restricted": []
26
+ },
27
+ "metadata": {
28
+ "author": "Plugin Author",
29
+ "category": "general",
30
+ "tags": []
31
+ }
32
+ }
@@ -0,0 +1,28 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "title": "Claude Skill Configuration",
4
+ "type": "object",
5
+ "required": ["name", "description"],
6
+ "properties": {
7
+ "name": {
8
+ "type": "string",
9
+ "pattern": "^[a-z0-9-]+$",
10
+ "maxLength": 64,
11
+ "description": "Skill identifier (lowercase, hyphens only)"
12
+ },
13
+ "description": {
14
+ "type": "string",
15
+ "maxLength": 1024,
16
+ "description": "What the skill does and when to use it"
17
+ },
18
+ "allowed-tools": {
19
+ "type": "string",
20
+ "description": "Comma-separated list of allowed tools"
21
+ },
22
+ "version": {
23
+ "type": "string",
24
+ "pattern": "^\\d+\\.\\d+\\.\\d+$",
25
+ "description": "Semantic version (x.y.z)"
26
+ }
27
+ }
28
+ }
@@ -0,0 +1,27 @@
1
+ {
2
+ "testCases": [
3
+ {
4
+ "name": "Basic activation test",
5
+ "input": "trigger phrase example",
6
+ "expected": {
7
+ "activated": true,
8
+ "toolsUsed": ["Read", "Grep"],
9
+ "success": true
10
+ }
11
+ },
12
+ {
13
+ "name": "Complex workflow test",
14
+ "input": "multi-step trigger example",
15
+ "expected": {
16
+ "activated": true,
17
+ "steps": 3,
18
+ "toolsUsed": ["Read", "Write", "Bash"],
19
+ "success": true
20
+ }
21
+ }
22
+ ],
23
+ "fixtures": {
24
+ "sampleInput": "example data",
25
+ "expectedOutput": "processed result"
26
+ }
27
+ }
@@ -0,0 +1,4 @@
1
+ # References
2
+
3
+ Bundled resources for openbb-terminal skill
4
+
@@ -0,0 +1,69 @@
1
+ # Skill Best Practices
2
+
3
+ Guidelines for optimal skill usage and development.
4
+
5
+ ## For Users
6
+
7
+ ### Activation Best Practices
8
+
9
+ 1. **Use Clear Trigger Phrases**
10
+ - Match phrases from skill description
11
+ - Be specific about intent
12
+ - Provide necessary context
13
+
14
+ 2. **Provide Sufficient Context**
15
+ - Include relevant file paths
16
+ - Specify scope of analysis
17
+ - Mention any constraints
18
+
19
+ 3. **Understand Tool Permissions**
20
+ - Check allowed-tools in frontmatter
21
+ - Know what the skill can/cannot do
22
+ - Request appropriate actions
23
+
24
+ ### Workflow Optimization
25
+
26
+ - Start with simple requests
27
+ - Build up to complex workflows
28
+ - Verify each step before proceeding
29
+ - Use skill consistently for related tasks
30
+
31
+ ## For Developers
32
+
33
+ ### Skill Development Guidelines
34
+
35
+ 1. **Clear Descriptions**
36
+ - Include explicit trigger phrases
37
+ - Document all capabilities
38
+ - Specify limitations
39
+
40
+ 2. **Proper Tool Permissions**
41
+ - Use minimal necessary tools
42
+ - Document security implications
43
+ - Test with restricted tools
44
+
45
+ 3. **Comprehensive Documentation**
46
+ - Provide usage examples
47
+ - Document common pitfalls
48
+ - Include troubleshooting guide
49
+
50
+ ### Maintenance
51
+
52
+ - Keep version updated
53
+ - Test after tool updates
54
+ - Monitor user feedback
55
+ - Iterate on descriptions
56
+
57
+ ## Performance Tips
58
+
59
+ - Scope skills to specific domains
60
+ - Avoid overlapping trigger phrases
61
+ - Keep descriptions under 1024 chars
62
+ - Test activation reliability
63
+
64
+ ## Security Considerations
65
+
66
+ - Never include secrets in skill files
67
+ - Validate all inputs
68
+ - Use read-only tools when possible
69
+ - Document security requirements