zyora-cli 0.1.0__tar.gz

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,269 @@
1
+ Metadata-Version: 2.4
2
+ Name: zyora-cli
3
+ Version: 0.1.0
4
+ Summary: Zyora CLI - AI-powered code generation and security scanning
5
+ Project-URL: Homepage, https://zyoralabs.com
6
+ Project-URL: Documentation, https://app.zyoralabs.com/docs
7
+ Project-URL: Repository, https://github.com/zyoralabs/zyora-cli
8
+ Author-email: Zyora Labs <support@zyoralabs.com>
9
+ License-Expression: MIT
10
+ Keywords: ai,cli,code-generation,llm,security
11
+ Classifier: Development Status :: 4 - Beta
12
+ Classifier: Environment :: Console
13
+ Classifier: Intended Audience :: Developers
14
+ Classifier: License :: OSI Approved :: MIT License
15
+ Classifier: Operating System :: OS Independent
16
+ Classifier: Programming Language :: Python :: 3
17
+ Classifier: Programming Language :: Python :: 3.9
18
+ Classifier: Programming Language :: Python :: 3.10
19
+ Classifier: Programming Language :: Python :: 3.11
20
+ Classifier: Programming Language :: Python :: 3.12
21
+ Classifier: Topic :: Security
22
+ Classifier: Topic :: Software Development
23
+ Requires-Python: >=3.9
24
+ Requires-Dist: httpx>=0.25.0
25
+ Requires-Dist: pathspec>=0.11.0
26
+ Requires-Dist: prompt-toolkit>=3.0.0
27
+ Requires-Dist: pydantic>=2.0.0
28
+ Requires-Dist: pygments>=2.16.0
29
+ Requires-Dist: rich>=13.0.0
30
+ Requires-Dist: toml>=0.10.0
31
+ Requires-Dist: typer[all]>=0.9.0
32
+ Provides-Extra: dev
33
+ Requires-Dist: black>=23.0.0; extra == 'dev'
34
+ Requires-Dist: pytest-asyncio>=0.21.0; extra == 'dev'
35
+ Requires-Dist: pytest>=7.0.0; extra == 'dev'
36
+ Requires-Dist: ruff>=0.1.0; extra == 'dev'
37
+ Description-Content-Type: text/markdown
38
+
39
+ # Zyora CLI
40
+
41
+ AI-powered code generation and security scanning from the command line.
42
+
43
+ ## Installation
44
+
45
+ ```bash
46
+ pip install zyora-cli
47
+ ```
48
+
49
+ Or install from source:
50
+
51
+ ```bash
52
+ git clone https://github.com/zyoralabs/zyora-cli
53
+ cd zyora-cli
54
+ pip install -e .
55
+ ```
56
+
57
+ ## Quick Start
58
+
59
+ 1. **Get your API key** at [app.zyoralabs.com/register](https://app.zyoralabs.com/register)
60
+
61
+ 2. **Configure the CLI**:
62
+ ```bash
63
+ zyora config set api_key zy-your-api-key-here
64
+ ```
65
+
66
+ 3. **Start using Zyora**:
67
+ ```bash
68
+ # Interactive mode (like Claude Code)
69
+ zyora
70
+
71
+ # One-shot chat
72
+ zyora chat "Write a Python function to validate emails"
73
+
74
+ # Scan code for vulnerabilities
75
+ zyora scan file app.py
76
+ ```
77
+
78
+ ## Features
79
+
80
+ ### Interactive Mode
81
+
82
+ Start an interactive session with context awareness:
83
+
84
+ ```bash
85
+ zyora
86
+ ```
87
+
88
+ **Commands in interactive mode:**
89
+
90
+ | Command | Description |
91
+ |---------|-------------|
92
+ | `/help` | Show help |
93
+ | `/clear` | Clear conversation |
94
+ | `/context` | Show files in context |
95
+ | `/add <file>` | Add file to context |
96
+ | `/remove <file>` | Remove from context |
97
+ | `/scan <file>` | Scan file for vulnerabilities |
98
+ | `/project` | Show project summary |
99
+ | `/model` | Show model info |
100
+ | `/config` | Show configuration |
101
+ | `/exit` | Exit |
102
+
103
+ **Tips:**
104
+ - Use `@filename` to reference files in your prompt
105
+ - Pipe code directly: `cat app.py | zyora chat "explain this"`
106
+
107
+ ### Chat Mode
108
+
109
+ Send one-off prompts:
110
+
111
+ ```bash
112
+ # Simple prompt
113
+ zyora chat "Write a function to merge two sorted lists"
114
+
115
+ # With file context
116
+ zyora chat "Review this code" -c main.py -c utils.py
117
+
118
+ # From file
119
+ zyora chat -f prompt.txt
120
+
121
+ # Pipe input
122
+ cat code.py | zyora chat "Explain this code"
123
+
124
+ # Save output
125
+ zyora chat "Write a REST API" -o api.py
126
+ ```
127
+
128
+ ### Security Scanning
129
+
130
+ Scan code for vulnerabilities:
131
+
132
+ ```bash
133
+ # Scan a single file
134
+ zyora scan file app.py
135
+
136
+ # Scan a directory
137
+ zyora scan dir ./src
138
+
139
+ # Scan with specific extensions
140
+ zyora scan dir ./src --ext py,js
141
+
142
+ # Save results
143
+ zyora scan file app.py -o report.md
144
+ ```
145
+
146
+ The scanner detects:
147
+ - SQL Injection (CWE-89)
148
+ - Cross-Site Scripting (CWE-79)
149
+ - Command Injection (CWE-78)
150
+ - Path Traversal (CWE-22)
151
+ - Hardcoded Credentials (CWE-798)
152
+ - And many more...
153
+
154
+ ### Configuration
155
+
156
+ ```bash
157
+ # Show all config
158
+ zyora config show
159
+
160
+ # Set values
161
+ zyora config set api_key zy-xxx
162
+ zyora config set max_tokens 8192
163
+ zyora config set temperature 0.5
164
+
165
+ # Get a value
166
+ zyora config get model
167
+
168
+ # Reset to defaults
169
+ zyora config reset
170
+ ```
171
+
172
+ **Environment variables:**
173
+ - `ZYORA_API_KEY` - API key
174
+ - `ZYORA_API_BASE` - API base URL
175
+ - `ZYORA_MODEL` - Model to use
176
+ - `ZYORA_MAX_TOKENS` - Max response tokens
177
+
178
+ ## Examples
179
+
180
+ ### Generate Code
181
+
182
+ ```bash
183
+ # Generate a REST API
184
+ zyora chat "Create a FastAPI REST API with user authentication"
185
+
186
+ # Generate with context
187
+ zyora chat "Add error handling to this" -c server.py
188
+ ```
189
+
190
+ ### Review Code
191
+
192
+ ```bash
193
+ # Code review
194
+ cat pull_request.diff | zyora chat "Review this code change"
195
+
196
+ # Architecture review
197
+ zyora chat "Review the architecture" -c main.py -c models.py -c routes.py
198
+ ```
199
+
200
+ ### Security Audit
201
+
202
+ ```bash
203
+ # Full project scan
204
+ zyora scan dir ./src --recursive -o security-report.md
205
+
206
+ # Quick scan
207
+ zyora scan file api/auth.py
208
+ ```
209
+
210
+ ### Interactive Session
211
+
212
+ ```
213
+ $ zyora
214
+
215
+ ╔═══════════════════════════════════════════════════════════════╗
216
+ ║ ███████╗██╗ ██╗ ██████╗ ██████╗ █████╗ ║
217
+ ║ ╚══███╔╝╚██╗ ██╔╝██╔═══██╗██╔══██╗██╔══██╗ ║
218
+ ║ ███╔╝ ╚████╔╝ ██║ ██║██████╔╝███████║ ║
219
+ ║ ███╔╝ ╚██╔╝ ██║ ██║██╔══██╗██╔══██║ ║
220
+ ║ ███████╗ ██║ ╚██████╔╝██║ ██║██║ ██║ ║
221
+ ║ ╚══════╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝ ║
222
+ ║ ║
223
+ ║ AI-Powered Code Generation & Security Scanning ║
224
+ ╚═══════════════════════════════════════════════════════════════╝
225
+
226
+ Type /help for commands, /exit to quit
227
+
228
+ zyora > /add src/main.py
229
+ Added: src/main.py
230
+
231
+ zyora [1] > What does this code do?
232
+ ...
233
+ ```
234
+
235
+ ## API Usage
236
+
237
+ You can also use Zyora programmatically:
238
+
239
+ ```python
240
+ from zyora.client import ZyoraClient, Message
241
+
242
+ client = ZyoraClient(api_key="zy-xxx")
243
+
244
+ # Simple chat
245
+ response = client.chat([
246
+ Message(role="user", content="Write hello world in Python")
247
+ ])
248
+ print(response.content)
249
+
250
+ # Streaming
251
+ for chunk in client.chat(messages, stream=True):
252
+ print(chunk, end="")
253
+ ```
254
+
255
+ ## Requirements
256
+
257
+ - Python 3.9+
258
+ - API key from [app.zyoralabs.com](https://app.zyoralabs.com)
259
+
260
+ ## License
261
+
262
+ MIT License - see [LICENSE](LICENSE) for details.
263
+
264
+ ## Links
265
+
266
+ - **Website**: [zyoralabs.com](https://zyoralabs.com)
267
+ - **API Portal**: [app.zyoralabs.com](https://app.zyoralabs.com)
268
+ - **Documentation**: [app.zyoralabs.com/docs](https://app.zyoralabs.com/docs)
269
+ - **Model**: [huggingface.co/zyoralabs/Zyora-DEV-32B](https://huggingface.co/zyoralabs/Zyora-DEV-32B)
@@ -0,0 +1,231 @@
1
+ # Zyora CLI
2
+
3
+ AI-powered code generation and security scanning from the command line.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ pip install zyora-cli
9
+ ```
10
+
11
+ Or install from source:
12
+
13
+ ```bash
14
+ git clone https://github.com/zyoralabs/zyora-cli
15
+ cd zyora-cli
16
+ pip install -e .
17
+ ```
18
+
19
+ ## Quick Start
20
+
21
+ 1. **Get your API key** at [app.zyoralabs.com/register](https://app.zyoralabs.com/register)
22
+
23
+ 2. **Configure the CLI**:
24
+ ```bash
25
+ zyora config set api_key zy-your-api-key-here
26
+ ```
27
+
28
+ 3. **Start using Zyora**:
29
+ ```bash
30
+ # Interactive mode (like Claude Code)
31
+ zyora
32
+
33
+ # One-shot chat
34
+ zyora chat "Write a Python function to validate emails"
35
+
36
+ # Scan code for vulnerabilities
37
+ zyora scan file app.py
38
+ ```
39
+
40
+ ## Features
41
+
42
+ ### Interactive Mode
43
+
44
+ Start an interactive session with context awareness:
45
+
46
+ ```bash
47
+ zyora
48
+ ```
49
+
50
+ **Commands in interactive mode:**
51
+
52
+ | Command | Description |
53
+ |---------|-------------|
54
+ | `/help` | Show help |
55
+ | `/clear` | Clear conversation |
56
+ | `/context` | Show files in context |
57
+ | `/add <file>` | Add file to context |
58
+ | `/remove <file>` | Remove from context |
59
+ | `/scan <file>` | Scan file for vulnerabilities |
60
+ | `/project` | Show project summary |
61
+ | `/model` | Show model info |
62
+ | `/config` | Show configuration |
63
+ | `/exit` | Exit |
64
+
65
+ **Tips:**
66
+ - Use `@filename` to reference files in your prompt
67
+ - Pipe code directly: `cat app.py | zyora chat "explain this"`
68
+
69
+ ### Chat Mode
70
+
71
+ Send one-off prompts:
72
+
73
+ ```bash
74
+ # Simple prompt
75
+ zyora chat "Write a function to merge two sorted lists"
76
+
77
+ # With file context
78
+ zyora chat "Review this code" -c main.py -c utils.py
79
+
80
+ # From file
81
+ zyora chat -f prompt.txt
82
+
83
+ # Pipe input
84
+ cat code.py | zyora chat "Explain this code"
85
+
86
+ # Save output
87
+ zyora chat "Write a REST API" -o api.py
88
+ ```
89
+
90
+ ### Security Scanning
91
+
92
+ Scan code for vulnerabilities:
93
+
94
+ ```bash
95
+ # Scan a single file
96
+ zyora scan file app.py
97
+
98
+ # Scan a directory
99
+ zyora scan dir ./src
100
+
101
+ # Scan with specific extensions
102
+ zyora scan dir ./src --ext py,js
103
+
104
+ # Save results
105
+ zyora scan file app.py -o report.md
106
+ ```
107
+
108
+ The scanner detects:
109
+ - SQL Injection (CWE-89)
110
+ - Cross-Site Scripting (CWE-79)
111
+ - Command Injection (CWE-78)
112
+ - Path Traversal (CWE-22)
113
+ - Hardcoded Credentials (CWE-798)
114
+ - And many more...
115
+
116
+ ### Configuration
117
+
118
+ ```bash
119
+ # Show all config
120
+ zyora config show
121
+
122
+ # Set values
123
+ zyora config set api_key zy-xxx
124
+ zyora config set max_tokens 8192
125
+ zyora config set temperature 0.5
126
+
127
+ # Get a value
128
+ zyora config get model
129
+
130
+ # Reset to defaults
131
+ zyora config reset
132
+ ```
133
+
134
+ **Environment variables:**
135
+ - `ZYORA_API_KEY` - API key
136
+ - `ZYORA_API_BASE` - API base URL
137
+ - `ZYORA_MODEL` - Model to use
138
+ - `ZYORA_MAX_TOKENS` - Max response tokens
139
+
140
+ ## Examples
141
+
142
+ ### Generate Code
143
+
144
+ ```bash
145
+ # Generate a REST API
146
+ zyora chat "Create a FastAPI REST API with user authentication"
147
+
148
+ # Generate with context
149
+ zyora chat "Add error handling to this" -c server.py
150
+ ```
151
+
152
+ ### Review Code
153
+
154
+ ```bash
155
+ # Code review
156
+ cat pull_request.diff | zyora chat "Review this code change"
157
+
158
+ # Architecture review
159
+ zyora chat "Review the architecture" -c main.py -c models.py -c routes.py
160
+ ```
161
+
162
+ ### Security Audit
163
+
164
+ ```bash
165
+ # Full project scan
166
+ zyora scan dir ./src --recursive -o security-report.md
167
+
168
+ # Quick scan
169
+ zyora scan file api/auth.py
170
+ ```
171
+
172
+ ### Interactive Session
173
+
174
+ ```
175
+ $ zyora
176
+
177
+ ╔═══════════════════════════════════════════════════════════════╗
178
+ ║ ███████╗██╗ ██╗ ██████╗ ██████╗ █████╗ ║
179
+ ║ ╚══███╔╝╚██╗ ██╔╝██╔═══██╗██╔══██╗██╔══██╗ ║
180
+ ║ ███╔╝ ╚████╔╝ ██║ ██║██████╔╝███████║ ║
181
+ ║ ███╔╝ ╚██╔╝ ██║ ██║██╔══██╗██╔══██║ ║
182
+ ║ ███████╗ ██║ ╚██████╔╝██║ ██║██║ ██║ ║
183
+ ║ ╚══════╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝ ║
184
+ ║ ║
185
+ ║ AI-Powered Code Generation & Security Scanning ║
186
+ ╚═══════════════════════════════════════════════════════════════╝
187
+
188
+ Type /help for commands, /exit to quit
189
+
190
+ zyora > /add src/main.py
191
+ Added: src/main.py
192
+
193
+ zyora [1] > What does this code do?
194
+ ...
195
+ ```
196
+
197
+ ## API Usage
198
+
199
+ You can also use Zyora programmatically:
200
+
201
+ ```python
202
+ from zyora.client import ZyoraClient, Message
203
+
204
+ client = ZyoraClient(api_key="zy-xxx")
205
+
206
+ # Simple chat
207
+ response = client.chat([
208
+ Message(role="user", content="Write hello world in Python")
209
+ ])
210
+ print(response.content)
211
+
212
+ # Streaming
213
+ for chunk in client.chat(messages, stream=True):
214
+ print(chunk, end="")
215
+ ```
216
+
217
+ ## Requirements
218
+
219
+ - Python 3.9+
220
+ - API key from [app.zyoralabs.com](https://app.zyoralabs.com)
221
+
222
+ ## License
223
+
224
+ MIT License - see [LICENSE](LICENSE) for details.
225
+
226
+ ## Links
227
+
228
+ - **Website**: [zyoralabs.com](https://zyoralabs.com)
229
+ - **API Portal**: [app.zyoralabs.com](https://app.zyoralabs.com)
230
+ - **Documentation**: [app.zyoralabs.com/docs](https://app.zyoralabs.com/docs)
231
+ - **Model**: [huggingface.co/zyoralabs/Zyora-DEV-32B](https://huggingface.co/zyoralabs/Zyora-DEV-32B)
@@ -0,0 +1,66 @@
1
+ [build-system]
2
+ requires = ["hatchling"]
3
+ build-backend = "hatchling.build"
4
+
5
+ [project]
6
+ name = "zyora-cli"
7
+ version = "0.1.0"
8
+ description = "Zyora CLI - AI-powered code generation and security scanning"
9
+ readme = "README.md"
10
+ license = "MIT"
11
+ authors = [
12
+ { name = "Zyora Labs", email = "support@zyoralabs.com" }
13
+ ]
14
+ keywords = ["ai", "code-generation", "security", "cli", "llm"]
15
+ classifiers = [
16
+ "Development Status :: 4 - Beta",
17
+ "Environment :: Console",
18
+ "Intended Audience :: Developers",
19
+ "License :: OSI Approved :: MIT License",
20
+ "Operating System :: OS Independent",
21
+ "Programming Language :: Python :: 3",
22
+ "Programming Language :: Python :: 3.9",
23
+ "Programming Language :: Python :: 3.10",
24
+ "Programming Language :: Python :: 3.11",
25
+ "Programming Language :: Python :: 3.12",
26
+ "Topic :: Software Development",
27
+ "Topic :: Security",
28
+ ]
29
+ requires-python = ">=3.9"
30
+ dependencies = [
31
+ "typer[all]>=0.9.0",
32
+ "rich>=13.0.0",
33
+ "httpx>=0.25.0",
34
+ "prompt-toolkit>=3.0.0",
35
+ "pygments>=2.16.0",
36
+ "pydantic>=2.0.0",
37
+ "toml>=0.10.0",
38
+ "pathspec>=0.11.0",
39
+ ]
40
+
41
+ [project.optional-dependencies]
42
+ dev = [
43
+ "pytest>=7.0.0",
44
+ "pytest-asyncio>=0.21.0",
45
+ "black>=23.0.0",
46
+ "ruff>=0.1.0",
47
+ ]
48
+
49
+ [project.scripts]
50
+ zyora = "zyora.main:app"
51
+
52
+ [project.urls]
53
+ Homepage = "https://zyoralabs.com"
54
+ Documentation = "https://app.zyoralabs.com/docs"
55
+ Repository = "https://github.com/zyoralabs/zyora-cli"
56
+
57
+ [tool.hatch.build.targets.wheel]
58
+ packages = ["zyora"]
59
+
60
+ [tool.ruff]
61
+ line-length = 100
62
+ target-version = "py39"
63
+
64
+ [tool.black]
65
+ line-length = 100
66
+ target-version = ["py39"]
@@ -0,0 +1,4 @@
1
+ """Zyora CLI - AI-powered code generation and security scanning."""
2
+
3
+ __version__ = "0.1.0"
4
+ __app_name__ = "zyora"
@@ -0,0 +1,6 @@
1
+ """Entry point for running zyora as a module."""
2
+
3
+ from .main import app
4
+
5
+ if __name__ == "__main__":
6
+ app()