I build the machinery under agents: settlement rails, permission layers, and the parts that have to hold when nobody is watching.

Currently MCA in AI/ML & Data Science
@ Yenepoya University
Studying robotics basics

MahammadSalman

AI/ML Engineer & Full-Stack Developer

Currently
MCA, AI/ML & Data Science @ Yenepoya University. Studying robotics basics.
Upstream at
Hermes Agent39 commits

Last 72 days, one bar a day

39 commits on Hermes Agent main

  • Mangaluru, India
  • salmanchamumu@gmail.com

If found, hire.

drag the card. click to flip it.

Fig 2Case files

Six files worth opening.

Agents can write code. They cannot collect money. A freelancer or an agent opens an invoice or a paywalled endpoint, the client settles in USDC straight to their wallet, and each settlement mints a portable reputation credential. Bridge and DEX paths ship fail-closed until a real-money probe passes.

  • Next.js
  • TypeScript
  • Solidity
  • x402
  • Postgres
  • Mistral
  1. AInvoice or x402 challenge
  2. BUSDC settles to wallet
  3. CVerified on-chain
  4. DERC-8004 credential minted

I work where agents break when nobody is watching: a gateway that will not release a stale PID, a wedged availability probe that hangs a turn, a WAL generation unlinked by a short-lived reader. Surfaces touched include the TUI, gateway lifecycle, tool execution, cron, SQLite state, desktop runtimes and channel adapters.

  • Python
  • SQLite
  • MCP
  • ACP
  • TypeScript
  1. AReproduce the failure
  2. BWrite the failing test
  3. CPatch the lifecycle
  4. DUpstream the fix

Health records are encrypted on the client before they leave the device, then held as ERC-7857 intelligent NFTs on 0G. The AI layer works over records the owner chooses to unseal.

  • TypeScript
  • 0G
  • Solidity
  • Client-side encryption
  1. AEncrypt in the browser
  2. BStore on 0G
  3. CMint ERC-7857 record
  4. DUnseal for AI

Veritas checks facts, PolicyCourt settles policy disputes with bonded objections, AeroSure pays flight insurance from live aviation data, and AgentPassport runs escrowed bounties with on-chain reputation. Each one puts an LLM consensus step inside the contract.

  • GenLayer
  • TypeScript
  • LLM consensus
  1. AEvidence submitted
  2. BValidators run LLMs
  3. CConsensus verdict
  4. DFunds released

Telegram-native onboarding, swaps and payments without leaving the conversation. Built end to end, including the contracts, pools and staking behind it, with reliability work on replica lag and transaction types at the RPC layer.

  • Next.js
  • TypeScript
  • Solidity
  • Hardhat
  1. AOpen in Telegram
  2. BWallet created
  3. CSwap or pay in chat
  4. DSettled on-chain

Bahadur Tours runs its site, ERP and desktop billing app on my stack. Shree Shyam Enterprise, a hardware store, runs a storefront, admin console, billing POS and TypeScript backend.

  • Next.js
  • TypeScript
  • Postgres
  1. AStorefront
  2. BAdmin console
  3. CBilling
  4. DReporting
Fig 3Contribution record

3,397 contributions in the last year

Synced from GitHub 6 Nov 2026. Refreshes on its own.

Longest streak
32 days
Current streak
2 days
Active days
118
Busiest day
165 on 18 Jul 2026

Palette

This one repaints the whole site.

Fig 4Hermes Agent credits

Credited in Hermes Agent.

