To Create powerful apps in AI using the program → Files → Code Movement of Code TinyDev

In this study, we present the implementation of the Timedev Class, a small but small but powerful AI system that uses Gemino API converting the simplest app to simplify, organized programs. Designed to run in unemployment, TinyDev is followed by clean travel files for work- → Codes → → and generalized composition. That creates a web interface, Python Backhand, or Urtelity Script, Tinyide Allows users to define their program in nature and automatically receive code files, are automatically generated and stored in the correct identifier. This makes it a very important place to bloom immediately or learn how AI can help in development activities.
import google.generativeai as genai
import os
import json
import re
from pathlib import Path
from typing import List, Dict
We begin to import important libraries required for the TinyideV Code generator. Google.Generativei is used to connect to Gemini API, while typical libraries such as OS, JSON, and support the file repair and the processing of the text. Patter and Type Pits from typing confirm the clean file functioning and the best code read.
class TinyDev:
"""
TinyDev: A lightweight AI code generator inspired by smol-dev
Uses Gemini API to generate complete applications from simple prompts
Follows the proven three-phase workflow: Plan → Files → Code
"""
def __init__(self, api_key: str, model: str = "gemini-1.5-flash"):
genai.configure(api_key=api_key)
self.model = genai.GenerativeModel(model)
self.generation_config = {
'temperature': 0.1,
'top_p': 0.8,
'max_output_tokens': 8192,
}
def plan(self, prompt: str) -> str:
"""
Phase 1: Generate project plan and shared dependencies
Creates the foundation for consistent code generation
"""
planning_prompt = f"""As an AI developer, you’re building a tool that automatically generates code tailored to the user’s needs.
the program you are writing is based on the following description:
{prompt}
the files we write will be generated by a python script. the goal is for us to all work together to write a program that will write the code for the user.
since we are working together, we need to understand what our shared dependencies are. this includes:
- import statements we all need to use
- variable names that are shared between files
- functions that are called from one file to another
- any other shared state
this is the most critical part of the process, if we don't get this right, the generated code will not work properly.
please output a markdown file called shared_dependencies.md that lists all of the shared dependencies.
the dependencies should be organized as:
1. shared variables (globals, constants)
2. shared functions (function signatures)
3. shared classes (class names and key methods)
4. shared imports (modules to import)
5. shared DOM element ids (if web project)
6. shared file paths/names
be EXHAUSTIVE in your analysis. every file must be able to import or reference these shared items."""
response = self.model.generate_content(
planning_prompt,
generation_config=self.generation_config
)
return response.text
def specify_file_paths(self, prompt: str, shared_deps: str) -> List[str]:
"""
Phase 2: Determine what files need to be created
"""
files_prompt = f"""As an AI developer, you’re building a tool that automatically generates code tailored to the user’s needs.
the program:
{prompt}
the shared dependencies:
{shared_deps}
Based on the program description and shared dependencies, return a JSON array of the filenames that should be written.
Only return the JSON array, nothing else. The JSON should be an array of strings representing file paths.
For example, for a simple web app you might return:
["index.html", "styles.css", "script.js"]
For a Python project you might return:
["main.py", "utils.py", "config.py", "requirements.txt"]
JSON array:"""
response = self.model.generate_content(
files_prompt,
generation_config=self.generation_config
)
try:
json_match = re.search(r'[.*?]', response.text, re.DOTALL)
if json_match:
files = json.loads(json_match.group())
return [f for f in files if isinstance(f, str)]
else:
lines = [line.strip() for line in response.text.split('n') if line.strip()]
files = []
for line in lines:
if '.' in line and not line.startswith('#'):
file = re.sub(r'[^w-_./]', '', line)
if file:
files.append(file)
return files[:10]
except Exception as e:
print(f"Error parsing files: {e}")
return ["main.py", "README.md"]
def generate_code_sync(self, prompt: str, shared_deps: str, filename: str) -> str:
"""
Phase 3: Generate code for individual files
"""
code_prompt = f"""As an AI developer, you’re building a tool that automatically generates code tailored to the user’s needs..
the program:
{prompt}
the shared dependencies:
{shared_deps}
Please write the file {filename}.
Remember that your job is to write the code for {filename} ONLY. Do not write any other files.
the code should be fully functional. meaning:
- all imports should be correct
- all variable references should be correct
- all function calls should be correct
- the code should be syntactically correct
- the code should be logically correct
Make sure to implement every part of the functionality described in the program description.
DO NOT include ``` code fences in your response. Return only the raw code.
Here is the code for {filename}:"""
response = self.model.generate_content(
code_prompt,
generation_config=self.generation_config
)
code = response.text
code = re.sub(r'^```[w]*n', '', code, flags=re.MULTILINE)
code = re.sub(r'n```$', '', code, flags=re.MULTILINE)
return code.strip()
def create_app(self, prompt: str, output_dir: str = "/content/generated_app") -> Dict:
"""
Main workflow: Transform a simple prompt into a complete application
"""
print(f"🚀 TinyDev workflow starting...")
print(f"📝 Prompt: {prompt}")
print("n📋 Step 1: Planning shared dependencies...")
shared_deps = self.plan(prompt)
print("✅ Dependencies planned")
print("n📁 Step 2: Determining file structure...")
file_paths = self.specify_file_paths(prompt, shared_deps)
print(f"📄 Files to generate: {file_paths}")
Path(output_dir).mkdir(parents=True, exist_ok=True)
print(f"n⚡ Step 3: Generating {len(file_paths)} files...")
results = {
'prompt': prompt,
'shared_deps': shared_deps,
'files': {},
'output_dir': output_dir
}
with open(Path(output_dir) / "shared_dependencies.md", 'w') as f:
f.write(shared_deps)
for filename in file_paths:
print(f" 🔧 Generating {filename}...")
try:
code = self.generate_code_sync(prompt, shared_deps, filename)
file_path = Path(output_dir) / filename
file_path.parent.mkdir(parents=True, exist_ok=True)
with open(file_path, 'w', encoding='utf-8') as f:
f.write(code)
results['files'][filename] = code
print(f" ✅ {filename} created ({len(code)} chars)")
except Exception as e:
print(f" ❌ Error generating {filename}: {e}")
results['files'][filename] = f"# Error: {e}"
readme = f"""# Generated by TinyDev (Gemini-Powered)
## Original Prompt
{prompt}
## Generated Files
{chr(10).join(f'- {f}' for f in file_paths)}
## About TinyDev
TinyDev is inspired by smol-ai/developer but uses free Gemini API.
It follows the proven three-phase workflow: Plan → Files → Code
## Usage
Check individual files for specific usage instructions.
Generated on: {os.popen('date').read().strip()}
"""
with open(Path(output_dir) / "README.md", 'w') as f:
f.write(readme)
print(f"n🎉 Complete! Generated {len(results['files'])} files in {output_dir}")
return results
The TinyDev section includes the full Ai-Powered Code Generator insecurity using Gemini API. Using the functioning of the work of three phase: First, an instant user is to produce stolen reliance (program); Next, indicates which files are required for the application (define_feile_aths); And finally, it produces an active code per file separately (productivity_code_sync). The Creen_App routes brings everything together by installing a pipe in the app generating system and stored the results of the code and the specified application, in the application system, which provides the full application, which is ready for the correct screen use.
def demo_tinydev():
"""Demo the TinyDev code generator"""
api_key = "Use Your API Key here"
if api_key == "YOUR_GEMINI_API_KEY_HERE":
print("❌ Please set your Gemini API key!")
print("Get one free at:
return None
tiny_dev = TinyDev(api_key)
demo_prompts = [
"a simple HTML/JS/CSS tic tac toe game",
"a Python web scraper that gets the latest news from multiple sources",
"a responsive landing page for a local coffee shop with contact form",
"a Flask REST API for managing a todo list",
"a JavaScript calculator with a modern UI"
]
print("🤖 TinyDev - AI Code Generator")
print("=" * 50)
print("Inspired by smol-ai/developer, powered by Gemini API")
print(f"Available demo projects:")
for i, prompt in enumerate(demo_prompts, 1):
print(f"{i}. {prompt}")
demo_prompt = demo_prompts[0]
print(f"n🎯 Running demo: {demo_prompt}")
try:
results = tiny_dev.create_app(demo_prompt)
print(f"n📊 Results Summary:")
print(f" 📝 Prompt: {results['prompt']}")
print(f" 📁 Output: {results['output_dir']}")
print(f" 📄 Files: {len(results['files'])}")
print(f"n📋 Generated Files:")
for filename in results['files'].keys():
print(f" - {filename}")
if results['files']:
preview_file = list(results['files'].keys())[0]
preview_code = results['files'][preview_file]
print(f"n👁️ Preview of {preview_file}:")
print("-" * 40)
print(preview_code[:400] + "..." if len(preview_code) > 400 else preview_code)
print("-" * 40)
print(f"n💡 This uses the same proven workflow as smol-ai/developer!")
print(f"📂 Check {results['output_dir']} for all generated files")
return results
except Exception as e:
print(f"❌ Demo failed: {e}")
return None
The Demo_tinyDev () The work has indicated the Tinyide skills through a previously defined shortage using several sample proposal, such as producing a TAC TAC TAC Toe or Python News scraper. It starts the TinyDev category for the Gemini API key, which selects the first speed list, then directing the user with a full cooking pipe, including the dependence of the code, to describe File Sabres, and the production code. After being killed, summarizing, previewing the sample file, points in the directory when the total app is saved.
def interactive_tinydev():
"""Interactive version where you can try your own prompts"""
api_key = input("🔑 Enter your Gemini API key: ").strip()
if not api_key:
print("❌ API key required!")
return
tiny_dev = TinyDev(api_key)
print("n🎮 Interactive TinyDev Mode")
print("Type your app ideas and watch them come to life!")
while True:
prompt = input("n💭 Describe your app (or 'quit'): ").strip()
if prompt.lower() in ['quit', 'exit', 'q']:
print("👋 Goodbye!")
break
if prompt:
try:
results = tiny_dev.create_app(prompt, f"/content/app_{hash(prompt) % 10000}")
print(f"✅ Success! Check {results['output_dir']}")
except Exception as e:
print(f"❌ Error: {e}")
print("🎬 TinyDev - AI Code Generator Ready!")
print("Inspired by smol-ai/developer, powered by free Gemini API")
print("nTo run demo: demo_tinydev()")
print("To try interactive mode: interactive_tinydev()")
Interactive_tinyDev () The work allows users to produce apps from their customization processes. After entering a valid Gemino API key, users can explain any idea of the app, and the TinyDev will enhance the full project, code, structure, and automatic support files. The process is ongoing in the loop until the user is 'quitting'. This communication mode enables hands-in test and quick lift from natural language.
Finally, calling a demo_tinyedev () gets a previously defined demonstrated demonstration using a sample application immediately. It travels through full work, editing, the creation of the file structure, and code generation, to show that the tool automatically generates the total app from simple thoughts.
In conclusion, Timedev Class indicates the power to use AI to use the application app with an amazing and efficient accuracy. By breaking the code generation process into accurate categories, it ensures that the results are well-organized, organized, and aligned with the user's purpose. Whether you examine new app ideas or you want to speed up the development, the Timedev provides a false and easy-useful solution to enable Gemini models. A practical tool for developers who view AI in their workouts without unnecessary or more difficulties.
Look Brochure here. All credit for this study goes to research for this project. Also, feel free to follow it Sane and don't forget to join ours 100K + ml subreddit Then sign up for Our newspaper.
Sana Hassan, a contact in MarktechPost with a student of the Dual-degree student in the IIit Madras, loves to use technology and ai to deal with the real challenges of the world. I'm very interested in solving practical problems, brings a new view of ai solution to AI and real solutions.




