{"componentChunkName":"component---src-templates-blog-post-js","path":"/my-macbook-is-now-reachable-24/","result":{"data":{"site":{"siteMetadata":{"title":"Catwomaniya"}},"mdx":{"id":"afbb96a1-b83a-5617-a030-b9e7ac0d0344","excerpt":"I recently discovered Codex on mobile, and it is one of the nicest upgrades I've made. It was making my Mac available from literally anywhere. Now I can be out…","body":"var _excluded = [\"components\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\n/* @jsx mdx */\n\nvar _frontmatter = {\n  \"title\": \"My macbook is now reachable 24/7\",\n  \"date\": \"2026-06-25\",\n  \"description\": \"How to run your macbook 24/7 efficiently\"\n};\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n    props = _objectWithoutProperties(_ref, _excluded);\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"p\", null, \"I recently discovered Codex on mobile, and it is one of the nicest upgrades I\\u2019ve made. It was making my Mac available from literally anywhere.\"), mdx(\"p\", null, \"Now I can be out, open my phone, start a Codex task and continue exactly where I left off. Here\\u2019s the basic setup.\"), mdx(\"h3\", null, \"1. Keep the Mac awake\"), mdx(\"p\", null, \"First problem: your Mac can\\u2019t sleep.\\nUse the original caffeinate command or use Amphetamine so the Mac never goes to sleep. I like better interfaces so I opt for Amphetamine.\\nAnd while using Amphetamine Power Protect, it lets you close the lid while the machine keeps running.\"), mdx(\"h3\", null, \"2. Install Tailscale\"), mdx(\"p\", null, \"Next, install \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://tailscale.com/\"\n  }, \"Tailscale\"), \".\\nIt creates a private network between your devices, so your phone can securely reach your Mac from anywhere. No exposing your home IP.\\nEverything just works.\"), mdx(\"h3\", null, \"3. Secure SSH properly\"), mdx(\"p\", null, \"Generate an SSH key. Copy the public key to your Mac. Then disable password authentication completely. Now only devices with your SSH key can connect.\\nCodex remote feature communicates with the Codex app host directly, so you don\\u2019t use SSH to start Codex tasks. However, it is still invaluable if you need to do anything outside the Codex interface\"), mdx(\"p\", null, mdx(\"span\", {\n    parentName: \"p\",\n    \"className\": \"gatsby-resp-image-wrapper\",\n    \"style\": {\n      \"position\": \"relative\",\n      \"display\": \"block\",\n      \"marginLeft\": \"auto\",\n      \"marginRight\": \"auto\",\n      \"maxWidth\": \"590px\"\n    }\n  }, \"\\n      \", mdx(\"a\", {\n    parentName: \"span\",\n    \"className\": \"gatsby-resp-image-link\",\n    \"href\": \"/static/db2b6ad6594d2d46063934c958e861a6/a8a6f/mac.png\",\n    \"style\": {\n      \"display\": \"block\"\n    },\n    \"target\": \"_blank\",\n    \"rel\": \"noopener\"\n  }, \"\\n    \", mdx(\"span\", {\n    parentName: \"a\",\n    \"className\": \"gatsby-resp-image-background-image\",\n    \"style\": {\n      \"paddingBottom\": \"51.35135135135135%\",\n      \"position\": \"relative\",\n      \"bottom\": \"0\",\n      \"left\": \"0\",\n      \"backgroundImage\": \"url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAKCAIAAAA7N+mxAAAACXBIWXMAAAsTAAALEwEAmpwYAAABg0lEQVR42oVRyXKsMAzk/z9s3inJS6BmJpBhM4uXMYth8A5RIJVLDlG5VF1dakluBdu2CSHKspznGbD3fv0VQDLGiqKo63oYhm0P4APn3PVyPZ1OVVX5XQrJeT/pSajJeQd1XdcVeR5GURzHeZ6zkXHOjTGBlDKMwvnxaOrGGgOlzlvIKc/SLjuG3BmtK/T6/yVJQJzRnozjCDMCpVSSJv04IIT6SdXcTNJqa2KW3HgKwK9bhcd/T+eXMH5+u1zfE2vd99ogvqVZ1w8lqmZphPRSO+MsngiZCOwPOL9v6G5r3LV0XBattNu1a7AsCyrr1W8lQsukBNNaWujNBKMjBQRDLuHH+e2Gq540/SKt0e4w8sswQgkmGPy01sv5S6mNwZgAq7UGMac9ox2UkJZqqX4OEuynWJ3biW3dP+OVVk3bYoyt1WKxBVFplkfR+SPHdHDgvNqbBscZf/IRcKHjQVulLe9nTltOm7HvpoeEHY2x3+K/wxsv0OOeC3Jzej6sXtf1E472OO2QmZ3bAAAAAElFTkSuQmCC')\",\n      \"backgroundSize\": \"cover\",\n      \"display\": \"block\"\n    }\n  }), \"\\n  \", mdx(\"img\", {\n    parentName: \"a\",\n    \"className\": \"gatsby-resp-image-image\",\n    \"alt\": \"setup layout\",\n    \"title\": \"setup layout\",\n    \"src\": \"/static/db2b6ad6594d2d46063934c958e861a6/fcda8/mac.png\",\n    \"srcSet\": [\"/static/db2b6ad6594d2d46063934c958e861a6/12f09/mac.png 148w\", \"/static/db2b6ad6594d2d46063934c958e861a6/e4a3f/mac.png 295w\", \"/static/db2b6ad6594d2d46063934c958e861a6/fcda8/mac.png 590w\", \"/static/db2b6ad6594d2d46063934c958e861a6/efc66/mac.png 885w\", \"/static/db2b6ad6594d2d46063934c958e861a6/c83ae/mac.png 1180w\", \"/static/db2b6ad6594d2d46063934c958e861a6/a8a6f/mac.png 1516w\"],\n    \"sizes\": \"(max-width: 590px) 100vw, 590px\",\n    \"style\": {\n      \"width\": \"100%\",\n      \"height\": \"100%\",\n      \"margin\": \"0\",\n      \"verticalAlign\": \"middle\",\n      \"position\": \"absolute\",\n      \"top\": \"0\",\n      \"left\": \"0\"\n    },\n    \"loading\": \"lazy\"\n  }), \"\\n  \"), \"\\n    \")), mdx(\"h2\", null, \"Bonus: Your local dev server works everywhere\"), mdx(\"p\", null, \"Instead of opening localhost, just open the Tailscale IP from your phone.\\nNow you\\u2019re viewing your local website directly on your phone without deploying anything.\\nIt\\u2019s perfect for checking mobile layouts and responsive behaviour.\"), mdx(\"h2\", null, \"A few thoughts after using Codex on phone\"), mdx(\"p\", null, \"Overall, the mobile experience is genuinely impressive.\\nLife has all been about productivitymaxxing so this becomes useful when you\\u2019re commuting or standing in queues or anything boring. That said, there are still a few rough edges.\"), mdx(\"blockquote\", null, mdx(\"p\", {\n    parentName: \"blockquote\"\n  }, \"Reviewing larger diffs currently feels much more cumbersome than it needs to be. A proper full-screen review mode and a way to browse changes file-by-file would be useful\\nOn my iPhone 14 Plus, longer conversations become noticeably sluggish. Sometimes after force quitting and reopening the app, I still end up waiting several seconds between key presses while typing.\\nThis isn\\u2019t just for mobile but why can\\u2019t I delete conversations easily? I can only archive and there\\u2019s no real Delete button in the UI.\")), mdx(\"h2\", null, \"Don\\u2019t forget security\"), mdx(\"p\", null, \"The idea of leaving your Mac online 24/7 sounds terrifying until you realize it doesn\\u2019t have to be exposed to the internet at all.\\nTailscale puts your devices on a private network, so your Mac isn\\u2019t sitting on the public internet waiting for someone to find an open port.\\nFor SSH, disable password authentication and only allow key-based logins. Even if someone somehow discovers your machine, they can\\u2019t just brute-force a password that doesn\\u2019t exist.\\nThe only service I intentionally expose is the Codex app host, and even that is only reachable from my trusted devices through Tailscale.\"), mdx(\"p\", null, \"It\\u2019s a surprisingly simple setup, but it\\u2019s changed how I work. Instead of waiting until I\\u2019m back at my desk, I can kick off work whenever an idea comes to mind and by the time I get home, there\\u2019s usually something waiting for me.\"));\n}\n;\nMDXContent.isMDXComponent = true;","frontmatter":{"title":"My macbook is now reachable 24/7","date":"Jun 25, 2026","description":"How to run your macbook 24/7 efficiently"}}},"pageContext":{"slug":"/my-macbook-is-now-reachable-24/","previous":{"fields":{"collection":"blog","slug":"/first-thoughts-after-using-figma-ai/"},"frontmatter":{"title":"First thoughts after using Figma AI"}},"next":null}},"staticQueryHashes":["2841359383"]}