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

Block or report Ghraven

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
GHraven/README.md

Hi 👋, I'm Rolly Calma

AI Builder · Python Developer · Multi-Agent Systems

🟢 Open to junior Python, AI automation, developer tooling, or open-source support roles — remote or Philippines-based

ghraven   Portfolio

Python AI Agents Open Source Local LLMs Testing

ghraven


👤 About me

I graduated in Information Technology, stepped away from coding for a while, then came back when AI made building feel possible, practical, and exciting again.

Now I build real AI tools — local LLM apps, automation pipelines, multi-agent systems, and developer utilities I actually use. I learn fastest by shipping, reading real codebases, and working through maintainer feedback in public.

I'm looking for junior Python, AI automation, developer tooling, or open-source-adjacent roles where I can build practical tools, write tests, and keep improving inside a strong engineering team.


🤖 What I build

I build AI-powered tools, automation pipelines, and multi-agent systems — apps where multiple LLMs collaborate, debate, and reason together in real time. I focus on making AI practical: local models via Ollama, cloud API integrations, real web apps, and developer templates that save time without burning your token budget.


🚀 Featured Projects

🏠 Agent Meeting Room  ·  Python Flask Ollama Claude API

A web app where you @mention AI agents to bring them into a live group chat. Built end-to-end: Flask backend, SSE streaming, local model routing, Claude API integration, debate mode, and persistent Obsidian memory. Runs any Ollama-compatible model — defaults use sub-8B models so it works on modest hardware, but swap in anything your GPU can handle. Includes structured debate mode (3 rounds), free-talk streaming via SSE, and Obsidian memory integration.

🎬 YT Shorts Autopilot  ·  Python FFmpeg YouTube API

Automated YouTube Shorts upload pipeline — adds watermark, boosts audio, mixes BGM, then schedules 4 uploads per day at fixed times. Runs on PC startup via Task Scheduler. Uploads even while your PC is off.

🎮 Claude Code Solo Studio  ·  Claude Code Godot Unity

A lightweight Claude Code template for solo game developers. 6 self-contained agents, 10 slash commands, token-efficient by design — nearly zero API spent on coordination. Inspired by Claude-Code-Game-Studios, rebuilt from scratch for solo devs on limited API budgets.

🛠️ Python Utils Toolkit  ·  Python stdlib

15 production-ready utility modules — retry with backoff, async rate limiter, TTL cache, HMAC/crypto helpers, file I/O, and more. Pure Python, zero heavy dependencies. Built iteratively with 16 PRs merged — full test suite, versioned releases, and changelogs. Used internally across the trading bot, agent room, and automation pipelines.

📈 Crypto Futures Trading Bot  ·  Python CCXT Claude API Ollama

Automated BTC/ETH/BNB/SOL futures trading bot running on GCP Singapore (asia-southeast1). Multi-timeframe analysis (4H trend → 1H confirm → 30M entry → optional 15M fine-entry). Ollama/Mistral pre-screens signals; Claude API makes final confirmation at 72% threshold. SL/TP orders placed directly on Binance for offline protection. Discord webhook alerts. Currently in live testing — repo private.


🌱 Currently exploring

  • Voice interfaces for local AI — Whisper STT + Piper/Kokoro TTS + Ollama (JARVIS-style assistant)
  • Roblox game development — survival game with custom biome, zombie, and workbench progression systems
  • Open source contribution patterns — bug triage, changelog discipline, and working with maintainer feedback across large codebases
  • MCP (Model Context Protocol) server development — built a custom RavenMCP server connecting Claude Code to Roblox Studio

💬 Ask me about

Python · Flask · Local LLMs · Ollama · Anthropic Claude API · Multi-agent systems · SSE streaming · FFmpeg · YouTube API · Claude Code · Godot · Game Dev Templates


🔀 Open Source Contributions

I actively contribute to Python open source projects — fixing bugs, adding features, improving test coverage, and refactoring shared logic across AI, trading, and developer tooling repos.

My own python-utils-toolkit repo was built entirely through PRs — 16 merged across 15 modules — showing the same contribution workflow I use upstream: scoped commits, changelogs, and full test coverage.

I try to make maintainer review easy: small scoped PRs, clear before/after notes, local verification, and humble follow-up when CI or reviewers ask for changes.

PRs opened Merged Repos contributed Combined stars of contributed repos

Selected wins:

