OOm Jee Mishra /  engineer, in.
Résumé Available · 2026· IST--:--
§ —

Open source, every PR in full.

← back home

The homepage shows a one-line summary of each contribution. This page is the long version: for every pull request I've opened on RedPlanetHQ/core and RedPlanetHQ/town, what was broken or missing, what I actually built, where it landed in the codebase, and what changed as a result. Numbers are the ones GitHub reports on the PR itself.

16
pull requests
14
landed in main
2
open · in review
+7.0k
lines added
76
files touched

01 / C.O.R.E.

Your Personal AI OS

An open-source, self-hostable memory backbone — a "personal AI OS" that gives agents like Claude Code, Codex and Cursor a shared, portable memory graph over MCP. I contribute across its stack: MCP tooling, third-party integrations, the self-hosted local-LLM path, integration auditing, and agent-service test coverage.

REPORedPlanetHQ/core
ROLEOpen-source contributor
STARS1.9k
FORKS187
LANGTypeScript
ACTIVEMay – Jul 2026
TypeScriptMCPMastra AIOllamaRemixPrismaVitestCLI
9
PRs · all merged
16
MCP tools shipped
+4.1k
lines contributed
62
unit tests added
What I shipped
  • Shipped 16 read-only MCP tools across two features — a full Postman integration (14 tools) and skills-as-tools (list_skills / get_skill) for coding agents
  • Unblocked self-hosted deployments end-to-end: fixed four defects on the local-Ollama path with zero change to the hosted OpenAI / Anthropic / Google providers
  • Closed an audit gap by populating IntegrationCallLog.source for API-triggered actions — the CORE half of Town's NPC action-attribution work
  • Fixed production bugs across API-key deletion, multi-step chat rendering and Ghost HTML publishing
  • Added 62 fast, deterministic unit tests over previously untested agent helpers (action-plan parsing, tool-result truncation, history prep)
The pull requests · 9
feat#850

postmanRead-only Postman integration

Mergedmerged May 2026+3,147020 files · 1 commit

Built @core/postman, a read-only Postman integration with personal-API-key auth. Runs an incremental sync every 15 minutes across workspaces, collections, environments, APIs and monitor runs (deduped via lastSyncTime + seen-run IDs), and exposes 14 read-only MCP tools over the Postman REST API.

feat#886

mcpExpose skills as MCP tools

Mergedmerged Jun 2026+20802 files · 2 commits

Exposed user-defined CORE skills as MCP tools so coding agents — Claude Code, Codex, Cursor — can discover and load skill instructions on demand instead of pasting them in. Added list_skills (paginated) and get_skill (by id or slugified name) in a new app/utils/mcp/skill.ts module that mirrors the existing MCP modules.

fix#885

llmMake local Ollama work end-to-end

Mergedmerged May 2026+6063 files · 2 commits

Made self-hosted local Ollama work end-to-end. Fixed four defects: the /api/chat base URL, provider inference short-circuiting to Ollama under CHAT_PROVIDER=ollama (including gpt-prefixed ids), a direct model build for the main conversation agent, and JSON-Schema injection so structured extraction validates on the first pass. Hosted OpenAI / Anthropic / Google paths were left untouched.

feat#938

integrationsPopulate IntegrationCallLog.source for API-triggered actions

Mergedmerged Jul 2026+3202 files · 2 commits

Closed an audit gap: integration actions triggered over the API now record who triggered them. POST /api/v1/integration_account/:id/action accepts an optional source (max 128 chars), threaded through executeIntegrationAction into every IntegrationCallLog row, and custom MCP executions now write a call-log row on success and failure like first-party integrations already did.

fix#901

chatConcatenate all text parts when rendering

Mergedmerged Jun 2026+741 file · 1 commit

Fixed blank chat messages on multi-step agent turns. message.parts.find(type === 'text') was grabbing the empty text part emitted for the tool-use step; replaced it with filter + map + join to concatenate every non-empty text part before handing it to the TipTap editor.

fix#860

api-keysDelete the selected API key, not the last one

Mergedmerged May 2026+13181 file · 1 commit

Fixed API-key deletion always removing the last key. useTokensColumns shared one open/setOpen state across every row dialog, so all dialogs opened at once and portal stacking left only the last visible — always deleting the last token. Moved visibility into each row's own dialog and switched to DialogClose.

fix#857

ghostCreate HTML posts using source=html

Mergedmerged May 2026+111 file · 1 commit

One-line fix to Ghost publishing: append ?source=html to the Admin API request so Ghost accepts HTML-generated post content. Reproduced the failure locally and verified the fix against the Ghost Admin API docs.

fix#887

cliAlign gateway banners with new UI path

Mergedmerged Jun 2026+555 files · 1 commit

Aligned the CLI gateway banners with the redesigned UI. Updated gateway register, env-bootstrap, the Railway and Docker setup flows, and the Tauri app to point users at Sidebar → Gateways → New Gateway.

test#905

agentUnit tests for agent pure-logic helpers

