🐦 Twitter Post Details

Viewing enriched Twitter post

@shannholmberg

my entire Hermes Agent setup is controlled from one folder on a VPS I can manage it from my laptop or phone in under 10 seconds, spin up isolated agents per project, and never lose context here's the full setup: > bash command "ssh hermes" auto-connects to the VPS > session pinned in CMUX terminal for instant access > Claude Code session inside the ssh connection with full remote access > everything runs from a control station folder folder structure: vps-agents/ β”œβ”€β”€ README .md overview + how to use it β”œβ”€β”€ CLAUDE .md auto-loaded project context for Claude Code β”œβ”€β”€ agents/hermes-main/ β”‚ β”œβ”€β”€ inventory .md IP, hostname, where it runs, who owns it β”‚ β”œβ”€β”€ docker. md draft docker-compose + first-boot checklist β”‚ β”œβ”€β”€ runbook. md "it broke, what now" β€” 7 common scenarios β”‚ β”œβ”€β”€ env-map. md table of which keys live where (no values) β”‚ └── backup. md GitHub backup flow + restore steps └── shared/ β”œβ”€β”€ security. md VPS-wide hardening checklist └── commands. md Docker / Hermes / UFW cheat sheet from this session I can spin up new docker-isolated agents per area and each one can have sub-profiles the whole stack is documented, backed up to GitHub, and accessible from anywhere

Media 1

πŸ“Š Media Metadata

{
  "media": [
    {
      "url": "https://crmoxkoizveukayfjuyo.supabase.co/storage/v1/object/public/media/posts/2054309307492290988/media_0.jpg",
      "media_url": "https://crmoxkoizveukayfjuyo.supabase.co/storage/v1/object/public/media/posts/2054309307492290988/media_0.jpg",
      "type": "photo",
      "filename": "media_0.jpg"
    }
  ],
  "processed_at": "2026-05-14T04:04:53.797517",
  "pipeline_version": "2.0"
}

πŸ”§ Raw API Response