Work Why it matters
Casanovo UTF-8 mzTab/file I/O fixes ✅ merged Prevents locale-dependent file errors on Windows/non-UTF-8 systems
Mem0 metadata preservation fix Stops memory updates from silently dropping existing custom metadata
CCXT GRVT watch_orders fix Fixes a real streaming message hash bug in an exchange integration
OpenAI Python log redaction hardening Improves API-key redaction when sensitive headers appear in formatted debug strings
Python Utils Toolkit built through PRs 16 merged PRs across 15 stdlib-only utility modules with tests and changelogs

How I work:

  • Prefer small, scoped PRs with clear before/after examples.
  • Test locally before pushing, then follow up when CI or reviewers find issues.
  • Look for practical fixes: deprecations, encoding bugs, async edge cases, schema correctness, and missing tests.
  • Stay humble in review and make maintainer work easier where I can.

Contribution coverage:

I have contributed across AI agent frameworks, SDKs, trading tools, data infrastructure, and developer tooling, including LangChain, LlamaIndex, AutoGen, CrewAI, Mem0, Agno, OpenAI Python, Chroma, CCXT, and Ollama Python.

View all 24 contributed repositories
Repository What I worked on
TauricResearch/TradingAgents ⭐76k Configurable news fetch parameters (applied by maintainer) · Renamed social_media_analyst → sentiment_analyst with backward-compat alias (applied by maintainer) · Code reviews on API key error handling and investment horizon feature
NousResearch/hermes-agent ⭐160k Replaced deprecated datetime.utcnow() in BlueBubbles temp GUID generation with timezone-aware UTC timestamps
browser-use/browser-use ⭐95k Replaced deprecated naive datetime.utcnow() config timestamps with timezone-aware UTC and added a regression test · Wrote generated file-system text files with explicit UTF-8 encoding and switched async disk sync paths to asyncio.get_running_loop()
ccxt/ccxt ⭐42k Fixed watch_orders message hash bug in GRVT exchange
langchain-ai/langchain ⭐137k Fixed HuggingFaceEndpoint _stream and _astream not passing model=self.model — streaming always used the wrong default model
microsoft/autogen ⭐58k Added encoding='utf-8' to open() calls in GAIA benchmark scripts to fix UnicodeDecodeError on non-English Windows · Replaced AutoGen Studio websocket datetime.utcnow() response timestamps with timezone-aware UTC
mem0ai/mem0 ⭐56k Fixed parse_vision_messages crash when message content is a text-only list of parts · Fixed _update_memory() silently dropping all custom metadata on every update — now overlays changes onto full existing payload (sync + async) · Added explicit UTF-8 encoding for JSON config and GCP credential file reads/writes
crewAIInc/crewAI ⭐52k Fixed class-level @persist() doc example · Fixed Bedrock streaming tool args always receiving {} · Replaced deprecated datetime.utcnow() across memory subsystem (4 files, 9 call sites) · Added explicit encoding="utf-8" to text-mode open() calls across CLI and crewai_core (12 sites, 5 files) · Switched async execution paths to asyncio.get_running_loop()
run-llama/llama_index ⭐50k Set inner OpenAI client max_retries=0 to prevent AuthenticationError from being silently retried · Added explicit encoding="utf-8" to 10 text-mode open() call sites across llama-index-core — including the bundled system-header markdown template loader, the v1→v2 upgrade CLI's notebook reader/writer, QueryResponseDataset.save_json/from_json, and the embeddings save/load helpers (4 files, 10 sites) · Switched ingestion pipeline async executor path to asyncio.get_running_loop()
agno-agi/agno ⭐40k Fixed Team never injecting LearningMachine context into its system prompt · Fixed Message.from_dict() not parsing JSON-stringified list content from Postgres · Replaced deprecated datetime.utcnow() in DecisionLogStore and the dynamic tools cookbook with timezone-aware alternatives · Added explicit encoding="utf-8" to text-mode open() calls across models/os/tools/db/utils (11 sites, 5 files) · Switched YouTubeReader.async_read() to asyncio.get_running_loop()
openai/openai-python ⭐31k Extended SensitiveHeadersFilter to redact API keys appearing as formatted strings in debug log messages · Added explicit utf-8 encoding to .txt reads · Switched async helpers to asyncio.get_running_loop()
pydantic/pydantic-ai ⭐17k Added explicit encoding="utf-8" to both open() call sites in scripts/scrub_cassette.py — the VCR cassette redaction script now round-trips multilingual test fixtures safely on Windows / non-utf-8 locales
chroma-core/chroma ⭐28k Fixed collection.modify(metadata=...) replacing entire metadata dict instead of merging · Narrowed bare # type: ignore to # type: ignore[misc] on tenacity @retry · Added explicit encoding="utf-8" to 7 text-mode open() call sites in chromadb — telemetry user-id store, auth credential/config loaders, CLI log-config loader, and embedding-function schema loaders (5 files, 7 sites)
ollama/ollama-python ⭐10k Added client.exists() · Exposed __version__ and version() · Added Audio field to Message · Added __enter__/__aenter__ context manager support · Fixed convert_function_to_tool incorrectly listing default-value params in required · Replaced deprecated datetime.utcnow() in web_search_gpt_oss_helper example (5 sites)
voxel51/fiftyone ⭐10k Replaced deprecated datetime.utcnow() · Migrated brush import to label_studio_sdk · Added train_extra split to Cityscapes loader
apache/burr ⭐1.9k Fixed stream_type type annotation to accept union of BaseModel types in streaming_action.pydantic() · Replaced deprecated datetime.utcnow() in S3 partition · Added explicit utf-8 to text-mode file I/O
mattzh72/articraft ⭐801 Added encoding="utf-8" to the 9 aiofiles.open() call sites across agent code-manipulation tools (read_file, write_code, edit_code, apply_patch) and the harness final-code reader — prevents UnicodeDecodeError on Windows / non-utf-8 locales when reading or re-reading agent-generated Python files with non-ASCII content ✅ merged
camel-ai/oasis ⭐4.5k Fixed KeyError: 'post_id' in rec_sys_personalized_with_trace — trace rows store post_id in info JSON, not as a top-level column · Added explicit encoding="utf-8" to all 16 SQL schema loaders in social_platform/database.py
Tracer-Cloud/opensre ⭐3.6k Unit tests ✅ merged · Shared helpers · Refactoring · Docs · Telegram integration guide · LLM providers reference · Snowflake/OpenObserve/OpenSearch tool tests · Early-exit integration validation · Post-signup onboarding page
Noble-Lab/casanovo ⭐186 Fixed val_check_interval float/int · Improved README (grammar, badges, quick start, application area descriptions) · Write mzTab output with explicit utf-8 encoding ✅ merged
IN3PIRE/pn Added !uptime command ✅ merged · Pinned dependencies ✅ merged
darkzOGx/youtube-automation-agent ⭐1k Added missing database/init.js entrypoint so the existing npm run db:init script initializes the SQLite schema successfully
caamer20/Telegram-Drive ⭐3k Removed committed npm cache artifacts and ignored future .npm-cache output to keep Windows checkouts portable
tecnolgd/repoScanner Expanded language detection to 40+ file extensions ✅ merged