Contributor rank
#87
Commits on main
39
Authored
25
Co-authored
14
Agent PRs merged
1
Plugin PRs merged
10
A1fx=COUNTA(hermes_agent.credits)50
A  creditB  refC  changeD  date
1plugin merged#253fix(directsdk): keep the environment message stable when the date shares its trailing message2026-11-06
2plugin merged#234fix(memory-wiki): run DB scans off the event loop (#216)2026-11-06
3plugin merged#201fix(spotify): write the loopback TLS pair owner-only, atomically, and rebuild it when corrupt2026-11-06
4plugin merged#177docs(directsdk): note the post-tool-result streaming cadence and whose job pacing is2026-11-06
5plugin merged#175test(spotify): cover spotify_tools validation, dispatch and error plumbing2026-11-06
6plugin merged#172fix(directsdk): a revoked OAuth login serves the turn again after one refresh re-issue2026-11-06
7plugin merged#160fix(homeassistant): give the agent the timestamps in local time (#155)2026-11-06
8plugin merged#153fix(xchat): bound the inbound media download while it is read2026-11-06
9plugin merged#143fix(homeassistant): make the WebSocket ping interval configurable2026-11-06
10agent merged#140922fix(gateway): stamp an unproven --replace refusal startup_failed so the next start wins2026-10-21
11authored8cf3a0bfix(gateway): make the ownership-refusal stamp durable before the hard exit2026-10-18
12authoredff9e252fix(gateway): let the startup_failed stamp clear the way instead of parking the unit2026-10-18
13authored7609103fix(gateway): park a unit on unprovable --replace ownership instead of restart-looping2026-10-18
14co-authored05a3254fix(agent): agent builds no longer wrap the thread-routing stdio proxy2026-10-18
15plugin merged#61fix(directsdk): carry the login identity into the child env; capture native stderr2026-10-16
16authored8ad29a8fix(anthropic): give the wire image-eviction pass the 24 MB request budget2026-10-07
17authored8b1ccb6fix(agent): gate the 20-image eviction trigger on the request's dimensions2026-10-07
18co-authored0dbaf33fix(gateway): measure fallback drift from the session's winning model on its primary route2026-10-06
19authored912c9defix(state): key display identity of tool rows on stable tool identity, not payload bytes (#117750)2026-10-02
20authorede70801efix(cron): keep a sticky last_failure stamp so a healed run stays visible2026-09-29
21co-authored063de85fix(auth): accept provider-verified session tokens in gated WS auth2026-09-29
22authored36ff1abfix(desktop): graft this window's own turn residue instead of refusing the send (fixes #124005)2026-09-28
23co-authoredb11f3ebtest(preview): match the holder contract in the #98048 regression tests2026-09-28
24co-authoredd903f3afix(tui-gateway): keep activity heartbeats out of the sessions digest2026-09-28
25co-authoredf338f48test(update): keep two invariant tests per fix in the salvaged unit tests2026-09-28
26authored9d79410fix(memory): migration note must not imply config.yaml provider keys still apply2026-09-27
27authored6a3db7cfix(auth): treat nous as a single-use refresh pool provider2026-09-27
28co-authoredec262e1fix(auth): strip and heal cloned nous providers refresh grant2026-09-27
29authored793c07ffix(backup): percent-encode path in _query_ro_sqlite URI2026-09-26
30co-authored40cb28efix(agent,slack): close remaining compressor elision gaps from review2026-09-26
31co-authoredf7122dafix(slack,trajectory): mint the compression marker for agent-facing truncations2026-09-26
32co-authored369fb8efix(env): self-referential .env values resolve once per process instead of growing on every reload2026-09-17
33co-authored37eb4d0test(mcp): cover a tools/list_changed refresh that lands during a session restart (#109824)2026-09-17
34authored477afd2fix(whatsapp): adapter reads WHATSAPP_GROUP_ALLOWED_USERS for the group allowlist (#72529)2026-09-14
35authored101861cfix(discord): dispatch-side liveness dimension detects an ACKing-but-deaf gateway socket (#109521)2026-09-14
36authoreda4b620ffix(agent): same-model review fork inherits the parent's resolved cache scope (#109964)2026-09-13
37authored1c82c22fix(mcp): skip dynamic tool refresh when the server session is already gone (#109824)2026-09-13
38authoredcef499ffix(discord): liveness probe gains a dispatch-side dimension (#109521)2026-09-13
39authored6d4ca15fix(agent): mirror Claude Code OAuth refresh into the macOS Keychain (#98334)2026-09-13
40authored2a9ba25fix(desktop): do not fail build if get-windows is missing on any platform2026-09-12
41co-authored9a60a7ftest(cron): one fail-fast guard for the heartbeat vs its own run's fence2026-09-12
42authoredad0398efix(kanban): preserve sticky block on tasks created with initial_status=blocked (#107398)2026-09-11
43authored8f6afbafix(tui_gateway): handle deleted profiles gracefully in _response_profile_name (#107829)2026-09-11
44authoredfc07f21run: quiesce cron/deferred workers before DB close2026-09-10
45co-authoredcbd03e6fix(gateway): secondary-profile adapters no longer inherit the default's allow-all / allowlists2026-09-10
46authored3e72aeffix(serve): reserve ProcessLookupError for known missing process signals2026-09-09
47authored2489f15fix(serve): ensure parent-death watchdog detects exited Desktop parent (#80204)2026-09-09
48co-authored4126b14fix(agent): read the sidecar row id under the session persist lock2026-09-08
49authored64878d4fix(preview): use proper input events for React/contenteditable/sumbit in drive_preview type2026-08-31
50authored9b0eb7ffix(desktop): honour arrowed slash-picker highlight on bare '/' query2026-08-30
Fig 5Workbench

Smaller builds, pinned up.

Fig 6Parts list
01LanguagesTypeScript, Python, Solidity, Move, Rust, SQL, Bash
02AI / MLPyTorch, TensorFlow, scikit-learn, pandas, NumPy, Hugging Face, RAG, LlamaIndex, evals
03AgentsMCP, ACP, x402, tool calling, memory stores, sandboxes, subagents
04FrontendReact, Next.js, Vite, Tailwind, Framer Motion, Three.js, Zustand
05BackendNode, Fastify, Express, FastAPI, Flask, GraphQL, tRPC, WebSockets, Prisma, Drizzle
06DataPostgres, Redis, SQLite, MongoDB, pgvector, ClickHouse, Supabase
07ChainsEVM, Hardhat, Foundry, viem, wagmi, GenLayer, 0G, Aptos Move, Stellar Soroban, Zama FHE
08InfraDocker, GitHub Actions, Vercel, Cloudflare Workers, Linux, Nginx, Terraform, Sentry
09TestingVitest, Pytest, Playwright
Fig 7Training
  • In progress

    Yenepoya University

    Master of Computer Applications (MCA)
    AI/ML Engineering and Data Science

  • Currently studying

    Robotics Basics

    Fundamentals

  • Completed

    Srinivas University

    Bachelor of Computer Applications (BCA)
    Software Development and Web Design