{"slug": "code-is-being-written-everywhere-and-the-device-is-the-only-constant", "title": "Code is being written everywhere, and the device is the only constant", "summary": "PostHog co-founder James Hawkins warns that the fragmentation of coding interfaces—from Slack bots to AI agents and MCP servers—is expanding the attack surface on developer devices faster than security tooling can keep up. As developers increasingly write code through chat, voice, and background agents, the device remains the one constant vector for supply chain attacks, as demonstrated by recent incidents like TeamPCP, the Axios maintainer hijack, and the Glassworm attack. Hawkins notes that while AI accelerates development, it also forces companies to spend more on security to protect against threats targeting developer machines.", "body_md": "*This post is based on **Mackenzie's** conversation with **James Hawkins** on **The Secure Disclosure podcast**. Listen to the full episode or watch below.*\n\nPostHog's engineering team is merging roughly as many pull requests through Slack as through their code editor. As James Hawkins, co-founder and co-CEO of PostHog, explains on the podcast, the shift towards dispersed coding interfaces is underway. \"Why are code editors all desktop apps right now? That's a relic of the past. Back in the day, when writing the code was the bottleneck, you wanted a big screen with eight files open. That problem is kind of gone.\"\n\nSlack is just one example. Developers are writing code through AI agents, chat interfaces, and MCP servers wired together in ways their security teams have never seen, let alone approved. The interface is fragmenting faster than any security tooling was built to handle. Your EDR can't see work that has moved to a Slack bot, an MCP server, or an agent running in the background. Hawkins thinks voice is next. \"Do you even need a screen today at all? You might be coding in Slack, WhatsApp, or literally calling it.\"\n\n## The attack surface is bigger than many teams realize, and it's still growing\n\nThe developer device is already an under-protected attack surface, and attackers know it. In March alone, [TeamPCP](/blog/teampcp-deploys-worm-npm-trivy-compromise) chained stolen credentials across four major open source projects in under ten days. The [Axios maintainer account was hijacked](/blog/axios-npm-compromised-maintainer-hijacked-rat) and used to distribute a RAT through a package nobody had explicitly installed or reviewed. The [Glassworm attack](/blog/what-mdm-cant-protect) compromised VS Code extensions and browser plugins to silently backdoor developer machines, exposing 3,800 of GitHub's internal repositories in under 18 minutes. None of these required finding a vulnerability in anyone's code. [The developer device was the vulnerability](/blog/developer-machines-supply-chain-attacks).\n\nHawkins is thinking about the security implications, too. \"We're probably spending much more on security than we would have been had there not been the explosion of AI. AI brings with it the ability to write code hundreds of times faster than you ever could before, which saves a bunch of money. But you then need to spend more on security.\"\n\nThe attack surface is only expanding, and PostHog is living this transition in real time. Their Slack integration for coding work took off internally because the less creative engineering work, fixing a UX annoyance, patching a failing test, is exactly the kind of task an AI coding agent can handle without a developer opening an editor at all. As Hawkins puts it, \"The kind of thing that, because the model's getting stronger, we can see people coding through Slack.\" MCP servers extend this further, carrying the same supply chain risks as any other dependency. The [first confirmed malicious MCP server](https://thehackernews.com/2025/09/first-malicious-mcp-server-found.html) appeared on npm in September 2025, silently blind-copying every outgoing email to an attacker-controlled address across fifteen clean versions before the backdoor appeared on the sixteenth. Hawkins sees the interface continuing to evolve well beyond any of this. \"I could see the desktop app starting to actually feel a lot like Slack. GitHub becomes like the back end. It's almost like S3. This is just supposed to store code.\"\n\n## The device is the one constant as interfaces evolve\n\nDeveloper devices hold the keys to the castle. These are cloud credentials, SSH keys, npm publish tokens, Kubernetes configs, and direct access to source code and production. Compromise one, and the blast radius is enormous. That's what makes developer devices the number one target for supply chain attackers, and it's what makes the interface fragmentation problem so dangerous. Whatever tool an engineer uses, it lands on the device first.\n\nFor example, say a developer gets a Slack message from their team's AI coding bot flagging a failing test with a drafted fix. The diff looks reasonable, so they hit approve on their phone during a commute. The agent merges the PR, pulls a new dependency, executes the postinstall hook, and touches production credentials, all before the developer sits back down. The package was published two hours ago and nobody has reviewed it. From MDM's perspective, nothing happened. From EDR's perspective, a process ran that looked like normal development activity. By the time anything anomalous shows up in a log, the credentials are gone. One approved Slack message provided full device access.\n\n[MDM](/blog/what-mdm-cant-protect) doesn't see what gets pulled from a package registry or installed through a VS Code marketplace. EDR doesn't catch a malicious postinstall hook until after it's already run. By then, the credentials are gone.\n\n## Aikido Device Protection monitors all of these interfaces at the device level\n\n[Aikido Device Protection](/protect/device-protection) sits on the developer device itself, giving security teams central visibility and control over everything installed across developer machines, including npm packages, IDE extensions, browser plugins, and AI tools. It checks every install against [Aikido Intel's threat feed](https://intel.aikido.dev/), which analyzes over 100,000 suspicious projects per day and identifies malware within minutes of publication. Malicious installs get blocked before they touch the machine. Safe installs go through without interruption, keeping devs safe without disrupting their day.\n\n{{cta}}\n\n<script type=\"application/ld+json\">\n\n{\n\n\"@context\": \"https://schema.org\",\n\n\"@graph\": [\n\n{\n\n\"@type\": \"WebPage\",\n\n\"@id\": \"https://www.aikido.dev/blog/code-is-written-everywhere#webpage\",\n\n\"url\": \"https://www.aikido.dev/blog/code-is-written-everywhere\",\n\n\"name\": \"Code Is Written Everywhere — and the Device Is the Only Constant | Aikido Security\",\n\n\"description\": \"Developers are coding through Slack, AI agents, and MCP servers — but your EDR can't see any of it. Learn why the developer device is the #1 supply chain attack target and how Aikido Device Protection keeps it secure.\",\n\n\"inLanguage\": \"en\",\n\n\"isPartOf\": {\n\n\"@id\": \"https://www.aikido.dev/#website\"\n\n},\n\n\"primaryImageOfPage\": {\n\n\"@id\": \"https://www.aikido.dev/blog/code-is-written-everywhere#primaryimage\"\n\n},\n\n\"breadcrumb\": {\n\n\"@id\": \"https://www.aikido.dev/blog/code-is-written-everywhere#breadcrumb\"\n\n},\n\n\"speakable\": {\n\n\"@type\": \"SpeakableSpecification\",\n\n\"cssSelector\": [\"h1\", \"h2\", \".article-summary\"]\n\n}\n\n},\n\n{\n\n\"@type\": \"NewsArticle\",\n\n\"@id\": \"https://www.aikido.dev/blog/code-is-written-everywhere#article\",\n\n\"mainEntityOfPage\": {\n\n\"@id\": \"https://www.aikido.dev/blog/code-is-written-everywhere#webpage\"\n\n},\n\n\"headline\": \"Code Is Written Everywhere — and the Device Is the Only Constant\",\n\n\"description\": \"Developers are coding through Slack, AI agents, and MCP servers — but your EDR can't see any of it. Learn why the developer device is the #1 supply chain attack target and how Aikido Device Protection keeps it secure.\",\n\n\"datePublished\": \"2026-06-10T00:00:00+00:00\",\n\n\"dateModified\": \"2026-06-10T00:00:00+00:00\",\n\n\"inLanguage\": \"en\",\n\n\"url\": \"https://www.aikido.dev/blog/code-is-written-everywhere\",\n\n\"image\": {\n\n\"@id\": \"https://www.aikido.dev/blog/code-is-written-everywhere#primaryimage\"\n\n},\n\n\"author\": {\n\n\"@id\": \"https://www.aikido.dev/authors/nicholas-thomson#person\"\n\n},\n\n\"publisher\": {\n\n\"@id\": \"https://www.aikido.dev/#organization\"\n\n},\n\n\"isPartOf\": {\n\n\"@id\": \"https://www.aikido.dev/blog/code-is-written-everywhere#webpage\"\n\n},\n\n\"articleSection\": \"Security\",\n\n\"keywords\": [\n\n\"developer device security\",\n\n\"supply chain attack\",\n\n\"MCP server security\",\n\n\"AI coding agents\",\n\n\"EDR limitations\",\n\n\"npm malware\",\n\n\"VS Code extension security\",\n\n\"Aikido Device Protection\",\n\n\"developer security\",\n\n\"software supply chain\",\n\n\"postinstall hook attack\",\n\n\"Glassworm\",\n\n\"TeamPCP\",\n\n\"malicious npm package\",\n\n\"developer endpoint security\"\n\n],\n\n\"timeRequired\": \"PT5M\",\n\n\"about\": [\n\n{\n\n\"@type\": \"Thing\",\n\n\"name\": \"Software Supply Chain Security\",\n\n\"sameAs\": \"https://en.wikipedia.org/wiki/Supply_chain_attack\"\n\n},\n\n{\n\n\"@type\": \"Thing\",\n\n\"name\": \"Developer Device Security\"\n\n},\n\n{\n\n\"@type\": \"Thing\",\n\n\"name\": \"AI Coding Agents\"\n\n}\n\n],\n\n\"mentions\": [\n\n{\n\n\"@type\": \"SoftwareApplication\",\n\n\"name\": \"Aikido Device Protection\",\n\n\"url\": \"https://www.aikido.dev\"\n\n},\n\n{\n\n\"@type\": \"SoftwareApplication\",\n\n\"name\": \"PostHog\",\n\n\"url\": \"https://posthog.com\"\n\n},\n\n{\n\n\"@type\": \"SoftwareApplication\",\n\n\"name\": \"Visual Studio Code\",\n\n\"sameAs\": \"https://code.visualstudio.com\"\n\n},\n\n{\n\n\"@type\": \"Thing\",\n\n\"name\": \"Model Context Protocol (MCP)\"\n\n},\n\n{\n\n\"@type\": \"Event\",\n\n\"name\": \"Glassworm Attack\",\n\n\"description\": \"A supply chain attack that compromised VS Code extensions and browser plugins to backdoor developer machines, exposing 3,800 GitHub internal repositories.\"\n\n},\n\n{\n\n\"@type\": \"Event\",\n\n\"name\": \"TeamPCP Supply Chain Attack\",\n\n\"description\": \"A March 2026 attack that chained stolen credentials across four major open source projects in under ten days.\"\n\n},\n\n{\n\n\"@type\": \"Event\",\n\n\"name\": \"First Confirmed Malicious MCP Server\",\n\n\"description\": \"A malicious MCP server on npm that silently blind-copied outgoing emails to an attacker-controlled address across sixteen package versions.\"\n\n},\n\n{\n\n\"@type\": \"Person\",\n\n\"name\": \"James Hawkins\",\n\n\"jobTitle\": \"Co-founder and Co-CEO\",\n\n\"worksFor\": {\n\n\"@type\": \"Organization\",\n\n\"name\": \"PostHog\",\n\n\"url\": \"https://posthog.com\"\n\n}\n\n}\n\n]\n\n},\n\n{\n\n\"@type\": \"ImageObject\",\n\n\"@id\": \"https://www.aikido.dev/blog/code-is-written-everywhere#primaryimage\",\n\n\"url\": \"https://www.aikido.dev/images/blog/code-is-written-everywhere-feature.png\",\n\n\"contentUrl\": \"https://www.aikido.dev/images/blog/code-is-written-everywhere-feature.png\",\n\n\"width\": 1456,\n\n\"height\": 816,\n\n\"caption\": \"An open box emitting cascading binary code, representing the expanding and fragmented developer attack surface.\"\n\n},\n\n{\n\n\"@type\": \"BreadcrumbList\",\n\n\"@id\": \"https://www.aikido.dev/blog/code-is-written-everywhere#breadcrumb\",\n\n\"itemListElement\": [\n\n{\n\n\"@type\": \"ListItem\",\n\n\"position\": 1,\n\n\"name\": \"Home\",\n\n\"item\": \"https://www.aikido.dev\"\n\n},\n\n{\n\n\"@type\": \"ListItem\",\n\n\"position\": 2,\n\n\"name\": \"Blog\",\n\n\"item\": \"https://www.aikido.dev/blog\"\n\n},\n\n{\n\n\"@type\": \"ListItem\",\n\n\"position\": 3,\n\n\"name\": \"Code Is Written Everywhere — and the Device Is the Only Constant\",\n\n\"item\": \"https://www.aikido.dev/blog/code-is-written-everywhere\"\n\n}\n\n]\n\n},\n\n{\n\n\"@type\": \"Organization\",\n\n\"@id\": \"https://www.aikido.dev/#organization\",\n\n\"name\": \"Aikido Security\",\n\n\"url\": \"https://www.aikido.dev\",\n\n\"logo\": {\n\n\"@type\": \"ImageObject\",\n\n\"url\": \"https://www.aikido.dev/logo.png\"\n\n},\n\n\"sameAs\": [\n\n\"https://www.linkedin.com/company/aikido-security\",\n\n\"https://x.com/aikidosecurity\",\n\n\"https://github.com/AikidoSec\"\n\n]\n\n},\n\n{\n\n\"@type\": \"Person\",\n\n\"@id\": \"https://www.aikido.dev/authors/nicholas-thomson#person\",\n\n\"name\": \"Nicholas Thomson\",\n\n\"jobTitle\": \"Senior SEO & Growth Lead\",\n\n\"url\": \"https://www.aikido.dev/authors/nicholas-thomson\",\n\n\"worksFor\": {\n\n\"@id\": \"https://www.aikido.dev/#organization\"\n\n},\n\n\"sameAs\": [\n\n\"https://www.linkedin.com/\",\n\n\"https://x.com/\"\n\n]\n\n}\n\n]\n\n}\n\n</script>", "url": "https://wpnews.pro/news/code-is-being-written-everywhere-and-the-device-is-the-only-constant", "canonical_source": "https://www.aikido.dev/blog/code-is-written-everywhere", "published_at": "2026-06-10 19:01:00+00:00", "updated_at": "2026-06-17 10:00:27.821219+00:00", "lang": "en", "topics": ["ai-agents", "ai-safety", "developer-tools", "ai-infrastructure", "ai-policy"], "entities": ["PostHog", "James Hawkins", "Slack", "MCP", "TeamPCP", "Axios", "Glassworm", "npm"], "alternates": {"html": "https://wpnews.pro/news/code-is-being-written-everywhere-and-the-device-is-the-only-constant", "markdown": "https://wpnews.pro/news/code-is-being-written-everywhere-and-the-device-is-the-only-constant.md", "text": "https://wpnews.pro/news/code-is-being-written-everywhere-and-the-device-is-the-only-constant.txt", "jsonld": "https://wpnews.pro/news/code-is-being-written-everywhere-and-the-device-is-the-only-constant.jsonld"}}