📌 Gists

Small standalone scripts and utilities I've published.

Gist Description
🎮 Discord Quest Completer v2 Improved fork of aamiaa's script — completes all active quests, progress bar + ETA, auto-resume, color-coded console output
🔧 Python Utilities Retry decorator with exponential backoff + rate limiter — pure stdlib, no deps, used in trading bots and AI agents

🔗 Connect with me:

LinkedIn - Rolly Calma   Portfolio - ghraven.github.io


Contribution Graph

GitHub Streak

Pinned Loading

  1. agent-meeting-room agent-meeting-room Public

    Flask multi-agent AI chat — @mention local LLMs (Ollama) or Claude into a live group chat with debate mode, SSE streaming, and Obsidian memory

    HTML 2 1

  2. yt-shorts-autopilot yt-shorts-autopilot Public

    Automated YouTube Shorts pipeline — FFmpeg watermark/BGM, scheduled uploads, runs on Windows startup. Your PC can be off at publish time.

    Python 1

  3. Claude-Code-Solo-Studio Claude-Code-Solo-Studio Public

    Token-efficient Claude Code template for solo game devs — 6 specialist agents, 10 slash commands, zero inter-agent overhead. Godot & Unity.

    Shell 1

  4. python-utils-toolkit python-utils-toolkit Public

    15 production-ready Python utility modules — retry/backoff, async rate limiter, TTL cache, HMAC helpers, file I/O. Pure stdlib, no heavy deps.

    Python 1

  5. ollama/ollama-python ollama/ollama-python Public

    Ollama Python library

    Python 10k 1.1k

  6. Tracer-Cloud/opensre Tracer-Cloud/opensre Public

    Build your own AI SRE agents. The open source toolkit for the AI era.

    Python 5.7k 734