Mergedmerged Jun 2026+66803 files · 3 commits

Added 62 unit tests across three files for previously untested pure-logic agent helpers — parseActionPlan / normalizeActionPlan / createFallbackPlan (30), truncateString / truncateToolResult (20), and prepareHistoryParts (12). No DB or network, so they stay fast and deterministic.

02 / Town

Discord, but you walk around a pixel town — where the NPCs have skills

A multiplayer pixel world where AI NPCs walk around, hold conversations, and act on real connected tools through CORE. My work made Town runnable without a paid API key, gave NPCs real capabilities on their residents' and visitors' own accounts, and bootstrapped the repo's first test suite.

REPORedPlanetHQ/town
ROLEOpen-source contributor
STARS17
FORKS1
LANGTypeScript
ACTIVEJul 2026
TypeScriptNext.jsPrismaPostgresOllamaAI SDKVitestCLI
7
PRs opened
5
landed in main
+2.8k
lines contributed
61
unit tests · in review
What I shipped
  • Added Ollama as a third LLM provider so Town runs on a free model — app side, town-cli side, and a one-line fix so streamed Ollama chats actually debit aura (#37, #45, #47)
  • Built visitor integration grants: a signed-in visitor can lend an NPC their own CORE integrations for a conversation, with per-person token routing so one NPC acts on two accounts safely (#72, merged via #73)
  • Designed the owner-side grant panel with the guardrail, audit trail and aura pricing that the visitor feature was later built on (#71)
  • Bootstrapped testing: Vitest plus 61 unit tests over security-relevant modules — prompt sanitisation, town codes, and HMAC-signed events (#34)
  • Fixed onboarding by adding the .env.example files the setup guide already told contributors to copy (#20)
The pull requests · 7
feat#72

npcLet signed-in visitors lend NPCs their own CORE integrations

Merged in a follow-upmerged Jul 2026+806769 files · 5 commits

Closed in favour of #73 — "all the commits are in that PR". All five of my commits (e0e7f3f…b6d43d0) are the first five of #73's six, merged to main on 27 Jul 2026.

Let a signed-in visitor lend an NPC their own CORE integrations for a conversation, so the NPC acts on the visitor's account instead of the owner's — without the owner ever seeing the visitor's credentials. Adds an in-chat consent popover, a soft-deletable VisitorIntegrationGrant table, and per-person token routing inside buildNpcTools.

feat#71

npcLet owners grant CORE integrations to NPCs

In reviewopened Jul 2026+682159 files · 5 commits

Open. The maintainer clarified mid-review that the issue meant visitor-granted access, not owner-granted — so I built that instead as #72. This stayed open as an optional owner-side convenience panel.

An owner-only ACCESS panel that grants specific CORE integrations — and optionally specific actions within them — to individual NPCs, so characters can act on the resident's connected tools during chat. Ships with an owner_only guardrail, a TownActivity audit row per executed action, and aura pricing.

feat#37

llmAdd Ollama as an LLM provider

Mergedmerged Jul 2026+103146 files · 4 commits

Added Ollama as a third LLM provider alongside Anthropic and OpenAI, via Ollama Cloud's OpenAI-compatible endpoint, so Town can run on a free or lower-cost model without a paid key. Provider priority stays anthropic → openai → ollama, so existing deployments are unaffected.

feat#45

cliAdd Ollama support to town-cli

Mergedmerged Jul 2026+47144 files · 4 commits

The companion to #37 on the CLI side: pickModel() gets an ollama branch, and town test set-key ollama <key> persists to ~/.town/config.json alongside the existing keys — so contributors can test NPC prompts without a paid key.

fix#47

llmRequest stream usage from Ollama so chats debit aura

Mergedmerged Jul 2026+101 file · 1 commit

One line: set includeUsage: true on the Ollama provider. OpenAI-compatible APIs only report token usage on streamed responses when stream_options.include_usage is sent, so without it every streamed chat on an Ollama deploy logged 0/0 and debited no aura.

test#34

webAdd Vitest and the repo's first unit tests

In reviewopened Jul 2026+1,13216 files · 4 commits

Open — rebased on main at the maintainer's request; tests and typecheck green.

Added a test runner to a repo that had none, plus 61 unit tests over three pure, security-relevant modules: prompt sanitisation, town-code parsing, and HMAC-signed event envelopes. The setup deliberately mirrors RedPlanetHQ/core's, package versions included, so both repos stay consistent.

fix#20

setupAdd the missing .env.example files

Mergedmerged Jul 2026+8203 files · 3 commits

The setup guide told contributors to run cp .env.example .env, but the file didn't exist — the repo's .env* ignore rule also excluded .env.example. Fixed .gitignore and added a root and a hosting/ example covering every variable the app and docker-compose actually read.

Every claim on this page is checkable — each entry links to the pull request it describes. Reviewing something I wrote? omjeem558@gmail.com, or the résumé.

Last verified against GitHub · Aug 13, 2026