{
  "type": "tweet",
  "id": "2054309307492290988",
  "url": "https://x.com/shannholmberg/status/2054309307492290988",
  "twitterUrl": "https://twitter.com/shannholmberg/status/2054309307492290988",
  "text": "my entire Hermes Agent setup is controlled from one folder on a VPS\n\nI can manage it from my laptop or phone in under 10 seconds, spin up isolated agents per project, and never lose context\n\nhere's the full setup:\n\n> bash command \"ssh hermes\" auto-connects to the VPS\n> session pinned in CMUX terminal for instant access\n> Claude Code session inside the ssh connection with full remote access\n> everything runs from a control station folder\n\nfolder structure:\n\n  vps-agents/\n  β”œβ”€β”€ README .md              overview + how to use it\n  β”œβ”€β”€ CLAUDE .md              auto-loaded project context for Claude Code\n  β”œβ”€β”€ agents/hermes-main/\n  β”‚   β”œβ”€β”€ inventory .md       IP, hostname, where it runs, who owns it\n  β”‚   β”œβ”€β”€ docker. md          draft docker-compose + first-boot checklist\n  β”‚   β”œβ”€β”€ runbook. md         \"it broke, what now\" β€” 7 common scenarios\n  β”‚   β”œβ”€β”€ env-map. md         table of which keys live where (no values)\n  β”‚   └── backup. md          GitHub backup flow + restore steps\n  └── shared/\n      β”œβ”€β”€ security. md        VPS-wide hardening checklist\n      └── commands. md        Docker / Hermes / UFW cheat sheet\n\nfrom this session I can spin up new docker-isolated agents per area and each one can have sub-profiles\n\nthe whole stack is documented, backed up to GitHub, and accessible from anywhere",
  "source": "Twitter for iPhone",
  "retweetCount": 90,
  "replyCount": 50,
  "likeCount": 887,
  "quoteCount": 2,
  "viewCount": 74068,
  "createdAt": "Tue May 12 21:14:40 +0000 2026",
  "lang": "en",
  "bookmarkCount": 1627,
  "isReply": false,
  "inReplyToId": null,
  "conversationId": "2054309307492290988",
  "displayTextRange": [
    0,
    283
  ],
  "inReplyToUserId": null,
  "inReplyToUsername": null,
  "author": {
    "type": "user",
    "userName": "shannholmberg",
    "url": "https://x.com/shannholmberg",
    "twitterUrl": "https://twitter.com/shannholmberg",
    "id": "1455999313453195265",
    "name": "ShannΒ³",
    "isVerified": false,
    "isBlueVerified": true,
    "verifiedType": null,
    "profilePicture": "https://pbs.twimg.com/profile_images/2018272759122440192/JJPUdPDs_normal.jpg",
    "coverPicture": "https://pbs.twimg.com/profile_banners/1455999313453195265/1772543025",
    "description": "",
    "location": "Lisbon, Portugal",
    "followers": 27563,
    "following": 12738,
    "status": "",
    "canDm": true,
    "canMediaTag": false,
    "createdAt": "Wed Nov 03 20:44:36 +0000 2021",
    "entities": {
      "description": {
        "urls": []
      },
      "url": {}
    },
    "fastFollowersCount": 0,
    "favouritesCount": 20741,
    "hasCustomTimelines": true,
    "isTranslator": false,
    "mediaCount": 1430,
    "statusesCount": 10254,
    "withheldInCountries": [],
    "affiliatesHighlightedLabel": {},
    "possiblySensitive": false,
    "pinnedTweetIds": [
      "2044111115878326444"
    ],
    "profile_bio": {
      "description": "I cover AI marketing & growth. Sharing every framework as I build it. \n\nFounder @espressioai, @lunarstrategy",
      "entities": {
        "description": {
          "user_mentions": [
            {
              "id_str": "",
              "indices": [
                80,
                92
              ],
              "name": "",
              "screen_name": "espressioai"
            },
            {
              "id_str": "",
              "indices": [
                94,
                108
              ],
              "name": "",
              "screen_name": "lunarstrategy"
            }
          ]
        },
        "url": {
          "urls": [
            {
              "display_url": "t.me/lunarshann",
              "expanded_url": "http://t.me/lunarshann",
              "indices": [
                0,
                23
              ],
              "url": "https://t.co/CeKH7sRRsE"
            }
          ]
        }
      }
    },
    "isAutomated": false,
    "automatedBy": null
  },
  "extendedEntities": {
    "media": [
      {
        "display_url": "pic.twitter.com/3g956Irx6x",
        "expanded_url": "https://twitter.com/shannholmberg/status/2054309307492290988/photo/1",
        "ext_media_availability": {
          "status": "Available"
        },
        "features": {
          "large": {
            "faces": [
              {
                "h": 74,
                "w": 74,
                "x": 1010,
                "y": 1336
              },
              {
                "h": 349,
                "w": 349,
                "x": 379,
                "y": 452
              }
            ]
          },
          "orig": {
            "faces": [
              {
                "h": 74,
                "w": 74,
                "x": 1010,
                "y": 1336
              },
              {
                "h": 349,
                "w": 349,
                "x": 379,
                "y": 452
              }
            ]
          }
        },
        "id_str": "2054309304518520832",
        "indices": [
          284,
          307
        ],
        "media_key": "3_2054309304518520832",
        "media_results": {
          "id": "QXBpTWVkaWFSZXN1bHRzOgwAAQoAARyCX22imzAACgACHIJfblPbUawAAA==",
          "result": {
            "__typename": "ApiMedia",
            "id": "QXBpTWVkaWE6DAABCgABHIJfbaKbMAAKAAIcgl9uU9tRrAAA",
            "media_key": "3_2054309304518520832"
          }
        },
        "media_url_https": "https://pbs.twimg.com/media/HIJfbaKbMAAXJeC.jpg",
        "original_info": {
          "focus_rects": [
            {
              "h": 713,
              "w": 1274,
              "x": 0,
              "y": 707
            },
            {
              "h": 1274,
              "w": 1274,
              "x": 0,
              "y": 146
            },
            {
              "h": 1420,
              "w": 1246,
              "x": 28,
              "y": 0
            },
            {
              "h": 1420,
              "w": 710,
              "x": 390,
              "y": 0
            },
            {
              "h": 1420,
              "w": 1274,
              "x": 0,
              "y": 0
            }
          ],
          "height": 1420,
          "width": 1274
        },
        "sizes": {
          "large": {
            "h": 1420,
            "w": 1274
          }
        },
        "type": "photo",
        "url": "https://t.co/3g956Irx6x"
      }
    ]
  },
  "card": null,
  "place": {},
  "entities": {
    "hashtags": [],
    "symbols": [],
    "urls": [],
    "user_mentions": []
  },
  "quoted_tweet": {
    "type": "tweet",
    "id": "2054249815291351207",
    "url": "https://x.com/shannholmberg/status/2054249815291351207",
    "twitterUrl": "https://twitter.com/shannholmberg/status/2054249815291351207",
    "text": "Hermes Agent changed how I work\n\nit's the highest leverage agent framework you can set up right now\n\nwhat makes it different:\n\n> it routes tasks to the right model based on complexity and cost\n> learns your voice and preferences over time\n> handles context switching without losing thread\n> works across your entire stack instead of living in one tool\n\nsave this blueprint and build your own",
    "source": "Twitter for iPhone",
    "retweetCount": 81,
    "replyCount": 43,
    "likeCount": 616,
    "quoteCount": 6,
    "viewCount": 154612,
    "createdAt": "Tue May 12 17:18:16 +0000 2026",
    "lang": "en",
    "bookmarkCount": 981,
    "isReply": false,
    "inReplyToId": null,
    "conversationId": "2054249815291351207",
    "displayTextRange": [
      0,
      283
    ],
    "inReplyToUserId": null,
    "inReplyToUsername": null,
    "author": {
      "type": "user",
      "userName": "shannholmberg",
      "url": "https://x.com/shannholmberg",
      "twitterUrl": "https://twitter.com/shannholmberg",
      "id": "1455999313453195265",
      "name": "ShannΒ³",
      "isVerified": false,
      "isBlueVerified": true,
      "verifiedType": null,
      "profilePicture": "https://pbs.twimg.com/profile_images/2018272759122440192/JJPUdPDs_normal.jpg",
      "coverPicture": "https://pbs.twimg.com/profile_banners/1455999313453195265/1772543025",
      "description": "",
      "location": "Lisbon, Portugal",
      "followers": 27563,
      "following": 12738,
      "status": "",
      "canDm": true,
      "canMediaTag": false,
      "createdAt": "Wed Nov 03 20:44:36 +0000 2021",
      "entities": {
        "description": {
          "urls": []
        },
        "url": {}
      },
      "fastFollowersCount": 0,
      "favouritesCount": 20741,
      "hasCustomTimelines": true,
      "isTranslator": false,
      "mediaCount": 1430,
      "statusesCount": 10254,
      "withheldInCountries": [],
      "affiliatesHighlightedLabel": {},
      "possiblySensitive": false,
      "pinnedTweetIds": [
        "2044111115878326444"
      ],
      "profile_bio": {
        "description": "I cover AI marketing & growth. Sharing every framework as I build it. \n\nFounder @espressioai, @lunarstrategy",
        "entities": {
          "description": {
            "user_mentions": [
              {
                "id_str": "",
                "indices": [
                  80,
                  92
                ],
                "name": "",
                "screen_name": "espressioai"
              },
              {
                "id_str": "",
                "indices": [
                  94,
                  108
                ],
                "name": "",
                "screen_name": "lunarstrategy"
              }
            ]
          },
          "url": {
            "urls": [
              {
                "display_url": "t.me/lunarshann",
                "expanded_url": "http://t.me/lunarshann",
                "indices": [
                  0,
                  23
                ],
                "url": "https://t.co/CeKH7sRRsE"
              }
            ]
          }
        }
      },
      "isAutomated": false,
      "automatedBy": null
    },
    "extendedEntities": {
      "media": [
        {
          "display_url": "pic.twitter.com/2NXeuNlO92",
          "expanded_url": "https://twitter.com/shannholmberg/status/2054249815291351207/photo/1",
          "ext_media_availability": {
            "status": "Available"
          },
          "features": {
            "large": {
              "faces": [
                {
                  "h": 55,
                  "w": 55,
                  "x": 537,
                  "y": 598
                },
                {
                  "h": 85,
                  "w": 85,
                  "x": 582,
                  "y": 1038
                }
              ]
            },
            "orig": {
              "faces": [
                {
                  "h": 55,
                  "w": 55,
                  "x": 537,
                  "y": 598
                },
                {
                  "h": 85,
                  "w": 85,
                  "x": 582,
                  "y": 1038
                }
              ]
            }
          },
          "id_str": "2054249811818459136",
          "indices": [
            284,
            307
          ],
          "media_key": "3_2054249811818459136",
          "media_results": {
            "id": "QXBpTWVkaWFSZXN1bHRzOgwAAQoAARyCKVHpWjAACgACHIIpUrhaUKcAAA==",
            "result": {
              "__typename": "ApiMedia",
              "id": "QXBpTWVkaWE6DAABCgABHIIpUelaMAAKAAIcgilSuFpQpwAA",
              "media_key": "3_2054249811818459136"
            }
          },
          "media_url_https": "https://pbs.twimg.com/media/HIIpUelaMAAKC-o.jpg",
          "original_info": {
            "focus_rects": [
              {
                "h": 573,
                "w": 1024,
                "x": 0,
                "y": 0
              },
              {
                "h": 1024,
                "w": 1024,
                "x": 0,
                "y": 0
              },
              {
                "h": 1167,
                "w": 1024,
                "x": 0,
                "y": 0
              },
              {
                "h": 1536,
                "w": 768,
                "x": 0,
                "y": 0
              },
              {
                "h": 1536,
                "w": 1024,
                "x": 0,
                "y": 0
              }
            ],
            "height": 1536,
            "width": 1024
          },
          "sizes": {
            "large": {
              "h": 1536,
              "w": 1024
            }
          },
          "type": "photo",
          "url": "https://t.co/2NXeuNlO92"
        }
      ]
    },
    "card": null,
    "place": {},
    "entities": {
      "hashtags": [],
      "symbols": [],
      "urls": [],
      "user_mentions": []
    },
    "quoted_tweet": {
      "type": "tweet",
      "id": "2053477584068063708",
      "url": "",
      "twitterUrl": "",
      "text": "",
      "source": "Twitter for iPhone",
      "retweetCount": 0,
      "replyCount": 0,
      "likeCount": 0,
      "quoteCount": 0,
      "viewCount": 0,
      "createdAt": "",
      "lang": "",
      "bookmarkCount": 0,
      "isReply": false,
      "inReplyToId": null,
      "conversationId": "",
      "displayTextRange": [],
      "inReplyToUserId": null,
      "inReplyToUsername": null,
      "author": {},
      "extendedEntities": {},
      "card": null,
      "place": {},
      "entities": {},
      "quoted_tweet": null,
      "retweeted_tweet": null,
      "isLimitedReply": false,
      "communityInfo": null,
      "article": null
    },
    "retweeted_tweet": null,
    "isLimitedReply": false,
    "communityInfo": null,
    "article": null
  },
  "retweeted_tweet": null,
  "isLimitedReply": false,
  "communityInfo": null,
  "article": null
}