AI Builder Entrepreneur Learning Python & CLI Development
- Python
- JavaScript
- Git
- GitHub
- Supabase
π Featured Projects ### UTOPIA: Analyze any GitHub profile and generate a professional developer portfolio report with scoring, archetypes, and recruiter insights.
UTOPIA (Ultimate Technical Overview & Portfolio Intelligence Analyzer) is a Python CLI tool that transforms any public GitHub profile into a detailed intelligence report. It scores the profile across six weighted categories, detects the developer's archetype, simulates an AI recruiter verdict, breaks down the tech stack, roasts bad habits (if asked nicely), and generates a 30-day improvement plan.
Built With Python β core language Click β CLI framework Rich β terminal formatting and charts Installation Clone the repository: git clone https://github.com/khizerarain/utopia.git cd utopia Install dependencies: pip install -r requirements.txt Usage
python -m utopia.cli torvalds
python -m utopia.cli torvalds --token ghp_xxxxxxxx
python -m utopia.cli torvalds --roast
python -m utopia.cli torvalds --output json --save report.json
python -m utopia.cli torvalds --output markdown --save report.md
python -m utopia.cli torvalds --no-color
python -m utopia.cli torvalds --no-cache Sample Output βββββββββββββββββββββββββββββββββββββ β UTOPIA Portfolio Report: torvalds β β UTOPIA SCORE: 80/100 β β Portfolio Grade: B- β βββββββββββββββββββββββββββββββββββββ
Project Quality β 23/25 β ββββββββββββββββββββββββββββββ 92% Activity β 20/20 β ββββββββββββββββββββββββββββββ 98% Documentation β 11/15 β ββββββββββββββββββββββββββββββ 72% Tech Diversity β 2/15 β ββββββββββββββββββββββββββββββ 13% Impact β 15/15 β ββββββββββββββββββββββββββββββ 100% Open Source β 10/10 β ββββββββββββββββββββββββββββββ 95%
You are: Backend Engineer ββββββββββββββββββββ 70.0% DevOps Engineer ββββββββββββββββββββ 70.0% AI/ML Developer ββββββββββββββββββββ 50.0% Data Engineer ββββββββββββββββββββ 50.0%
Would I hire this developer? YES
Reasons: β Projects show ongoing maintenance β Projects are well explained β Repositories show solid engineering β Includes automated tests
Strengths: β Strong community impact β Active development history β Active open-source contributor
Weaknesses: β Tech stack is narrow β Needs more README documentation β Project quality could improve
Tech Stack Breakdown C ββββββββββββββββββββ 97.7% Assembly ββββββββββββββββββββ 0.7% Shell ββββββββββββββββββββ 0.4% Rust ββββββββββββββββββββ 0.3% Other ββββββββββββββββββββ 0.9%
30-Day Upgrade Plan Week 1: β’ Contribute to an open-source project outside your main stack Week 2: β’ Improve README files across your top repos Week 3: β’ Refactor your most-starred project and add missing features Week 4: β’ Review and merge community PRs in your own repos GitHub Token GitHub's unauthenticated API limit is 60 requests per hour. For full analysis, create a Personal Access Token:
Go to Settings β Developer settings β Personal access tokens β Tokens (classic) Generate a new token with public_repo scope Use --token or set GITHUB_TOKEN in a .env file Running Tests python -m pytest tests/ -v License MIT GitHub Link: https://github.com/khizerarain/utopia
ECLIPSE is a feature-rich Python CLI that turns your terminal into a space exploration platform. Fetch NASA imagery, track the ISS, browse upcoming rocket launches, query a planetary database, and ask an AI space assistant β all without leaving the command line.
Requirements Python 3.10+ A NASA API key (free at api.nasa.gov) β optional, DEMO_KEY works with a rate limit An Anthropic API key (from console.anthropic.com) β required only for eclipse ask Install git clone cd eclipse cp .env.example .env
pip install -e . After install, the eclipse command is available globally.
Commands eclipse apod Display NASA's Astronomy Picture of the Day.
π ECLIPSE Β· Space Intelligence Terminal βββββββββββββββ π Astronomy Picture of the Day βββββββββββββββ β Earth at Twilight β β 2026-06-14 β β β β No sudden, sharp boundary marks the passage of day... β β β β HD Image β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ eclipse iss Live position and crew of the International Space Station.
π ECLIPSE Β· Space Intelligence Terminal βββββββββββ π° Live Feed β International Space Station βββββββββββ β Metric Value β β Latitude -51.2345 β β Longitude 123.4567 β β Altitude 408 km β β Speed 27,600 km/h β β Crew aboard Jane Doe, John Smith β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ eclipse launches Upcoming rocket launches from the Space Devs API.
π ECLIPSE Β· Space Intelligence Terminal βββββββββββββββββββ π Upcoming Rocket Launches βββββββββββββββββββ β Mission Rocket Date (UTC) Launch Site Status β β Artemis II SLS Block 1 June 18, 2026 Kennedy LC-39B Go β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ eclipse missions Persistent table of active space missions stored in SQLite.
π ECLIPSE Β· Space Intelligence Terminal βββββββββββββββββββββ π° Active Space Missions ββββββββββββββββββββ β Mission Agency Launch Year Status Description β β James Webb NASA/ESA 2021 Active ... β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ eclipse planet Information about planets and major bodies.
π ECLIPSE Β· Space Intelligence Terminal βββββββββββββββββββ π΄ MARS βββββββββββββββββββ β β β Gravity 3.721 m/sΒ² β β Moons 2 (Phobos, Deimos) β β Diameter 6,779 km β β Distance 227.9M km from Sun β β Day Length 24h 37m β β Year Length 687 Earth days β β Atmosphere Thin COβ (95%) β β β β π‘ Olympus Mons is the tallest volcano β β in the solar system at 21.9 km. β βββββββββββββββββββββββββββββββββββββββββββββββ eclipse fact A random astronomy fact.
π ECLIPSE Β· Space Intelligence Terminal βββββββββββββββββββ π Cosmic Fact βββββββββββββββββββ β A teaspoon of neutron star material would weigh β β about 6 billion tons on Earth. β ββββββββββββββββββββββββββββββββββββββββββββββββββββββ eclipse ask "" Ask the ECLIPSE AI assistant a space question.
eclipse ask "How long does it take to get to Mars?" π ECLIPSE Β· Space Intelligence Terminal βββββββββββββββββββ π ECLIPSE βββββββββββββββββββ β Depending on the trajectory and planetary β β alignment, a trip to Mars takes approximately β β 7 to 9 months using current propulsion. β β The 2020 Perseverance mission took 7 months. β ββββββββββββββββββββββββββββββββββββββββββββββββββββ API Keys NASA: Sign up for a free key at https://api.nasa.gov Anthropic: Get a key at https://console.anthropic.com Copy .env.example to .env and fill in your keys before running commands that need them. GitHub Link: https://github.com/khizerarain/ECLIPSE ###SCRIBE AI Content Generation Engine β turn a single topic into a publish-ready blog post, then repurpose it for SEO and social media.
Python License Status
A production-quality Python CLI that goes from topic β markdown in one command, with built-in SEO scoring, tone rewrites, and social-media repurposing. Built to demonstrate clean architecture, prompt engineering discipline, and UX polish.
Why this exists Most "AI blog generator" demos stop at "ask the model for a post." SCRIBE goes further:
Real SEO scoring, not AI-hallucinated numbers β readability via textstat, keyword density from actual counts, structure heuristics. The model only fills the qualitative gaps. Single-responsibility modules behind one API wrapper, so swapping OpenAI for Anthropic is a one-file change. A real CLI with Rich panels, spinners, tables, and a --no-export escape hatch β not a notebook. Typed tone rewrites with a Typer enum that rejects bad input before the API call. It's a portfolio piece: the code is the resume.
Features scribe title β generate n varied title candidates (list / how-to / question / contrarian angles) scribe outline β produce a structured [{section, description}, ...] outline scribe generate β full pipeline: title β outline β draft β export to Markdown with YAML frontmatter scribe seo β real computed score (readability 40% / keyword density 30% / structure 30%) + AI meta description + 3 suggestions scribe improve β rewrite for clarity, flow, and engagement; renders a unified diff scribe tone <professional|casual|witty|technical|persuasive> β tone-shift rewrites with a Typer enum scribe social β LinkedIn post, X/Twitter thread (1/, 2/, ...), Facebook post β three Rich panels; --save writes each to output/social/ scribe history β Rich table of past generations Friendly errors (Rich panels, no stack traces) for missing keys, empty topics, bad tones, API hiccups Install git clone https://github.com//scribe.git cd scribe python -m venv .venv source .venv/bin/activate # Windows: .venv\Scripts\activate pip install -r requirements.txt cp .env.example .env
Windows users: set PYTHONIOENCODING=utf-8 once per shell to keep Typer's Rich help (it uses β) from crashing the legacy cp1252 stdout.
Usage scribe title --topic "AI startup ideas" --count 5 scribe outline --topic "AI startup ideas" --sections 6 scribe generate --topic "AI startup ideas" --tone casual --length 1500 scribe generate --topic "AI startup ideas" --no-export # print only scribe seo --file output/ai-startup-ideas.md --keywords "AI startup, founder" scribe improve --file output/ai-startup-ideas.md scribe tone casual --file output/ai-startup-ideas.md scribe tone technical --text "Paste draft here..." scribe social --file output/ai-startup-ideas.md scribe social --file output/ai-startup-ideas.md --save # write to output/social/ scribe history scribe --version If you run scribe with no args you get a small ASCII banner and a quick-start hint.
Example output
/ || _ / | | || / | _ | /_ | | | | | |/| | ) | | ) | | | | | | | | |/|| |/|| || ||
SCRIBE v0.1.0 Β· AI content generation engine Architecture Every module has one job. Every API call goes through client.py so swapping providers is a single-file change.
Module Responsibility main.py Typer app, command registration, banner, error panels client.py OpenAI wrapper (chat_completion() w/ exponential backoff) β the only module that talks to the API prompts.py All system/user prompt templates β no API calls live here generator.py generate_titles(), generate_draft() outlines.py generate_outline() seo.py analyze_seo() β computed score + AI-suggested meta/suggestions improver.py improve_content(), change_tone() social.py generate_social_posts() β {linkedin, twitter_thread, facebook} exporter.py export_markdown() β YAML frontmatter + slugified filename config.py Env loading, defaults, paths utils.py Shared Rich console, with_spinner(), slugify, history I/O SEO scoring formula score = round( readability_score * 0.40
- keyword_score * 0.30 (skipped if no --keywords; weight redistributed)
- structure_score * 0.30 ) Readability (40%): textstat.flesch_reading_ease(text) β clamped to 0-100 Keyword density (30%): per-keyword count / total_words * 100; 1-2% ideal, 0.5-1% or 2-3% acceptable, <0.5% low, >3% stuffed Structure (30%): H2 headings + intro paragraph + conclusion section + paragraph-length distribution The AI is asked for exactly two qualitative outputs: a meta description (150-160 chars) and three concrete improvement suggestions. It is never asked for the score.
Configuration Env var Default Purpose OPENAI_API_KEY (required) Your OpenAI API key SCRIBE_MODEL gpt-4o-mini Any chat-completions-compatible model .env is gitignored. If the key is missing, SCRIBE prints a Rich error panel and exits 1 β never a stack trace.
Error handling Situation Behavior Missing OPENAI_API_KEY Rich red panel with setup steps, exit 1 Empty / too-short --topic Friendly yellow panel asking for more detail, exit 1 Invalid --tone Typer auto-rejects with valid options listed, exit 2 OpenAI rate-limit / network error Retried 3Γ with exponential backoff (client.py); clear Rich panel if all fail AI returns malformed JSON for SEO suggestions Falls back to a deterministic truncated meta; the score (computed) is unaffected Roadmap (v2 β seams are in place, not implemented) SQLite history with full-text search, tags, and per-topic stats LangChain orchestration for prompt chaining and tool use Vector DB style-matching β pull the top 3 past posts in a similar tone and use them as few-shot examples Template library β load user-defined prompt templates from disk Streaming responses for live diff rendering in improve and tone Concurrent social generation with bounded concurrency (3 calls today run sequentially) Development
python -m scribe.main --help python -m scribe.main version --help # not a thing; use --version
PYTHONIOENCODING=utf-8 python -m scribe.main seo --file output/.md The v2 hook: comments in config.py, prompts.py, and client.py mark the seams where new pieces slot in.
License MIT β see LICENSE.
Sample output The .gitignore excludes output/*.md by default so generated content doesn't pollute commits. To produce a real screenshot for the README, run something like:
scribe generate --topic "Starting an AI business in 2026" --tone professional --length 1500 scribe seo --file output/starting-an-ai-business-in-2026.md --keywords "AI business" Then commit the resulting .md file manually with git add -f output/.md for the portfolio screenshot. GitHub Link: https://github.com/khizerarain/SCRIBE