[
  {
    "slug": "four-locks-one-door",
    "date": "2026-05-30",
    "author": "ManageLM Team",
    "tags": ["security", "threat-detection"],
    "image": "blog5.webp",
    "title": "Four Locks on One Door: The Complete Infrastructure Security Stack",
    "summary": "Most security platforms give you one lock on the door. ManageLM gives you four: internal audits, daily CVE checks, external pentests, and live threat detection. All bundled into compliance-ready reports.",
    "content": "<p>Think about a front door you'd actually trust.</p><p>It probably has more than one lock. A <strong>deadbolt</strong> that won't pick. A <strong>chain</strong> for when you're home. A <strong>camera</strong> pointed at whoever's on the porch. A <strong>contact sensor</strong> wired into an alarm in case someone tries to force the frame.</p><p>Each lock solves a different problem. Each one fails in a different way. Stack them and breaking in stops being worth it. Take any one of them away and you've got a weekend project for the wrong kind of person.</p><p>Server security is the same job. The frustrating part is that almost every security product on the market sells you one lock and calls it done.</p><h3>Four questions, four jobs</h3><p>If you've ever had a server you cared about, four questions probably show up in your head at some point. They don't have the same answer, and they don't have the same fix.</p><ul><li><em>Is the box itself hardened?</em> SSH config, sudoers, file permissions, accounts that someone forgot to delete two jobs ago.</li><li><em>Am I running software with known holes?</em> CVEs land every day. The question isn't whether your distro has patched them. It's whether you've installed the patch.</li><li><em>What does my attack surface look like from outside?</em> Open ports, web apps with injection bugs, an admin panel that should have been behind a VPN six months ago.</li><li><em>Is something actually happening right now?</em> A web service spawning shells at 2 AM. A login from a country nobody on the team has ever been to. A user account suddenly running sudo for the first time in a year.</li></ul><p>Four problems. Four very different tools usually. ManageLM handles all four out of the same agent.</p><h3>Lock 1: internal security audit</h3><p>The deadbolt. The agent already lives on the server, so it can look at the server the way you'd look at it if you SSH'd in with a checklist and an afternoon to kill. 18 deterministic hardening checks across SSH config, firewall rules, TLS ciphers, certificate expiry, sudoers (including <code>/etc/sudoers.d</code> and NOPASSWD), SUID binaries, world-writable files, cron jobs, container exposure, failed logins, pending security updates, kernel hardening sysctls, and more.</p><p>Severity adapts to context. The same SSH misconfig is Critical on a public, internet-facing box and Low on an internal one. Findings come back with framework tags (CIS, PCI-DSS, SOC 2), an explanation, and a remediation that's one click to apply &mdash; validated before it runs, so you don't lock yourself out fixing a typo.</p><p>An external scanner can't see this stuff. The agent can, because the agent <em>is</em> on the box.</p><h3>Lock 2: daily CVE exposure</h3><p>The contact sensor on the frame. Every day the agent inventories what's actually installed. Packages, versions, kernel modules, language runtimes, what's inside your containers. Then it cross-references the public CVE feeds and your distro's advisories.</p><p>When a CVE drops on a Tuesday afternoon, you don't read about it in next quarter's audit. You see it that day, with the exact list of hosts that are affected and the package versions that need to move. The slow part of vuln management isn't finding CVEs. It's mapping them to your fleet. That part is done.</p><h3>Lock 3: pentest from the outside</h3><p>The neighbor who walks past your door every morning and tries the handle. ManageLM's pentest service points industry-standard tooling at whatever you expose to the public internet. Port scans, web app probes (SQLi, XSS, SSRF, open redirects), TLS settings, default admin credentials, exposed <code>.git</code> directories, the embarrassing stuff.</p><p>Lock 1 and Lock 2 tell you what could be wrong on paper. A pentest tells you what an attacker actually sees when they aim a scanner at your IP.</p><h3>Lock 4: live threat detection</h3><p>The camera with motion detection, and the bit most security stacks just don't have. ManageLM ships this as <a href=\"features/threats.html\">Threat Detection</a>. The agent watches what services and users are <em>doing</em>, not just how they're configured. Failed logins piling up on one account. A web process suddenly launching <code>/bin/sh</code>. The same user logging in from two countries in the same hour. Outbound traffic to addresses that show up on threat feeds. A privilege escalation that doesn't match any deploy window.</p><p>Because a local LLM sits next to the detection pipeline, alerts come out correlated and ranked. Real incident, write it up. Noise, drop it. When something is bad enough, the user behind it is bounced out of the portal until an admin says otherwise.</p><h3>Why nobody else bundles all four</h3><p>Walk the security market and you'll see specialists. A CSPM for config hygiene. A vuln scanner for CVEs. A pentest SaaS for external probing. A SIEM or XDR for runtime monitoring. Four vendors, four contracts, four dashboards that nobody has time to check more than one of.</p><p>And worse, four silos. The CVE scanner doesn't know that the vulnerable package is on a host the pentest tool can see from the internet. The SIEM doesn't know that the user logging in from a weird IP also has sudo on that exact host. Each tool sees a slice. None of them see the picture.</p><p>ManageLM runs all four from the same agent, on the same server, in the same UI, on the same plan. That plan is free for up to 10 agents, in case you were going to ask.</p><p>The interesting part isn't the bundling. It's the correlation. A CVE in a package that is <em>also</em> exposed to the internet <em>and</em> being probed right now is not three alerts in three tools. It's one incident, with the full chain, ready to act on.</p><h3>Compliance reports that auditors can actually use</h3><p>Every check, every CVE hit, every pentest finding, every threat alert lands in the same reporting pipeline. When the SOC 2, ISO 27001, PCI, HIPAA, or NIS2 auditor shows up, you export a signed, timestamped report that covers all four pillars at once. No screenshot scavenger hunt. No spreadsheet stitched together at midnight.</p><p>Compliance gets the paperwork. The auditor gets the evidence. You get your weekend.</p><h3>The math</h3><p>One lock stops the bored. Four locks stop the patient. The same math holds up for servers.</p><p>If your stack covers one of the four pillars, you're a quarter of the way there. Two, halfway. All four through separate vendors and you're paying four bills to maintain four blind spots between them.</p><p>One platform, four locks, every door covered. <a href=\"https://app.managelm.com/register\" target=\"_blank\" rel=\"noopener\">Sign up</a>, drop an agent on a server, and watch your security posture move from <em>I hope so</em> to <em>I know so</em>. It takes about ten minutes.</p><p>One lock isn't enough for your front door. Don't accept it for your servers.</p>"
  },
  {
    "slug": "fears-and-daily-life",
    "date": "2026-04-30",
    "author": "ManageLM Team",
    "tags": ["story", "ops", "security"],
    "image": "blog4.webp",
    "title": "I Was Scared To Let An AI Manage My Servers. I Use It Every Day Now.",
    "summary": "Five reasonable fears about letting an AI run commands on production, what actually happened, and how my daily admin life looks now. Includes one 4:12 AM page that ended in eleven minutes.",
    "content": "<p>I've run Linux servers for twenty years. I have a personal wiki of \"things that bricked prod once and we agreed never to talk about again.\" My <code>~/scripts/</code> folder has a <code>~/scripts/old/</code> folder, which has its own <code>~/scripts/old/old/</code>. So when someone said I should let an AI manage my servers, I laughed.</p><p>Then my pager went off at 4:12 AM and I stopped laughing.</p><h3>What I was afraid of</h3><p><strong>It hallucinates <code>rm -rf /</code> and I end up on r/sysadmin.</strong> LLMs make stuff up. They write commands that look right and aren't. The mental picture of one cheerfully wiping <code>$HOME</code> kept me out for months.</p><p><strong>My logs going to a third party.</strong> Server logs are full of things you don't want on someone else's GPU. Internal IPs, stack traces, the password somebody hard-coded in 2019. Piping all that into a cloud API made my legal-curious brain itch.</p><p><strong>Getting soft.</strong> Twenty years of being the guy who knows the right <code>awk</code> flag. If a chatbot does that for me, what am I?</p><p><strong>The bill.</strong> Every \"AI-powered\" tool I'd looked at was priced like I was running half of AWS.</p><p><strong>Setup hell.</strong> Other ChatOps tools want you to write playbooks, train classifiers, define intents. Three weeks of integration work for a bot that posts emojis.</p><h3>What actually happened</h3><p>I installed an agent on a staging box. Forty seconds. Opened Claude and typed:</p><p><em>what's eating disk on staging-01</em></p><p>It came back with the answer. <code>/var/log/journal/</code> at 14 GB. A Docker volume from a project we killed in February. An npm cache that had become a permanent resident. I didn't SSH anywhere. I went back to sleep.</p><h3>Daily life, after</h3><p><em>Why is this server slow.</em> Used to mean SSH, <code>top</code>, <code>iotop</code>, <code>dmesg</code>, syslog, <code>vmstat</code>, twenty minutes, runaway Python process from a botched deploy. Now I just ask.</p><p><em>Patching Tuesday.</em> \"Show me pending security updates across the fleet.\" Then \"apply on staging tonight, prod in the maintenance window, skip <code>db-prod-*</code> unless I confirm.\" The audit log writes itself.</p><p><em>Junior on-call.</em> Used to be two weeks of runbooks and Slack pastes. Now they ask Claude. If they ask for something destructive, the allowlist blocks it. They were useful on day three.</p><p><em>4:12 AM pages.</em> Phone, Claude app, \"what alerted on api-prod-02,\" \"restart the worker pool.\" Eleven minutes from page to back asleep. I timed it.</p><p><em>Weekly ops report.</em> \"Summarize ops activity for the last seven days, group by team member.\" Copy, paste, done. I take credit for the formatting.</p><h3>Going back to the fears</h3><p>The <code>rm -rf</code> thing isn't possible. The LLM doesn't run arbitrary commands. Every skill has an allowlist of exactly which commands are permitted, with which arguments. I spent week one trying to prompt-inject the agent into something stupid. It refused.</p><p>The privacy thing was a misread. The local LLM runs on my hardware via Ollama. Claude handles intent (\"user wants disk usage\"); the local model handles the actual server data. Logs and configs never leave the network.</p><p>The getting-soft thing was half right. I use <code>awk</code> less. I haven't forgotten how. When ManageLM is wrong, I drop into a terminal and fix it the old way.</p><p>The bill: free up to 10 agents. Everything included.</p><p>The setup: skills are pre-built. I plugged it in and it worked. That was the part I was most cynical about, and it's the part that landed hardest.</p><h3>Worth a look if</h3><p>You've ever lost a Saturday to something a Bash script should have handled. You've typed <code>journalctl</code> at 3 AM. You've felt your soul leave your body when an auditor said \"show me the logs.\"</p><p>ManageLM is free for up to 10 agents. <a href=\"https://app.managelm.com/register\" target=\"_blank\" rel=\"noopener\">Sign up</a>, install the <a href=\"https://www.managelm.com/plugins/claude.html\" target=\"_blank\" rel=\"noopener\">Claude extension</a>, and stop SSH-ing into things at 4 AM.</p>"
  },
  {
    "slug": "dgx-spark-origin-story",
    "date": "2026-04-03",
    "author": "ManageLM Team",
    "tags": ["story", "product", "architecture"],
    "image": "blog3.webp",
    "title": "How a DGX Spark Accidentally Became a Server Management Platform",
    "summary": "It started with an NVIDIA DGX Spark, a parade of open-source models, and one nagging question: what is this thing actually useful for? The answer turned into ManageLM, AI server management that keeps your data where it belongs.",
    "content": "<p>I got a DGX Spark.</p><p>If you're not familiar, it's NVIDIA's compact AI supercomputer, a Grace Blackwell chip, 128 GB of unified memory, and enough GPU horsepower to make your electricity bill flinch. It showed up in a box that was way too nice for hardware, and I did what any reasonable person would do: I immediately started throwing models at it.</p><h3>The Model Marathon</h3><p>First up: <strong>Nemotron Nano</strong>. NVIDIA's own small model, practically begging to run on their own hardware. It was fast, surprisingly capable, and made me feel like I was living in the future. Then I loaded <strong>Qwen 3.5</strong>, the base model, the Next variant, and the Coder variant. All three ran beautifully. Threw in a few more open-source models for good measure. Benchmarks looked great. Inference was snappy. I was having a blast.</p><p>For about two days.</p><h3>The \"Now What\" Moment</h3><p>Here's the thing about owning a personal AI supercomputer: after you've benchmarked every model on Hugging Face and generated your fifth haiku about Linux kernel panics, a question starts creeping in.</p><p><em>What is this thing actually useful for?</em></p><p>Don't get me wrong, it's a magnificent toy. But \"toy\" was the operative word. I had this incredible machine sitting on my desk, running circles around cloud inference latency, and I was using it to… summarize articles? Write commit messages? The Spark deserved better.</p><h3>The Eureka Moment: What If the Models Talked to Each Other?</h3><p>The idea hit me while I was SSH-ing into a server for the nine-hundredth time that week, running the same diagnostic commands I always run, grepping through the same logs I always grep through.</p><p>What if I combined a <strong>local LLM</strong>, running right here on the Spark, fast and private, with a <strong>higher-capability cloud model</strong> like Claude? And what if the interface between them was something structured and secure, not just raw API calls?</p><p>That \"something\" turned out to be <strong>MCP</strong>, Anthropic's Model Context Protocol. MCP gives AI models a standardized way to call external tools with proper authentication, structured parameters, and full audit trails. It's not a chat API. It's a <em>tool protocol</em>. And it was exactly the missing piece.</p><p>The architecture practically designed itself: Claude handles the conversation and intent, understanding what you <em>want</em> to do. The local LLM on your infrastructure handles the execution, figuring out the exact commands to run. MCP sits in the middle, making sure everything is authenticated, authorized, and logged.</p><h3>Server Management Doesn't Need GPT-49+</h3><p>Here's the insight that made the whole thing click: <strong>you don't need a frontier model to manage a server.</strong></p><p>Think about it. What are the actual tasks? Check disk usage. Restart a service. Update packages. Read a log file. Configure a firewall rule. These aren't PhD-level reasoning problems. A capable 8B parameter model running locally can handle them just fine, often faster than a round-trip to a cloud API.</p><p>The <em>hard</em> part of AI-powered server management was never the intelligence. It was the <strong>plumbing</strong>: authentication, authorization, command validation, audit logging, secure transport. The boring stuff that keeps production systems from catching fire.</p><p>A local model gives you something no cloud API ever will: <strong>your data stays home.</strong> Passwords in config files, application logs with customer data, internal hostnames and network topology, none of it leaves your infrastructure. The LLM runs on <em>your</em> hardware, processes <em>your</em> data, and forgets everything the moment the task is done.</p><h3>Privacy Isn't a Feature. It's the Architecture.</h3><p>Most AI tools treat privacy as a checkbox. \"We don't store your data\" (but it traverses our servers). \"We anonymize your prompts\" (but we still see them). \"Our model doesn't train on your inputs\" (but our logging pipeline does).</p><p>With a local LLM, there is no trust problem to engineer around. The model runs in your datacenter. The data never leaves. End of story. No privacy policy needed, just physics.</p><p>For anyone managing servers with sensitive data, which is everyone, whether they realize it or not, this changes the equation entirely. You get the power of AI-assisted operations without the compliance headache of sending server internals to a third party.</p><h3>Add Security, Shake Well</h3><p>A local LLM with network access and no guardrails is arguably <em>worse</em> than no AI at all. LLMs hallucinate. They confidently generate commands that look right but aren't. Left unsupervised, a helpful AI assistant is one hallucinated <code>rm -rf /</code> away from a very bad day.</p><p>So we built the security stack:</p><ul><li><strong>Command allowlisting</strong>, every skill defines exactly which commands can run. The LLM proposes; the allowlist disposes.</li><li><strong>Ed25519 signed messages</strong>, every instruction from the portal to the agent is cryptographically signed. Tampered messages are rejected before they're even parsed.</li><li><strong>Zero inbound ports</strong>, agents connect outward via WebSocket. Your servers never expose a listening port to the internet.</li><li><strong>RBAC and OAuth 2.0</strong>, team members get scoped access. The intern can check logs; only senior ops can touch the firewall.</li><li><strong>Kernel sandbox</strong>, optional Landlock + seccomp confinement, because defense-in-depth isn't paranoia, it's engineering.</li></ul><p>Each layer is simple. Together, they form a security model where the AI is <strong>powerful but fundamentally untrusted</strong>, it can suggest anything, but only pre-approved commands actually execute.</p><h3>And That's ManageLM</h3><p>A DGX Spark, a question, and a few months of building later, ManageLM exists. It lets you manage your entire Linux and Windows infrastructure in natural language, with a local LLM that keeps your data private, a cloud model that understands your intent, and a security stack that makes sure nothing goes sideways.</p><p>Is it the most powerful server management tool on the planet? Well, it manages servers using AI, it doesn't leak your data, it cryptographically signs every instruction, and it sandboxes execution at the kernel level. If something more powerful exists, I haven't found it. And I've been looking.</p><p>The best part? <strong>You don't need a DGX Spark to use it.</strong> Any machine that can run Ollama works. The Spark was where the idea was born, but ManageLM runs happily on far more modest hardware. A small VM with 8 GB of RAM and a decent CPU will do just fine.</p><p>ManageLM is <strong>free for up to 10 agents</strong>, every feature, no limits, no credit card. <a href=\"https://app.managelm.com/register\" target=\"_blank\" rel=\"noopener\">Sign up</a>, install the <a href=\"https://www.managelm.com/plugins/claude.html\" target=\"_blank\" rel=\"noopener\">Claude extension</a>, and start talking to your servers like a human being instead of a shell script.</p><p>Your infrastructure will thank you. Probably.</p>"
  },
  {
    "slug": "mcp-server-management",
    "date": "2026-03-31",
    "author": "ManageLM Team",
    "tags": ["mcp", "architecture", "security"],
    "image": "blog2.webp",
    "title": "Why MCP Changes Everything for Server Management",
    "summary": "The Model Context Protocol (MCP) by Anthropic gives AI tools a structured, authenticated way to interact with external systems. For server management, this is transformative — it replaces fragile scripts and manual SSH sessions with secure, auditable, natural-language operations. Here's how ManageLM leverages MCP to make infrastructure management safer and more accessible.",
    "content": "<p>If you manage servers, you know the drill: SSH into a box, run a sequence of commands you half-remember, pipe the output through grep, hope nothing breaks. Or you maintain a growing collection of Ansible playbooks and Bash scripts that nobody else on the team fully understands.</p><p>There's a better way — and it starts with <strong>MCP</strong>.</p><h3>What Is MCP?</h3><p>The <strong>Model Context Protocol</strong> (MCP) is an open standard created by Anthropic that defines how AI assistants like Claude interact with external tools and data sources. Instead of the AI generating raw shell commands and hoping for the best, MCP provides a structured interface: the AI sends well-defined requests to an MCP server, which validates them, routes them, and returns structured responses.</p><p>Think of MCP as the difference between handing someone a keyboard to your server and giving them a controlled API. The AI gets the <em>capabilities</em> it needs without getting <em>unrestricted access</em>.</p><h3>MCP + Server Management: A Natural Fit</h3><p>Server management is one of the most compelling use cases for MCP, because it combines two things that rarely go together: <strong>the need for flexibility</strong> (every server is different, every situation is unique) and <strong>the need for strict security</strong> (one wrong command can take down production).</p><p>MCP solves this tension elegantly:</p><ul><li><strong>Structured tool definitions</strong> — Each ManageLM skill (packages, services, firewall, databases, etc.) is exposed as a set of MCP tools with defined parameters. The AI can't invent operations that don't exist.</li><li><strong>Authentication and authorization</strong> — Every MCP request carries the user's identity through OAuth 2.0. The portal checks RBAC permissions before dispatching anything. Different team members can have different access levels.</li><li><strong>Auditability</strong> — Every MCP call is logged with full context: who requested it, what was executed, what changed. This is built into the protocol flow, not bolted on after the fact.</li><li><strong>Multi-server targeting</strong> — MCP's structured request format makes it natural to target operations at specific servers, groups, or entire fleets. \"Update packages on all staging servers\" becomes a single MCP call that fans out to multiple agents.</li></ul><h3>How ManageLM Uses MCP</h3><p>ManageLM is built as an MCP server that Claude connects to directly. When you tell Claude <em>\"check disk usage on web-prod-01\"</em>, here's what happens:</p><ol><li><strong>Claude parses your intent</strong> and maps it to the appropriate ManageLM MCP tool (<code>system</code> skill, <code>disk_usage</code> operation).</li><li><strong>The MCP request hits the ManageLM portal</strong>, which authenticates your session (OAuth 2.0), verifies you have permission to access web-prod-01, and validates the requested skill.</li><li><strong>The portal dispatches the task</strong> over a secure WebSocket to the agent running on web-prod-01.</li><li><strong>The agent uses a local LLM</strong> (Ollama, running in your infrastructure) to interpret the task and generate the exact shell commands needed.</li><li><strong>Every generated command is validated</strong> against the skill's allowlist before execution. If the LLM hallucinates a dangerous command, it's blocked in code.</li><li><strong>Results flow back</strong> through the same chain: agent → portal → Claude → you, in natural language.</li></ol><p>The entire flow is secured at every layer. The AI is powerful but <em>untrusted by design</em> — it proposes commands, but the allowlist enforces what actually runs.</p><h3>Why Not Just Give the AI SSH Access?</h3><p>You could give an AI tool an SSH key and let it run whatever it wants. Some products do this. It's a terrible idea, and here's why:</p><ul><li><strong>LLMs hallucinate.</strong> A model might generate <code>rm -rf /</code> when it meant <code>rm -rf /tmp/cache</code>. Without validation, that command runs.</li><li><strong>Prompt injection is real.</strong> If the AI processes untrusted input (log files, user data), an attacker could manipulate the AI into running malicious commands.</li><li><strong>No audit granularity.</strong> SSH logs show that a key connected and ran commands, but don't capture the intent, the user who initiated it, or the AI reasoning behind it.</li><li><strong>No permission scoping.</strong> SSH gives all-or-nothing access. MCP through ManageLM gives skill-scoped, role-based access with per-command validation.</li></ul><p>MCP's structured protocol makes it possible to build AI-powered server management that's actually <em>more secure</em> than traditional approaches, not less.</p><h3>Beyond Claude: MCP as an Open Standard</h3><p>Because MCP is an open protocol, ManageLM isn't locked to a single AI provider. Today it works with Claude (MCP's native home), and the same architecture extends to other interfaces — ChatGPT via a GPT plugin, VS Code via a Copilot extension, Slack for alerts and approvals, and n8n for automation pipelines. The MCP server is the single source of truth for authentication, authorization, and audit, regardless of which AI or interface triggers the operation.</p><h3>Getting Started</h3><p>ManageLM is <strong>free for up to 10 agents</strong> with every feature included. Install the <a href=\"https://www.managelm.com/plugins/claude.html\" target=\"_blank\">Claude MCP extension</a>, connect your servers, and start managing your infrastructure in natural language — with security enforced at every layer.</p><p>The future of server management isn't more YAML files or longer Bash scripts. It's a conversation with an AI that actually understands your intent, scoped by security policies that actually enforce your rules. That's what MCP makes possible, and that's what ManageLM delivers.</p>"
  },
  {
    "slug": "introducing-managelm",
    "date": "2026-03-25",
    "author": "ManageLM Team",
    "tags": ["announcement", "product"],
    "image": "blog1.webp",
    "title": "Introducing ManageLM: AI-Powered Server Management",
    "summary": "Meet ManageLM — the platform that lets you manage your entire Linux and Windows infrastructure using natural language. Built on Claude's MCP protocol with local LLM execution, command allowlisting, and zero inbound ports.",
    "content": "<p>We're excited to introduce <strong>ManageLM</strong>, a new way to manage your servers. Instead of writing scripts, memorizing commands, or navigating complex dashboards, you simply tell an AI what you need — and it gets done.</p><h3>What is ManageLM?</h3><p>ManageLM is an AI-powered server management platform. It connects Claude (via the Model Context Protocol) to lightweight agents running on your Linux and Windows servers. You describe tasks in plain English — <em>\"restart nginx on all staging servers\"</em>, <em>\"check disk usage\"</em>, <em>\"update packages\"</em> — and ManageLM handles the rest.</p><p>But unlike generic AI tools, ManageLM was built with security as the architecture, not an afterthought. Every command generated by the AI is validated against an explicit allowlist before execution. The AI is untrusted by design.</p><h3>How It Works</h3><p>The platform has three layers:</p><ul><li><strong>Claude + MCP</strong> — You talk to Claude in natural language. Claude sends structured requests to the ManageLM portal via MCP.</li><li><strong>Portal</strong> — Authenticates your identity, checks RBAC permissions, validates the target agent, and dispatches the task over a secure WebSocket channel.</li><li><strong>Agent</strong> — A lightweight process on your server that uses a local LLM (Ollama) to interpret the task, generate commands, validate each one against the skill's allowlist, and execute. Your data never leaves your network.</li></ul><h3>Security First</h3><p>ManageLM was designed for teams that take security seriously:</p><ul><li><strong>Command allowlisting</strong> — Every skill defines exactly which commands are permitted. The AI cannot run anything outside this list.</li><li><strong>Local LLM execution</strong> — Task interpretation runs on your infrastructure via Ollama. Passwords, configs, and logs never leave your network.</li><li><strong>Zero inbound ports</strong> — Agents connect outward via WebSocket. Your servers never expose a port.</li><li><strong>Ed25519 signed messages</strong> — Every portal-to-agent message is cryptographically signed. Tampered messages are rejected.</li><li><strong>Kernel sandbox</strong> — Optional Landlock + seccomp confinement for defense-in-depth.</li></ul><h3>Get Started</h3><p>ManageLM is <strong>100% free</strong> for up to 10 agents — every feature included, no credit card required. You can use our managed cloud at <a href=\"https://app.managelm.com/register\" target=\"_blank\">app.managelm.com</a>, or self-host with Docker for full data sovereignty.</p><p>We can't wait to see what you build with it.</p>"
  }
]
