tunacode-cli 0.0.1__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.

Potentially problematic release.


This version of tunacode-cli might be problematic. Click here for more details.

Files changed (71) hide show
  1. tunacode_cli-0.0.1/LICENSE +21 -0
  2. tunacode_cli-0.0.1/PKG-INFO +242 -0
  3. tunacode_cli-0.0.1/README.md +207 -0
  4. tunacode_cli-0.0.1/pyproject.toml +56 -0
  5. tunacode_cli-0.0.1/setup.cfg +4 -0
  6. tunacode_cli-0.0.1/setup.py +10 -0
  7. tunacode_cli-0.0.1/src/tunacode/__init__.py +0 -0
  8. tunacode_cli-0.0.1/src/tunacode/cli/__init__.py +4 -0
  9. tunacode_cli-0.0.1/src/tunacode/cli/commands.py +632 -0
  10. tunacode_cli-0.0.1/src/tunacode/cli/main.py +47 -0
  11. tunacode_cli-0.0.1/src/tunacode/cli/repl.py +251 -0
  12. tunacode_cli-0.0.1/src/tunacode/configuration/__init__.py +1 -0
  13. tunacode_cli-0.0.1/src/tunacode/configuration/defaults.py +26 -0
  14. tunacode_cli-0.0.1/src/tunacode/configuration/models.py +69 -0
  15. tunacode_cli-0.0.1/src/tunacode/configuration/settings.py +32 -0
  16. tunacode_cli-0.0.1/src/tunacode/constants.py +129 -0
  17. tunacode_cli-0.0.1/src/tunacode/context.py +83 -0
  18. tunacode_cli-0.0.1/src/tunacode/core/__init__.py +0 -0
  19. tunacode_cli-0.0.1/src/tunacode/core/agents/__init__.py +0 -0
  20. tunacode_cli-0.0.1/src/tunacode/core/agents/main.py +119 -0
  21. tunacode_cli-0.0.1/src/tunacode/core/setup/__init__.py +17 -0
  22. tunacode_cli-0.0.1/src/tunacode/core/setup/agent_setup.py +41 -0
  23. tunacode_cli-0.0.1/src/tunacode/core/setup/base.py +37 -0
  24. tunacode_cli-0.0.1/src/tunacode/core/setup/config_setup.py +179 -0
  25. tunacode_cli-0.0.1/src/tunacode/core/setup/coordinator.py +45 -0
  26. tunacode_cli-0.0.1/src/tunacode/core/setup/environment_setup.py +62 -0
  27. tunacode_cli-0.0.1/src/tunacode/core/setup/git_safety_setup.py +188 -0
  28. tunacode_cli-0.0.1/src/tunacode/core/setup/undo_setup.py +32 -0
  29. tunacode_cli-0.0.1/src/tunacode/core/state.py +43 -0
  30. tunacode_cli-0.0.1/src/tunacode/core/tool_handler.py +57 -0
  31. tunacode_cli-0.0.1/src/tunacode/exceptions.py +105 -0
  32. tunacode_cli-0.0.1/src/tunacode/prompts/system.txt +71 -0
  33. tunacode_cli-0.0.1/src/tunacode/py.typed +0 -0
  34. tunacode_cli-0.0.1/src/tunacode/services/__init__.py +1 -0
  35. tunacode_cli-0.0.1/src/tunacode/services/mcp.py +86 -0
  36. tunacode_cli-0.0.1/src/tunacode/services/undo_service.py +244 -0
  37. tunacode_cli-0.0.1/src/tunacode/setup.py +50 -0
  38. tunacode_cli-0.0.1/src/tunacode/tools/__init__.py +0 -0
  39. tunacode_cli-0.0.1/src/tunacode/tools/base.py +244 -0
  40. tunacode_cli-0.0.1/src/tunacode/tools/read_file.py +89 -0
  41. tunacode_cli-0.0.1/src/tunacode/tools/run_command.py +107 -0
  42. tunacode_cli-0.0.1/src/tunacode/tools/update_file.py +117 -0
  43. tunacode_cli-0.0.1/src/tunacode/tools/write_file.py +82 -0
  44. tunacode_cli-0.0.1/src/tunacode/types.py +259 -0
  45. tunacode_cli-0.0.1/src/tunacode/ui/__init__.py +1 -0
  46. tunacode_cli-0.0.1/src/tunacode/ui/completers.py +129 -0
  47. tunacode_cli-0.0.1/src/tunacode/ui/console.py +74 -0
  48. tunacode_cli-0.0.1/src/tunacode/ui/constants.py +16 -0
  49. tunacode_cli-0.0.1/src/tunacode/ui/decorators.py +59 -0
  50. tunacode_cli-0.0.1/src/tunacode/ui/input.py +95 -0
  51. tunacode_cli-0.0.1/src/tunacode/ui/keybindings.py +27 -0
  52. tunacode_cli-0.0.1/src/tunacode/ui/lexers.py +46 -0
  53. tunacode_cli-0.0.1/src/tunacode/ui/output.py +109 -0
  54. tunacode_cli-0.0.1/src/tunacode/ui/panels.py +156 -0
  55. tunacode_cli-0.0.1/src/tunacode/ui/prompt_manager.py +117 -0
  56. tunacode_cli-0.0.1/src/tunacode/ui/tool_ui.py +187 -0
  57. tunacode_cli-0.0.1/src/tunacode/ui/validators.py +23 -0
  58. tunacode_cli-0.0.1/src/tunacode/utils/__init__.py +0 -0
  59. tunacode_cli-0.0.1/src/tunacode/utils/bm25.py +55 -0
  60. tunacode_cli-0.0.1/src/tunacode/utils/diff_utils.py +69 -0
  61. tunacode_cli-0.0.1/src/tunacode/utils/file_utils.py +41 -0
  62. tunacode_cli-0.0.1/src/tunacode/utils/ripgrep.py +17 -0
  63. tunacode_cli-0.0.1/src/tunacode/utils/system.py +336 -0
  64. tunacode_cli-0.0.1/src/tunacode/utils/text_utils.py +87 -0
  65. tunacode_cli-0.0.1/src/tunacode/utils/user_configuration.py +54 -0
  66. tunacode_cli-0.0.1/src/tunacode_cli.egg-info/PKG-INFO +242 -0
  67. tunacode_cli-0.0.1/src/tunacode_cli.egg-info/SOURCES.txt +69 -0
  68. tunacode_cli-0.0.1/src/tunacode_cli.egg-info/dependency_links.txt +1 -0
  69. tunacode_cli-0.0.1/src/tunacode_cli.egg-info/entry_points.txt +2 -0
  70. tunacode_cli-0.0.1/src/tunacode_cli.egg-info/requires.txt +13 -0
  71. tunacode_cli-0.0.1/src/tunacode_cli.egg-info/top_level.txt +1 -0
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Gavin Vickery
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,242 @@
1
+ Metadata-Version: 2.4
2
+ Name: tunacode-cli
3
+ Version: 0.0.1
4
+ Summary: Your agentic CLI developer.
5
+ Author-email: Gavin Vickery <gavin@geekforbrains.com>
6
+ License-Expression: MIT
7
+ Project-URL: Homepage, https://github.com/larock22/tunacode
8
+ Project-URL: Repository, https://github.com/larock22/tunacode
9
+ Keywords: cli,agent,development,automation
10
+ Classifier: Development Status :: 4 - Beta
11
+ Classifier: Intended Audience :: Developers
12
+ Classifier: Programming Language :: Python :: 3
13
+ Classifier: Programming Language :: Python :: 3.10
14
+ Classifier: Programming Language :: Python :: 3.11
15
+ Classifier: Programming Language :: Python :: 3.12
16
+ Classifier: Programming Language :: Python :: 3.13
17
+ Classifier: Topic :: Software Development
18
+ Classifier: Topic :: Utilities
19
+ Requires-Python: >=3.10
20
+ Description-Content-Type: text/markdown
21
+ License-File: LICENSE
22
+ Requires-Dist: prompt_toolkit==3.0.51
23
+ Requires-Dist: pydantic-ai[logfire]==0.2.6
24
+ Requires-Dist: pygments==2.19.1
25
+ Requires-Dist: rich==14.0.0
26
+ Requires-Dist: typer==0.15.3
27
+ Provides-Extra: dev
28
+ Requires-Dist: build; extra == "dev"
29
+ Requires-Dist: black; extra == "dev"
30
+ Requires-Dist: flake8; extra == "dev"
31
+ Requires-Dist: isort; extra == "dev"
32
+ Requires-Dist: pytest; extra == "dev"
33
+ Requires-Dist: pytest-cov; extra == "dev"
34
+ Dynamic: license-file
35
+
36
+ # TunaCode (Beta)
37
+
38
+ [![PyPI version](https://badge.fury.io/py/tunacode-cli.svg)](https://badge.fury.io/py/tunacode-cli)
39
+ [![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)
40
+
41
+ ![TunaCode Demo](screenshot.gif)
42
+
43
+ Your agentic CLI developer.
44
+
45
+ ## Overview
46
+
47
+ TunaCode is an agentic CLI-based AI tool inspired by Claude Code, Copilot, Windsurf and Cursor. It's meant
48
+ to be an open source alternative to these tools, providing a similar experience but with the flexibility of
49
+ using different LLM providers (Anthropic, OpenAI, Google Gemini, OpenRouter) while keeping the agentic workflow.
50
+
51
+ *TunaCode is currently in beta and under active development. Please [report issues](https://github.com/geekforbrains/tunacode-cli/issues) or share feedback!*
52
+
53
+ ## Features
54
+
55
+ - No vendor lock-in. Use whichever LLM provider you prefer.
56
+ - MCP support
57
+ - Use /undo when AI breaks things.
58
+ - Easily switch between models in the same session.
59
+ - JIT-style system prompt injection ensures TunaCode doesn't lose the plot.
60
+ - Per-project guide. Adjust TunaCode's behavior to suit your needs.
61
+ - CLI-first design. Ditch the clunky IDE.
62
+ - Cost and token tracking.
63
+ - Per command or per session confirmation skipping.
64
+
65
+ ## Roadmap
66
+
67
+ - Tests 😅
68
+ - More LLM providers, including OpenRouter and Ollama
69
+
70
+ ## Quick Start
71
+
72
+ Install TunaCode.
73
+
74
+ ```
75
+ pip install tunacode-cli
76
+ ```
77
+
78
+ On first run, you'll be asked to configure your LLM providers.
79
+
80
+ ```
81
+ tunacode
82
+ ```
83
+
84
+ ## Configuration
85
+
86
+ After initial setup, TunaCode saves a config file to `~/.config/tunacode.json`. You can open and
87
+ edit this file as needed. Future updates will make editing easier directly from within TunaCode.
88
+
89
+ ### OpenRouter Support
90
+
91
+ To use [OpenRouter](https://openrouter.ai) models, add an `OPENROUTER_API_KEY` to the
92
+ `env` section of your configuration file. TunaCode will set the environment variable so the
93
+ OpenAI client can communicate with OpenRouter:
94
+
95
+ ```json
96
+ {
97
+ "env": {
98
+ "OPENROUTER_API_KEY": "<YOUR_KEY>"
99
+ }
100
+ }
101
+ ```
102
+
103
+ Then run TunaCode with the OpenRouter base URL:
104
+
105
+ ```bash
106
+ OPENAI_BASE_URL="https://openrouter.ai/api/v1" tunacode
107
+ ```
108
+
109
+ You can now switch to OpenRouter models using:
110
+ ```
111
+ /model openrouter:mistralai/devstral-small
112
+ ```
113
+
114
+ ### MCP Support
115
+
116
+ TunaCode supports Model Context Protocol (MCP) servers. You can configure MCP servers in your `~/.config/tunacode.json` file:
117
+
118
+ ```json
119
+ {
120
+ "mcpServers": {
121
+ "fetch": {
122
+ "command": "uvx",
123
+ "args": ["mcp-server-fetch"]
124
+ },
125
+ "github": {
126
+ "command": "npx",
127
+ "args": ["-y", "@modelcontextprotocol/server-github"],
128
+ "env": {
129
+ "GITHUB_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>"
130
+ }
131
+ }
132
+ }
133
+ }
134
+ ```
135
+
136
+ MCP servers extend the capabilities of your AI assistant, allowing it to interact with additional tools and data sources. Learn more about MCP at [modelcontextprotocol.io](https://modelcontextprotocol.io/).
137
+
138
+ ### Available Commands
139
+
140
+ - `/help` - Show available commands
141
+ - `/yolo` - Toggle "yolo" mode (skip tool confirmations)
142
+ - `/clear` - Clear message history
143
+ - `/compact` - Summarize message history and clear old messages
144
+ - `/model` - List available models
145
+ - `/model <num>` - Switch to a specific model (by index)
146
+ - `/branch <name>` - Create and switch to a new Git branch
147
+ - `/undo` - Undo most recent changes
148
+ - `/dump` - Show current message history (for debugging)
149
+ - `exit` - Exit the application
150
+
151
+ ## Customization
152
+
153
+ TunaCode supports the use of a "guide". This is a `TUNACODE.md` file in the project root that contains
154
+ instructions for TunaCode. Helpful for specifying tech stack, project structure, development
155
+ preferences etc.
156
+
157
+ ## Requirements
158
+
159
+ - Python 3.10 or higher
160
+ - Git (for undo functionality)
161
+
162
+ ## Installation
163
+
164
+ ### Using pip
165
+
166
+ ```bash
167
+ pip install tunacode-cli
168
+ ```
169
+
170
+ ### From Source
171
+
172
+ 1. Clone the repository
173
+ 2. Install dependencies: `pip install .` (or `pip install -e .` for development)
174
+
175
+ ## Development
176
+
177
+ ```bash
178
+ # Install development dependencies
179
+ make install
180
+
181
+ # Run linting
182
+ make lint
183
+
184
+ # Run tests
185
+ make test
186
+ ```
187
+
188
+ ## Release Process
189
+
190
+ When preparing a new release:
191
+
192
+ 1. Update version numbers in:
193
+ - `pyproject.toml`
194
+ - `src/tunacode/constants.py` (APP_VERSION)
195
+
196
+ 2. Commit the version changes:
197
+ ```bash
198
+ git add pyproject.toml src/tunacode/constants.py
199
+ git commit -m "chore: bump version to X.Y.Z"
200
+ ```
201
+
202
+ 3. Create and push a tag:
203
+ ```bash
204
+ git tag vX.Y.Z
205
+ git push origin vX.Y.Z
206
+ ```
207
+
208
+ 4. Create a GitHub release:
209
+ ```bash
210
+ gh release create vX.Y.Z --title "vX.Y.Z" --notes "Release notes here"
211
+ ```
212
+
213
+ 5. Merge to main branch and push to trigger PyPI release (automated)
214
+
215
+ ### Commit Convention
216
+
217
+ This project follows the [Conventional Commits](https://www.conventionalcommits.org/) specification for commit messages:
218
+
219
+ - `feat:` - New features
220
+ - `fix:` - Bug fixes
221
+ - `docs:` - Documentation changes
222
+ - `style:` - Code style changes (formatting, etc.)
223
+ - `refactor:` - Code refactoring
224
+ - `perf:` - Performance improvements
225
+ - `test:` - Test additions or modifications
226
+ - `chore:` - Maintenance tasks (version bumps, etc.)
227
+ - `build:` - Build system changes
228
+ - `ci:` - CI configuration changes
229
+
230
+ ## Links
231
+
232
+ - [PyPI Package](https://pypi.org/project/tunacode-cli/)
233
+ - [GitHub Issues](https://github.com/geekforbrains/tunacode-cli/issues)
234
+ - [GitHub Repository](https://github.com/geekforbrains/tunacode-cli)
235
+
236
+ ## License
237
+
238
+ MIT
239
+
240
+ ## Acknowledgments
241
+
242
+ This project is a fork of [sidekick-cli](https://github.com/geekforbrains/sidekick-cli). Thank you to the sidekick-cli team for creating the foundation that made TunaCode possible! 🙏
@@ -0,0 +1,207 @@
1
+ # TunaCode (Beta)
2
+
3
+ [![PyPI version](https://badge.fury.io/py/tunacode-cli.svg)](https://badge.fury.io/py/tunacode-cli)
4
+ [![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)
5
+
6
+ ![TunaCode Demo](screenshot.gif)
7
+
8
+ Your agentic CLI developer.
9
+
10
+ ## Overview
11
+
12
+ TunaCode is an agentic CLI-based AI tool inspired by Claude Code, Copilot, Windsurf and Cursor. It's meant
13
+ to be an open source alternative to these tools, providing a similar experience but with the flexibility of
14
+ using different LLM providers (Anthropic, OpenAI, Google Gemini, OpenRouter) while keeping the agentic workflow.
15
+
16
+ *TunaCode is currently in beta and under active development. Please [report issues](https://github.com/geekforbrains/tunacode-cli/issues) or share feedback!*
17
+
18
+ ## Features
19
+
20
+ - No vendor lock-in. Use whichever LLM provider you prefer.
21
+ - MCP support
22
+ - Use /undo when AI breaks things.
23
+ - Easily switch between models in the same session.
24
+ - JIT-style system prompt injection ensures TunaCode doesn't lose the plot.
25
+ - Per-project guide. Adjust TunaCode's behavior to suit your needs.
26
+ - CLI-first design. Ditch the clunky IDE.
27
+ - Cost and token tracking.
28
+ - Per command or per session confirmation skipping.
29
+
30
+ ## Roadmap
31
+
32
+ - Tests 😅
33
+ - More LLM providers, including OpenRouter and Ollama
34
+
35
+ ## Quick Start
36
+
37
+ Install TunaCode.
38
+
39
+ ```
40
+ pip install tunacode-cli
41
+ ```
42
+
43
+ On first run, you'll be asked to configure your LLM providers.
44
+
45
+ ```
46
+ tunacode
47
+ ```
48
+
49
+ ## Configuration
50
+
51
+ After initial setup, TunaCode saves a config file to `~/.config/tunacode.json`. You can open and
52
+ edit this file as needed. Future updates will make editing easier directly from within TunaCode.
53
+
54
+ ### OpenRouter Support
55
+
56
+ To use [OpenRouter](https://openrouter.ai) models, add an `OPENROUTER_API_KEY` to the
57
+ `env` section of your configuration file. TunaCode will set the environment variable so the
58
+ OpenAI client can communicate with OpenRouter:
59
+
60
+ ```json
61
+ {
62
+ "env": {
63
+ "OPENROUTER_API_KEY": "<YOUR_KEY>"
64
+ }
65
+ }
66
+ ```
67
+
68
+ Then run TunaCode with the OpenRouter base URL:
69
+
70
+ ```bash
71
+ OPENAI_BASE_URL="https://openrouter.ai/api/v1" tunacode
72
+ ```
73
+
74
+ You can now switch to OpenRouter models using:
75
+ ```
76
+ /model openrouter:mistralai/devstral-small
77
+ ```
78
+
79
+ ### MCP Support
80
+
81
+ TunaCode supports Model Context Protocol (MCP) servers. You can configure MCP servers in your `~/.config/tunacode.json` file:
82
+
83
+ ```json
84
+ {
85
+ "mcpServers": {
86
+ "fetch": {
87
+ "command": "uvx",
88
+ "args": ["mcp-server-fetch"]
89
+ },
90
+ "github": {
91
+ "command": "npx",
92
+ "args": ["-y", "@modelcontextprotocol/server-github"],
93
+ "env": {
94
+ "GITHUB_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>"
95
+ }
96
+ }
97
+ }
98
+ }
99
+ ```
100
+
101
+ MCP servers extend the capabilities of your AI assistant, allowing it to interact with additional tools and data sources. Learn more about MCP at [modelcontextprotocol.io](https://modelcontextprotocol.io/).
102
+
103
+ ### Available Commands
104
+
105
+ - `/help` - Show available commands
106
+ - `/yolo` - Toggle "yolo" mode (skip tool confirmations)
107
+ - `/clear` - Clear message history
108
+ - `/compact` - Summarize message history and clear old messages
109
+ - `/model` - List available models
110
+ - `/model <num>` - Switch to a specific model (by index)
111
+ - `/branch <name>` - Create and switch to a new Git branch
112
+ - `/undo` - Undo most recent changes
113
+ - `/dump` - Show current message history (for debugging)
114
+ - `exit` - Exit the application
115
+
116
+ ## Customization
117
+
118
+ TunaCode supports the use of a "guide". This is a `TUNACODE.md` file in the project root that contains
119
+ instructions for TunaCode. Helpful for specifying tech stack, project structure, development
120
+ preferences etc.
121
+
122
+ ## Requirements
123
+
124
+ - Python 3.10 or higher
125
+ - Git (for undo functionality)
126
+
127
+ ## Installation
128
+
129
+ ### Using pip
130
+
131
+ ```bash
132
+ pip install tunacode-cli
133
+ ```
134
+
135
+ ### From Source
136
+
137
+ 1. Clone the repository
138
+ 2. Install dependencies: `pip install .` (or `pip install -e .` for development)
139
+
140
+ ## Development
141
+
142
+ ```bash
143
+ # Install development dependencies
144
+ make install
145
+
146
+ # Run linting
147
+ make lint
148
+
149
+ # Run tests
150
+ make test
151
+ ```
152
+
153
+ ## Release Process
154
+
155
+ When preparing a new release:
156
+
157
+ 1. Update version numbers in:
158
+ - `pyproject.toml`
159
+ - `src/tunacode/constants.py` (APP_VERSION)
160
+
161
+ 2. Commit the version changes:
162
+ ```bash
163
+ git add pyproject.toml src/tunacode/constants.py
164
+ git commit -m "chore: bump version to X.Y.Z"
165
+ ```
166
+
167
+ 3. Create and push a tag:
168
+ ```bash
169
+ git tag vX.Y.Z
170
+ git push origin vX.Y.Z
171
+ ```
172
+
173
+ 4. Create a GitHub release:
174
+ ```bash
175
+ gh release create vX.Y.Z --title "vX.Y.Z" --notes "Release notes here"
176
+ ```
177
+
178
+ 5. Merge to main branch and push to trigger PyPI release (automated)
179
+
180
+ ### Commit Convention
181
+
182
+ This project follows the [Conventional Commits](https://www.conventionalcommits.org/) specification for commit messages:
183
+
184
+ - `feat:` - New features
185
+ - `fix:` - Bug fixes
186
+ - `docs:` - Documentation changes
187
+ - `style:` - Code style changes (formatting, etc.)
188
+ - `refactor:` - Code refactoring
189
+ - `perf:` - Performance improvements
190
+ - `test:` - Test additions or modifications
191
+ - `chore:` - Maintenance tasks (version bumps, etc.)
192
+ - `build:` - Build system changes
193
+ - `ci:` - CI configuration changes
194
+
195
+ ## Links
196
+
197
+ - [PyPI Package](https://pypi.org/project/tunacode-cli/)
198
+ - [GitHub Issues](https://github.com/geekforbrains/tunacode-cli/issues)
199
+ - [GitHub Repository](https://github.com/geekforbrains/tunacode-cli)
200
+
201
+ ## License
202
+
203
+ MIT
204
+
205
+ ## Acknowledgments
206
+
207
+ This project is a fork of [sidekick-cli](https://github.com/geekforbrains/sidekick-cli). Thank you to the sidekick-cli team for creating the foundation that made TunaCode possible! 🙏
@@ -0,0 +1,56 @@
1
+ [build-system]
2
+ requires = ["setuptools>=61.0.0", "wheel"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "tunacode-cli"
7
+ version = "0.0.1"
8
+ description = "Your agentic CLI developer."
9
+ keywords = ["cli", "agent", "development", "automation"]
10
+ readme = "README.md"
11
+ requires-python = ">=3.10"
12
+ license = "MIT"
13
+ authors = [
14
+ { name = "Gavin Vickery", email = "gavin@geekforbrains.com" },
15
+ ]
16
+ classifiers = [
17
+ "Development Status :: 4 - Beta",
18
+ "Intended Audience :: Developers",
19
+ "Programming Language :: Python :: 3",
20
+ "Programming Language :: Python :: 3.10",
21
+ "Programming Language :: Python :: 3.11",
22
+ "Programming Language :: Python :: 3.12",
23
+ "Programming Language :: Python :: 3.13",
24
+ "Topic :: Software Development",
25
+ "Topic :: Utilities",
26
+ ]
27
+ dependencies = [
28
+ "prompt_toolkit==3.0.51",
29
+ "pydantic-ai[logfire]==0.2.6",
30
+ "pygments==2.19.1",
31
+ "rich==14.0.0",
32
+ "typer==0.15.3",
33
+ ]
34
+
35
+ [project.scripts]
36
+ tunacode = "tunacode.cli.main:app"
37
+
38
+ [project.optional-dependencies]
39
+ dev = [
40
+ "build",
41
+ "black",
42
+ "flake8",
43
+ "isort",
44
+ "pytest",
45
+ "pytest-cov",
46
+ ]
47
+
48
+ [project.urls]
49
+ Homepage = "https://github.com/larock22/tunacode"
50
+ Repository = "https://github.com/larock22/tunacode"
51
+
52
+ [tool.black]
53
+ line-length = 100
54
+
55
+ [tool.isort]
56
+ line_length = 100
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1,10 @@
1
+ from setuptools import setup, find_namespace_packages
2
+
3
+ setup(
4
+ package_dir={"": "src"},
5
+ packages=find_namespace_packages(where="src"),
6
+ include_package_data=True,
7
+ package_data={
8
+ "tunacode": ["prompts/*.txt"],
9
+ },
10
+ )
File without changes
@@ -0,0 +1,4 @@
1
+ # CLI package
2
+ from .main import app
3
+
4
+ __all__ = ["app"]