babincli 1.0.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.
babincli-1.0.0/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 KGFCH2
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,127 @@
1
+ Metadata-Version: 2.4
2
+ Name: babincli
3
+ Version: 1.0.0
4
+ Summary: BabinCLI: A powerful, interactive terminal assistant powered by Gemini.
5
+ Author-email: KGFCH2 <your-email@example.com>
6
+ License: MIT
7
+ Project-URL: Homepage, https://github.com/KGFCH2/BabinCLI
8
+ Project-URL: Documentation, https://KGFCH2.github.io/BabinCLI/
9
+ Project-URL: Repository, https://github.com/KGFCH2/BabinCLI
10
+ Project-URL: Bug Tracker, https://github.com/KGFCH2/BabinCLI/issues
11
+ Keywords: cli,gemini,ai,terminal,assistant,chatbot
12
+ Classifier: Development Status :: 5 - Production/Stable
13
+ Classifier: Environment :: Console
14
+ Classifier: Intended Audience :: Developers
15
+ Classifier: Intended Audience :: End Users/Desktop
16
+ Classifier: License :: OSI Approved :: MIT License
17
+ Classifier: Operating System :: OS Independent
18
+ Classifier: Programming Language :: Python :: 3
19
+ Classifier: Programming Language :: Python :: 3.9
20
+ Classifier: Programming Language :: Python :: 3.10
21
+ Classifier: Programming Language :: Python :: 3.11
22
+ Classifier: Programming Language :: Python :: 3.12
23
+ Classifier: Programming Language :: Python :: 3.13
24
+ Classifier: Topic :: Utilities
25
+ Requires-Python: >=3.9
26
+ Description-Content-Type: text/markdown
27
+ License-File: LICENSE
28
+ Requires-Dist: click>=8.0
29
+ Requires-Dist: google-generativeai>=0.3.0
30
+ Requires-Dist: python-dotenv>=1.0.0
31
+ Requires-Dist: rich>=13.0
32
+ Dynamic: license-file
33
+
34
+ # BabinCLI
35
+
36
+ [![PyPI version](https://badge.fury.io/py/babincli.svg)](https://pypi.org/project/babincli/)
37
+ [![Python 3.9+](https://img.shields.io/badge/python-3.9%2B-blue.svg)](https://www.python.org/downloads/)
38
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
39
+
40
+ BabinCLI is a powerful terminal assistant powered by Google's Gemini AI. It provides an interactive interface for chatting and a direct command for single queries.
41
+
42
+ ## Features
43
+ - Interactive Chat: Continuous conversation with memory.
44
+ - Formatted Output: Markdown support for clear terminal responses.
45
+ - Model Selection: Ability to switch between different Gemini models.
46
+ - Cross-platform: Works on Windows, macOS, and Linux.
47
+
48
+ ## Prerequisites
49
+ - Python 3.9 or higher.
50
+ - A Gemini API Key from Google AI Studio.
51
+
52
+ ## Installation
53
+
54
+ ### Install from PyPI (Recommended)
55
+ ```bash
56
+ pip install babincli
57
+ ```
58
+
59
+ ### Install from GitHub
60
+ ```bash
61
+ pip install git+https://github.com/KGFCH2/BabinCLI.git
62
+ ```
63
+
64
+ ### Install from Source
65
+ If you have downloaded or cloned the source code:
66
+ 1. Clone the repository:
67
+ ```bash
68
+ git clone https://github.com/KGFCH2/BabinCLI.git
69
+ cd BabinCLI
70
+ ```
71
+
72
+ 2. Install the package locally:
73
+ ```bash
74
+ pip install .
75
+ ```
76
+
77
+ Note for Windows Users: If the "babin" command is not recognized after installation, ensure that your Python Scripts folder is added to your System PATH. Alternatively, you can run the tool using:
78
+ ```bash
79
+ python -m babin_cli.main chat
80
+ ```
81
+
82
+ ## Configuration
83
+
84
+ You must set your Gemini API Key as an environment variable for the tool to function.
85
+
86
+ Windows (PowerShell):
87
+ ```powershell
88
+ $env:GEMINI_API_KEY="your_api_key_here"
89
+ ```
90
+
91
+ Windows (Command Prompt):
92
+ ```cmd
93
+ set GEMINI_API_KEY=your_api_key_here
94
+ ```
95
+
96
+ Linux or macOS:
97
+ ```bash
98
+ export GEMINI_API_KEY="your_api_key_here"
99
+ ```
100
+
101
+ ## Usage
102
+
103
+ ### Interactive Chat Mode
104
+ Run the following command to start a continuous conversation:
105
+ ```bash
106
+ babin chat
107
+ ```
108
+
109
+ To use a specific model (e.g., if you hit quota limits):
110
+ ```bash
111
+ babin --model gemini-flash-latest chat
112
+ ```
113
+
114
+ ### Single Question
115
+ Ask a quick question without entering chat mode:
116
+ ```bash
117
+ babin ask "How do I create a list in Python?"
118
+ ```
119
+
120
+ ### List Available Models
121
+ Check which models your API key has access to:
122
+ ```bash
123
+ babin list-models
124
+ ```
125
+
126
+ ## Documentation
127
+ Additional documentation and download instructions are available at https://KGFCH2.github.io/BabinCLI/
@@ -0,0 +1,94 @@
1
+ # BabinCLI
2
+
3
+ [![PyPI version](https://badge.fury.io/py/babincli.svg)](https://pypi.org/project/babincli/)
4
+ [![Python 3.9+](https://img.shields.io/badge/python-3.9%2B-blue.svg)](https://www.python.org/downloads/)
5
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
6
+
7
+ BabinCLI is a powerful terminal assistant powered by Google's Gemini AI. It provides an interactive interface for chatting and a direct command for single queries.
8
+
9
+ ## Features
10
+ - Interactive Chat: Continuous conversation with memory.
11
+ - Formatted Output: Markdown support for clear terminal responses.
12
+ - Model Selection: Ability to switch between different Gemini models.
13
+ - Cross-platform: Works on Windows, macOS, and Linux.
14
+
15
+ ## Prerequisites
16
+ - Python 3.9 or higher.
17
+ - A Gemini API Key from Google AI Studio.
18
+
19
+ ## Installation
20
+
21
+ ### Install from PyPI (Recommended)
22
+ ```bash
23
+ pip install babincli
24
+ ```
25
+
26
+ ### Install from GitHub
27
+ ```bash
28
+ pip install git+https://github.com/KGFCH2/BabinCLI.git
29
+ ```
30
+
31
+ ### Install from Source
32
+ If you have downloaded or cloned the source code:
33
+ 1. Clone the repository:
34
+ ```bash
35
+ git clone https://github.com/KGFCH2/BabinCLI.git
36
+ cd BabinCLI
37
+ ```
38
+
39
+ 2. Install the package locally:
40
+ ```bash
41
+ pip install .
42
+ ```
43
+
44
+ Note for Windows Users: If the "babin" command is not recognized after installation, ensure that your Python Scripts folder is added to your System PATH. Alternatively, you can run the tool using:
45
+ ```bash
46
+ python -m babin_cli.main chat
47
+ ```
48
+
49
+ ## Configuration
50
+
51
+ You must set your Gemini API Key as an environment variable for the tool to function.
52
+
53
+ Windows (PowerShell):
54
+ ```powershell
55
+ $env:GEMINI_API_KEY="your_api_key_here"
56
+ ```
57
+
58
+ Windows (Command Prompt):
59
+ ```cmd
60
+ set GEMINI_API_KEY=your_api_key_here
61
+ ```
62
+
63
+ Linux or macOS:
64
+ ```bash
65
+ export GEMINI_API_KEY="your_api_key_here"
66
+ ```
67
+
68
+ ## Usage
69
+
70
+ ### Interactive Chat Mode
71
+ Run the following command to start a continuous conversation:
72
+ ```bash
73
+ babin chat
74
+ ```
75
+
76
+ To use a specific model (e.g., if you hit quota limits):
77
+ ```bash
78
+ babin --model gemini-flash-latest chat
79
+ ```
80
+
81
+ ### Single Question
82
+ Ask a quick question without entering chat mode:
83
+ ```bash
84
+ babin ask "How do I create a list in Python?"
85
+ ```
86
+
87
+ ### List Available Models
88
+ Check which models your API key has access to:
89
+ ```bash
90
+ babin list-models
91
+ ```
92
+
93
+ ## Documentation
94
+ Additional documentation and download instructions are available at https://KGFCH2.github.io/BabinCLI/
@@ -0,0 +1,3 @@
1
+ """BabinCLI: A powerful, interactive terminal assistant powered by Gemini."""
2
+
3
+ __version__ = "1.0.0"
@@ -0,0 +1,97 @@
1
+ import click
2
+ import os
3
+ import google.generativeai as genai
4
+ from dotenv import load_dotenv
5
+ from rich.console import Console
6
+ from rich.markdown import Markdown
7
+ from rich.panel import Panel
8
+ from rich.prompt import Prompt
9
+
10
+ # Load environment variables
11
+ load_dotenv()
12
+
13
+ console = Console()
14
+
15
+ @click.group()
16
+ @click.option('--model', default='gemini-flash-latest', help='AI model to use.')
17
+ @click.pass_context
18
+ def cli(ctx, model):
19
+ """BabinCLI: Your Advanced Gemini-Powered Assistant."""
20
+ ctx.ensure_object(dict)
21
+ ctx.obj['MODEL'] = model
22
+
23
+ @cli.command()
24
+ def list_models():
25
+ """List all AI models available for your API key."""
26
+ api_key = os.getenv("GEMINI_API_KEY")
27
+ if not api_key:
28
+ console.print("[bold red]Error:[/] GEMINI_API_KEY not found.")
29
+ return
30
+
31
+ genai.configure(api_key=api_key)
32
+ try:
33
+ models = genai.list_models()
34
+ console.print("[bold cyan]Available Models:[/]")
35
+ for m in models:
36
+ if 'generateContent' in m.supported_generation_methods:
37
+ console.print(f" - {m.name}")
38
+ except Exception as e:
39
+ console.print(f"[bold red]Error listing models:[/] {e}")
40
+
41
+ @cli.command()
42
+ @click.pass_context
43
+ def chat(ctx):
44
+ """Start an interactive chat session with history."""
45
+ model_name = ctx.obj['MODEL']
46
+ api_key = os.getenv("GEMINI_API_KEY")
47
+ if not api_key:
48
+ console.print("[bold red]Error:[/] GEMINI_API_KEY not found.")
49
+ return
50
+
51
+ genai.configure(api_key=api_key)
52
+ try:
53
+ console.print(f"[dim]Using model: {model_name}[/]")
54
+ model = genai.GenerativeModel(model_name)
55
+ chat_session = model.start_chat(history=[])
56
+ console.print(Panel("[bold cyan]BabinCLI Interactive Mode[/]\nType 'exit' or 'quit' to end the session.", border_style="blue"))
57
+
58
+ while True:
59
+ user_input = Prompt.ask("[bold green]You[/]")
60
+
61
+ if user_input.lower() in ["exit", "quit", ""]:
62
+ if user_input.lower() != "":
63
+ console.print("[bold yellow]Goodbye![/]")
64
+ break
65
+ continue
66
+
67
+ with console.status("[bold blue]Thinking...", spinner="dots"):
68
+ response = chat_session.send_message(user_input)
69
+ console.print("\n[bold magenta]AI:[/]")
70
+ console.print(Markdown(response.text))
71
+ console.print("-" * 20)
72
+ except Exception as e:
73
+ console.print(Panel(f"[bold red]Error:[/] {e}\n\n[yellow]Try switching models using --model, e.g.:\n'babin --model gemini-flash-latest chat'[/]", title="Model Access Error"))
74
+
75
+ @cli.command()
76
+ @click.argument('prompt')
77
+ @click.pass_context
78
+ def ask(ctx, prompt):
79
+ """Ask a single question and get a formatted response."""
80
+ model_name = ctx.obj['MODEL']
81
+ api_key = os.getenv("GEMINI_API_KEY")
82
+ if not api_key:
83
+ console.print("[bold red]Error:[/] GEMINI_API_KEY not found.")
84
+ return
85
+
86
+ try:
87
+ genai.configure(api_key=api_key)
88
+ model = genai.GenerativeModel(model_name)
89
+ with console.status(f"[bold blue]Querying {model_name}..."):
90
+ response = model.generate_content(prompt)
91
+
92
+ console.print(Panel(Markdown(response.text), title=f"[bold cyan]Response ({model_name})", border_style="green"))
93
+ except Exception as e:
94
+ console.print(f"[bold red]Error:[/] {e}")
95
+
96
+ if __name__ == '__main__':
97
+ cli()
@@ -0,0 +1,127 @@
1
+ Metadata-Version: 2.4
2
+ Name: babincli
3
+ Version: 1.0.0
4
+ Summary: BabinCLI: A powerful, interactive terminal assistant powered by Gemini.
5
+ Author-email: KGFCH2 <your-email@example.com>
6
+ License: MIT
7
+ Project-URL: Homepage, https://github.com/KGFCH2/BabinCLI
8
+ Project-URL: Documentation, https://KGFCH2.github.io/BabinCLI/
9
+ Project-URL: Repository, https://github.com/KGFCH2/BabinCLI
10
+ Project-URL: Bug Tracker, https://github.com/KGFCH2/BabinCLI/issues
11
+ Keywords: cli,gemini,ai,terminal,assistant,chatbot
12
+ Classifier: Development Status :: 5 - Production/Stable
13
+ Classifier: Environment :: Console
14
+ Classifier: Intended Audience :: Developers
15
+ Classifier: Intended Audience :: End Users/Desktop
16
+ Classifier: License :: OSI Approved :: MIT License
17
+ Classifier: Operating System :: OS Independent
18
+ Classifier: Programming Language :: Python :: 3
19
+ Classifier: Programming Language :: Python :: 3.9
20
+ Classifier: Programming Language :: Python :: 3.10
21
+ Classifier: Programming Language :: Python :: 3.11
22
+ Classifier: Programming Language :: Python :: 3.12
23
+ Classifier: Programming Language :: Python :: 3.13
24
+ Classifier: Topic :: Utilities
25
+ Requires-Python: >=3.9
26
+ Description-Content-Type: text/markdown
27
+ License-File: LICENSE
28
+ Requires-Dist: click>=8.0
29
+ Requires-Dist: google-generativeai>=0.3.0
30
+ Requires-Dist: python-dotenv>=1.0.0
31
+ Requires-Dist: rich>=13.0
32
+ Dynamic: license-file
33
+
34
+ # BabinCLI
35
+
36
+ [![PyPI version](https://badge.fury.io/py/babincli.svg)](https://pypi.org/project/babincli/)
37
+ [![Python 3.9+](https://img.shields.io/badge/python-3.9%2B-blue.svg)](https://www.python.org/downloads/)
38
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
39
+
40
+ BabinCLI is a powerful terminal assistant powered by Google's Gemini AI. It provides an interactive interface for chatting and a direct command for single queries.
41
+
42
+ ## Features
43
+ - Interactive Chat: Continuous conversation with memory.
44
+ - Formatted Output: Markdown support for clear terminal responses.
45
+ - Model Selection: Ability to switch between different Gemini models.
46
+ - Cross-platform: Works on Windows, macOS, and Linux.
47
+
48
+ ## Prerequisites
49
+ - Python 3.9 or higher.
50
+ - A Gemini API Key from Google AI Studio.
51
+
52
+ ## Installation
53
+
54
+ ### Install from PyPI (Recommended)
55
+ ```bash
56
+ pip install babincli
57
+ ```
58
+
59
+ ### Install from GitHub
60
+ ```bash
61
+ pip install git+https://github.com/KGFCH2/BabinCLI.git
62
+ ```
63
+
64
+ ### Install from Source
65
+ If you have downloaded or cloned the source code:
66
+ 1. Clone the repository:
67
+ ```bash
68
+ git clone https://github.com/KGFCH2/BabinCLI.git
69
+ cd BabinCLI
70
+ ```
71
+
72
+ 2. Install the package locally:
73
+ ```bash
74
+ pip install .
75
+ ```
76
+
77
+ Note for Windows Users: If the "babin" command is not recognized after installation, ensure that your Python Scripts folder is added to your System PATH. Alternatively, you can run the tool using:
78
+ ```bash
79
+ python -m babin_cli.main chat
80
+ ```
81
+
82
+ ## Configuration
83
+
84
+ You must set your Gemini API Key as an environment variable for the tool to function.
85
+
86
+ Windows (PowerShell):
87
+ ```powershell
88
+ $env:GEMINI_API_KEY="your_api_key_here"
89
+ ```
90
+
91
+ Windows (Command Prompt):
92
+ ```cmd
93
+ set GEMINI_API_KEY=your_api_key_here
94
+ ```
95
+
96
+ Linux or macOS:
97
+ ```bash
98
+ export GEMINI_API_KEY="your_api_key_here"
99
+ ```
100
+
101
+ ## Usage
102
+
103
+ ### Interactive Chat Mode
104
+ Run the following command to start a continuous conversation:
105
+ ```bash
106
+ babin chat
107
+ ```
108
+
109
+ To use a specific model (e.g., if you hit quota limits):
110
+ ```bash
111
+ babin --model gemini-flash-latest chat
112
+ ```
113
+
114
+ ### Single Question
115
+ Ask a quick question without entering chat mode:
116
+ ```bash
117
+ babin ask "How do I create a list in Python?"
118
+ ```
119
+
120
+ ### List Available Models
121
+ Check which models your API key has access to:
122
+ ```bash
123
+ babin list-models
124
+ ```
125
+
126
+ ## Documentation
127
+ Additional documentation and download instructions are available at https://KGFCH2.github.io/BabinCLI/
@@ -0,0 +1,11 @@
1
+ LICENSE
2
+ README.md
3
+ pyproject.toml
4
+ babin_cli/__init__.py
5
+ babin_cli/main.py
6
+ babincli.egg-info/PKG-INFO
7
+ babincli.egg-info/SOURCES.txt
8
+ babincli.egg-info/dependency_links.txt
9
+ babincli.egg-info/entry_points.txt
10
+ babincli.egg-info/requires.txt
11
+ babincli.egg-info/top_level.txt
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ babin = babin_cli.main:cli
@@ -0,0 +1,4 @@
1
+ click>=8.0
2
+ google-generativeai>=0.3.0
3
+ python-dotenv>=1.0.0
4
+ rich>=13.0
@@ -0,0 +1 @@
1
+ babin_cli
@@ -0,0 +1,46 @@
1
+ [build-system]
2
+ requires = ["setuptools>=68.0", "wheel"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "babincli"
7
+ version = "1.0.0"
8
+ description = "BabinCLI: A powerful, interactive terminal assistant powered by Gemini."
9
+ readme = "README.md"
10
+ license = {text = "MIT"}
11
+ authors = [{ name = "KGFCH2", email = "your-email@example.com" }]
12
+ requires-python = ">=3.9"
13
+ keywords = ["cli", "gemini", "ai", "terminal", "assistant", "chatbot"]
14
+ classifiers = [
15
+ "Development Status :: 5 - Production/Stable",
16
+ "Environment :: Console",
17
+ "Intended Audience :: Developers",
18
+ "Intended Audience :: End Users/Desktop",
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
+ "Programming Language :: Python :: 3.13",
27
+ "Topic :: Utilities",
28
+ ]
29
+ dependencies = [
30
+ "click>=8.0",
31
+ "google-generativeai>=0.3.0",
32
+ "python-dotenv>=1.0.0",
33
+ "rich>=13.0",
34
+ ]
35
+
36
+ [project.urls]
37
+ Homepage = "https://github.com/KGFCH2/BabinCLI"
38
+ Documentation = "https://KGFCH2.github.io/BabinCLI/"
39
+ Repository = "https://github.com/KGFCH2/BabinCLI"
40
+ "Bug Tracker" = "https://github.com/KGFCH2/BabinCLI/issues"
41
+
42
+ [project.scripts]
43
+ babin = "babin_cli.main:cli"
44
+
45
+ [tool.setuptools.packages.find]
46
+ include = ["babin_cli*"]
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+