Skip to content
View khizerarain's full-sized avatar
🎯
Focusing
🎯
Focusing

Block or report khizerarain

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
khizerarain/README.md

Hi, I'm Khizer πŸ‘‹

πŸš€ About Me

AI Builder Entrepreneur Learning Python & CLI Development

πŸ› οΈ Tech Stack

  • 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

Basic terminal report

python -m utopia.cli torvalds

Use a GitHub token for higher rate limits

python -m utopia.cli torvalds --token ghp_xxxxxxxx

Roast mode

python -m utopia.cli torvalds --roast

Save as JSON

python -m utopia.cli torvalds --output json --save report.json

Save as Markdown

python -m utopia.cli torvalds --output markdown --save report.md

Disable colors

python -m utopia.cli torvalds --no-color

Refresh cached data

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 Β· Space Intelligence Terminal

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

Edit .env and add your NASA_API_KEY and ANTHROPIC_API_KEY

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

edit .env and set OPENAI_API_KEY

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

Verify the CLI

python -m scribe.main --help python -m scribe.main version --help # not a thing; use --version

Manual smoke test of a single command without hitting the API

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

πŸ“« Connect With Me

GitHub

Pinned Loading

  1. utopia utopia Public

    Python 1

  2. ECLIPSE ECLIPSE Public

    Python 1

  3. SCRIBE SCRIBE Public

    Python 1