Skip to content
View surlymochan's full-sized avatar
🎯
AI OBSESSED
🎯
AI OBSESSED

Block or report surlymochan

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.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. 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
surlymochan/README.md

Hi, I'm Nick 👋

Follow along: I share what breaks (and what fixes it) putting AI agents into production — @surlymochan on X · Contra

⭐ If evalid or swrm saves you time, a star is the best way to support the work — I'm pushing for 100 stars this month.

AI agents · Harness engineering · Reliable loops & graphs

I build tools to coordinate coding agents and verify what they deliver.

Profile views counter Pull Requests: 2,619 Commits: 7,711

Start Here

Claimed ≠ verified. I’m building agent systems where delivery is an evidence trail, not a status update.

Phanes, volto, swrm and evalid — four-project collageAnimated tour of Phanes, volto, swrm and evalid

Simulated tmux-style session: planner, context, builder and verifier bots — not a live run

ProjectWhat it doesStatus
PhanesCoordinates goals, distributed execution and verified acceptance.Consolidating
voltoPlanned roles, memory and knowledge for collaborating agents.Planned relaunch
swrmDispatches coding agents with leases, isolated worktrees and limits.Available
evalidSeals test-run snapshots and replays them to verify results.Available

A small, public comparison

On six selected hard SWE-bench Verified issues, each arm used Pi with DeepSeek-V4.1-Flash, one run per issue, and a 20-minute cap. A solve means the official tests passed: swrm 5/6 · evalid 4/6 · plain agent 3/6 · Superpowers 2/6. This is a small project-reported experiment, not a general leaderboard; raw runs and methodology are in the swrm benchmark and evalid benchmark.

Contributions & PR Activity

Opened and merged PRs across my projects, nibiru-labs and upstream repositories, including co-authored work. Monthly totals use Singapore time.

Monthly pull requests: total vs merged

Contribution timeline for surlymochan

Contribution streak for surlymochan GitHub stats for surlymochan

Open Source

Recent merged contributions:

  • senpi — fenced session-less wire-status reads and added per-session fence tests.
  • senpi — priced Codex turns at the sent tier when the backend echoes auto/default.
  • senpi — kept the pre-signal error when shutdown recovery throws.
  • senpi — covered the shutdown recovery path per call site.

Currently contributing fixes to oh-my-openagent, OpenBot, and strands-agents/harness-sdk. Open pull requests are proposals, not merged features or maintainer roles.

Contribution history & open pull requests

Merged upstream pull requests: 66 across 17 repositories.

code-yeongyu/senpi

  • senpi#6343 fix(coding-agent): estimate context after a model switch instead of showing stale usage
  • senpi#6333 fix(anthropic-subscription): read the prompt-cache lifetime from loaded settings files (senpi#2988)
  • senpi#6323 fix: Ultrafast follow-ups from #2975
  • senpi#6301 fix(goal): recover a crashed goal-continuation stop on session start
  • senpi#6295 fix(coding-agent): release the anthropic-subscription pump on abort (#2974)
  • senpi#6284 fix(agent-session): refused engine-turn messages follow the transcript-failure contract
  • senpi#6279 fix(coding-agent): hide console window for win32-reachable spawns (#3965)
  • senpi#6275 fix(coding-agent): model-scoped 403 refusals no longer block the credential slot
  • senpi#6274 fix(coding-agent): stop isolated CLI re-launch replaying the caller's eval entry mode
  • senpi#6255 fix(session-backends): declare the complete bun:sqlite Database in the sqlite-bun package (#5996)
  • senpi#6222 fix(interactive): footer names the serving account when the pin is blocked (#5983)
  • senpi#6211 fix(rpc): retry a failed host-token mint before the cached token expires (#5919)
  • senpi#6264 fix(prompt-preset): render the Haiku 5.5 search-grounding sentence for Anthropic-native search
  • senpi#6232 docs(senpi-codemode): qualify process.execPath as a Bun launcher — standalone Bun only
  • senpi#6169 fix(mcp): fence session-less wire-status reads; add per-session fence tests for #3001
  • senpi#6156 fix(ai): price Codex turns at the sent tier when the backend echoes auto/default
  • senpi#6149 fix(compaction): accept valid configurationUpdate messages in retained-suffix safety (senpi#8566)
  • senpi#6146 test(coding-agent): cover the shutdown recovery path per call site (senpi#3067 L5)
  • senpi#6144 fix(coding-agent): keep the pre-signal error when shutdown recovery throws (senpi#3067 L4)
  • senpi#5997 test(kill-guard): stop owned sleepers on process exit, shorten TTL to 60s
  • senpi#5908 test(coding-agent): drive user bash through default operations in kill-guard test
  • senpi#5854 fix(codemode): probe kill-guard sleeper liveness without ps
  • senpi#5700 fix(ask-user): restore dangling questions on startup opens
  • senpi#5616 fix(claude-account): emit accounts_changed once per account add
  • senpi#5614 test(coding-agent): run source compile cache teardown even when assertions fail
  • senpi#5269 fix(retry-fallback): a 503 whose body says "Billing Scope" is not an account usage limit
  • senpi#5203 fix(coding-agent): weight CJK text in compaction cut-point budgets

