OpenKite trading assistant packaged as a modular Python application.
Project description
Overview
OpenKite is an AI-powered agentic trading assistant that combines real-time market access, fundamental analysis, and web intelligence into a single intelligent workflow. Built on the OpenAI Agents SDK, it autonomously selects and orchestrates tools to answer complex trading and investment queries — without you having to switch between multiple platforms.
Features
| Feature | Description | |
|---|---|---|
| 🤖 | Agentic Reasoning | Dynamically decides which tools to invoke based on user intent; minimizes unnecessary calls while maximizing insight |
| 📈 | Zerodha Kite Integration | Fetch portfolio, positions, and holdings; place orders (including GTT); access real-time market data via the official Kite MCP server |
| 🌐 | Web Intelligence via Firecrawl | Pull the latest news, trends, and external signals to enhance decision-making with real-world context |
| 📊 | Fundamental Analysis via Screener.in | Retrieve company financials, key ratios, and quarterly trends for long-term investment research via a custom-built CLI tool — screenercli |
Architecture
The agent orchestrator sits between the OpenAI Agents SDK and three tool groups:
- Remote MCP — Zerodha Kite MCP server for live trading operations
- Local MCP — Firecrawl MCP server for web crawl and search
- Custom CLI Tools — Screener.in CLI for fundamental data lookups
Installation
pip install openkite
For local development:
pip install -e .[dev]
Prerequisite: Node.js (
npx) is required to run the Firecrawl MCP server.
Configuration
Create a .env file in your working directory (or supply it via --env-file):
OPENAI_API_KEY=sk-...
FIRECRAWL_API_KEY=fc-...
OPENKITE_MODEL=gpt-4o
ZERODHA_MCP_SSE_URL=https://mcp.kite.trade/sse
OPENKITE_DB_PATH=~/.openkite/chat_history.db
OPENKITE_HOST=127.0.0.1
OPENKITE_PORT=7860
OPENKITE_SHARE=false
Keep
.envout of source control — add it to.gitignore.
| Variable | Description |
|---|---|
OPENAI_API_KEY |
Your OpenAI API key |
FIRECRAWL_API_KEY |
Your Firecrawl API key |
OPENKITE_MODEL |
OpenAI model to use (e.g. gpt-4o) |
ZERODHA_MCP_SSE_URL |
Zerodha Kite MCP SSE endpoint |
OPENKITE_DB_PATH |
Path for persisting chat history |
OPENKITE_HOST |
Host for the Gradio UI server |
OPENKITE_PORT |
Port for the Gradio UI server |
OPENKITE_SHARE |
Set true to create a public Gradio share link |
Usage
Launch the chat UI:
openkite chat
Validate your configuration:
openkite check
Pass custom runtime options:
openkite chat --env-file .env --host 0.0.0.0 --port 7860
Example Prompts
Try these in the chat UI to exercise Kite MCP, Firecrawl, and Screener together:
Portfolio & Positions
Show my current holdings with live prices, day change, unrealised P&L, and portfolio weights.List my open positions and pending orders, then flag anything that needs attention today.Review my top holdings by value using live Kite data, Screener fundamentals, and recent news, then highlight key risks and opportunities without placing orders.
Fundamental Analysis
Compare TCS and Infosys : valuation, growth, margins, ROCE, and the latest quarterly trend.Show the last 4 quarters for HDFCBANK and tell me whether revenue, profit, and return ratios are improving or weakening.
Market Intelligence
Use recent web coverage to summarize the most important Reliance Industries news from the last 7 days and explain the likely market impact.For NSE:INFY, combine live Kite price action, fundamentals, and recent web news into a short trading and investment brief.
Screenshots
Chat interface with example prompt suggestions
AI-generated portfolio analysis with sell recommendations
Live agent tool-call trace during a Nifty 50 scan
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file openkite-0.1.2.tar.gz.
File metadata
- Download URL: openkite-0.1.2.tar.gz
- Upload date:
- Size: 433.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b0d5c5d7298732e2559d638804feacd3106cfa5bc013f510d5c452d1bb2f53d2
|
|
| MD5 |
4968802daf4d91bfa5819607cb022ac6
|
|
| BLAKE2b-256 |
6fdd0fc0542f2eba8a0a48c67fa97293368f76514fede776fabc1f8c58db773c
|
Provenance
The following attestation bundles were made for openkite-0.1.2.tar.gz:
Publisher:
publish.yml on mayur1064/openkite
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
openkite-0.1.2.tar.gz -
Subject digest:
b0d5c5d7298732e2559d638804feacd3106cfa5bc013f510d5c452d1bb2f53d2 - Sigstore transparency entry: 1123787344
- Sigstore integration time:
-
Permalink:
mayur1064/openkite@c1af4ca537b1de5a2ad329a0a97d4bb73708e35a -
Branch / Tag:
refs/heads/master - Owner: https://github.com/mayur1064
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@c1af4ca537b1de5a2ad329a0a97d4bb73708e35a -
Trigger Event:
push
-
Statement type:
File details
Details for the file openkite-0.1.2-py3-none-any.whl.
File metadata
- Download URL: openkite-0.1.2-py3-none-any.whl
- Upload date:
- Size: 17.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4bd8ca74db8771ae3c737a2db961c4cc507a84c7ebacf7ca877a44f262e9eb68
|
|
| MD5 |
fe4bd6ecc120b64d351051f46cbb26f5
|
|
| BLAKE2b-256 |
57fd79786da96b11066273d7532ce5682daad9cd081793df829e685db5260232
|
Provenance
The following attestation bundles were made for openkite-0.1.2-py3-none-any.whl:
Publisher:
publish.yml on mayur1064/openkite
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
openkite-0.1.2-py3-none-any.whl -
Subject digest:
4bd8ca74db8771ae3c737a2db961c4cc507a84c7ebacf7ca877a44f262e9eb68 - Sigstore transparency entry: 1123787423
- Sigstore integration time:
-
Permalink:
mayur1064/openkite@c1af4ca537b1de5a2ad329a0a97d4bb73708e35a -
Branch / Tag:
refs/heads/master - Owner: https://github.com/mayur1064
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@c1af4ca537b1de5a2ad329a0a97d4bb73708e35a -
Trigger Event:
push
-
Statement type: