Gemini Starter Agent
Gemini Starter Agent is a Python CLI that scaffolds AI agent projects using the OpenAI Agents SDK with OpenAI-compatible providers. It currently supports Gemini, Groq, and xAI (Grok), creates a UV-managed project, installs runtime dependencies, and generates a ready-to-run agent template.
Features
- Bootstrap a new AI agent project from one CLI command.
- Choose Gemini, Groq, or xAI (Grok) during setup.
- Select a default model or enter a custom OpenAI-compatible model name.
- Create a new project folder or write into the current directory with
.. - Generate
.env,src/<package>/main.py, andpyproject.tomlscript entries. - Install
openai-agentsandpython-dotenvinto the generated project with UV.
Installation
pip install gemini-starter-agent
The package installs this console command:
gemini-starter-agent
Usage
Create a new project folder:
gemini-starter-agent my-agent
Use the current directory and skip the project-name prompt:
gemini-starter-agent .
Run interactively and enter the project name when prompted:
gemini-starter-agent
If the current directory is not empty and you use ., the CLI asks for confirmation before writing files.
CLI Prompts
Depending on the command, you will be asked for:
- Project name, unless passed as
my-agentor.. - Provider:
Gemini,Groq, orxAI. - Provider API key.
- Model selection or a custom model.
- Agent name.
- Agent instructions/purpose.
Provider Defaults
Gemini
Base URL:
https://generativelanguage.googleapis.com/v1beta/openai/
Models:
gemini-2.0-flashgemini-2.5-flash- Custom model
Groq
Base URL:
https://api.groq.com/openai/v1
Models:
llama-3.1-8b-instantllama-3.3-70b-versatileopenai/gpt-oss-20b- Custom model
xAI (Grok)
Base URL:
https://api.x.ai/v1
Models:
grok-4grok-4-minigrok-4.5- Custom model
Generated Project Structure
your-project-name/
|-- src/
| `-- your_project_name/
| |-- __init__.py
| `-- main.py
|-- .env
|-- pyproject.toml
`-- uv.lock
When you run openai-compatible-agent ., these files are created directly in the current directory instead of a nested folder.
Generated Environment Variables
Example Groq .env:
PROVIDER=groq
API_KEY=your_api_key_here
MODEL=llama-3.3-70b-versatile
BASE_URL=https://api.groq.com/openai/v1
Example Gemini .env:
PROVIDER=gemini
API_KEY=your_api_key_here
MODEL=gemini-2.5-flash
BASE_URL=https://generativelanguage.googleapis.com/v1beta/openai/
Example xAI .env:
PROVIDER=xai
API_KEY=your_api_key_here
MODEL=grok-4
BASE_URL=https://api.x.ai/v1
Running Your Generated Agent
If you created a new folder, change into it:
cd my-agent
Run the script printed by the CLI:
uv run helpful-assistant
The CLI also adds a project-prefixed script name, for example:
uv run my-agent-helpful-assistant
Example Generated main.py
import asyncio
import os
from dotenv import load_dotenv
from agents import Agent, Runner, RunConfig, OpenAIChatCompletionsModel, set_tracing_disabled
from openai import AsyncOpenAI
load_dotenv()
set_tracing_disabled(True)
client: AsyncOpenAI = AsyncOpenAI(api_key=os.getenv("API_KEY"), base_url=os.getenv("BASE_URL"))
model: OpenAIChatCompletionsModel = OpenAIChatCompletionsModel(os.getenv("MODEL"), client)
agent: Agent = Agent(
name="Helpful Assistant",
instructions="You're a helpful assistant, help user with any query",
model=model,
)
async def main() -> None:
prompt = "What is Agentic AI? The output format should be in haiku"
result = await Runner.run(agent, prompt, run_config=RunConfig(model))
print(result.final_output)
def start():
asyncio.run(main())
Local Development
pip install -e .
python -m py_compile gemini_starter_agent/main.py
gemini-starter-agent .
Build release artifacts locally:
python setup.py sdist bdist_wheel
Notes
uvmust be installed and available onPATHbecause the CLI runsuv init,uv venv, anduv add.- Do not commit generated
.envfiles or real provider API keys.
License
This project is licensed under the MIT License. See LICENSE.md.
Author
Marjan Ahmed
- Email: marjanahmed.dev@gmail.com
- GitHub: https://github.com/marjan-ahmed
Metadata
Release files for gemini-starter-agent 0.1.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| gemini_starter_agent-0.1.4.tar.gz | 7.1 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| gemini_starter_agent-0.1.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 15.0 kB
Release files / gemini_starter_agent-0.1.4.tar.gz
| Download URL | gemini_starter_agent-0.1.4.tar.gz |
|---|---|
| Size | 7.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
01b6a87ea21a0bbd14295ec711e95c01c075dba7f7df9355e14009c1d31ae73a
|
|
BLAKE2b-256 checksum How to use checksums |
2d9c656eaaed61a1841c744264a25f10f0c3d8c9172e65fac0527611af10ce27
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.2
|
Release files / gemini_starter_agent-0.1.4-py3-none-any.whl
| Download URL | gemini_starter_agent-0.1.4-py3-none-any.whl |
|---|---|
| Size | 7.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
dc7fb67e8964816509beb51974b34629d0ccde708734d3b2fdd52a84bed55254
|
|
BLAKE2b-256 checksum How to use checksums |
bb01c6829b7eca313a97cb8643c19ef2d54896114a807686753058b42f20d5de
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.2
|
Security for gemini-starter-agent 0.1.4
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.