code-yeongyu/oh-my-openagent

Apache SkyWalking

OpenSpec

  • OpenSpec#2120 fix(new-change): name the configured schema in the progress line
  • OpenSpec#2116 perf(cli): load ora only when a spinner is shown
  • OpenSpec#2114 fix(verify): match REMOVED baselines by exact normalized name
  • OpenSpec#2103 fix(security): replace fast-glob with tinyglobby to drop braces

nightly-labs/openbot

  • openbot#2577 Read inline triple-backtick code as text in Live Activities
  • openbot#2576 Keep emoji whole when a Live Activity cuts a code span
  • openbot#2578 Report an MCP sign-in that cannot start

comet-ml/opik

  • opik#9278 issue-8590 SDK fix: accept repeated identical JSON objects in TS LLM-judge parser
  • opik#9271 issue-8868 SDK fix: treat blank OPIK_API_KEY as unconfigured

infiniflow/ragflow

  • ragflow#21110 fix(web): accept null table_column_* fields in dataset settings form

Jenqyang/Awesome-AI-Agents

modelcontextprotocol/go-sdk

  • go-sdk#1412 mcp: parse SSE field values per the SSE spec

openclaw/openclaw

  • openclaw#177871 fix(ai): preserve compatible reasoning in follow-up requests
In review (101)

Generated from the GitHub search API by a daily workflow.

Experiments & Notes

I publish benchmark methods and run records alongside my tools. Results are specific to the tasks, models, and configurations tested; small samples need careful interpretation.

More tools will appear here as their installation, documentation, and examples are ready for others to use.

Pinned Loading

  1. phanes phanes Public

    A unified agent network in development: one control plane, distributed heterogeneous execution with swrm, and evidence-based acceptance — Goal → Task → Run/Attempt → Evidence.

    TypeScript 1

  2. swrm swrm Public

    Distributed heterogeneous agent task dispatcher — claim under lease, return with evidence. Quota-aware routing across Claude, Codex, OpenCode Go and DeepSeek, in isolated git worktrees with hard bu…

    Python 4 1

  3. evalid evalid Public

    Claimed ≠ verified. evalid is a runtime verification layer for coding agents: it seals each test run and replays it from a clean snapshot, so a claim only ships if the evidence replays green.

    JavaScript 6 3

  4. volto volto Public

    volto — a control plane where AI bots work as a cast: roles, memory, knowledge. (formerly OpenBot)

    Python 1

  5. openwiki openwiki Public

    Open benchmark toolkit for enterprise wiki and knowledge-base retrieval

    Python 1