惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

S
SegmentFault 最新的问题
B
Blog
P
Proofpoint News Feed
美团技术团队
The GitHub Blog
The GitHub Blog
Y
Y Combinator Blog
A
About on SuperTechFans
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Vercel News
Vercel News
有赞技术团队
有赞技术团队
小众软件
小众软件
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Google DeepMind News
Google DeepMind News
Martin Fowler
Martin Fowler
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
aimingoo的专栏
aimingoo的专栏
H
Help Net Security
罗磊的独立博客
L
LangChain Blog
GbyAI
GbyAI
腾讯CDC
T
The Blog of Author Tim Ferriss
Microsoft Security Blog
Microsoft Security Blog

Hacker News: Show HN

PurrrrrFocus: Pomodoro Timer App - App Store Workflow Engine — Multi-Step Orchestration for Bun RapidPhoto: Pro Photo Editor App - App Store GitHub - think41/extrasuite: Token-efficient pull/edit/push workflow for AI agents editing Google Workspace files (Sheets, Docs, Slides, Forms) GitHub - DheerG/swarms: Achieve extraordinary results with claude code across a variety of tasks SPICE simulation → oscilloscope → verification with Claude Code — Lucas Gerads Show HN: VCoding – A 5 MB native Windows IDE with no dynamic dependencies Show HN: LLMs don't hallucinate because they're bad at math, it's the format GitHub - Agent-FM/agentfm-core: AgentFM is a peer-to-peer network that turns everyday computers into a decentralized AI supercomputer. AgentFM lets you run massive AI workloads directly across a global mesh of idle CPUs and GPUs. Show HN: Tracking Top US Science Olympiad Alumni over Last 25 Years GitHub - Potarix/agent-hub: One place to talk to all your agents Show HN: Runtime security for AI agents(injection,tool abuse, data exfiltration) GitHub - dubeyKartikay/lazyspotify: Terminal Spotify client for macOS and Linux GitHub - the-banana-tool/king-louie: Easy to use GUI Personal AI Assistant. Win/Linux/Mac. Show HN I made my vacation rental bookable by AI agents–no Airbnb, 0% commission GitHub - basteez/jsf-autoreload: maven plugin to enable hot reload on jsf projects uvm32/hosts/host-gdbstub at main · ringtailsoftware/uvm32 GitHub - labsai/EDDI: Config-driven engine that turns JSON into production-grade AI agents. Multi-agent orchestration, 12+ LLM providers, MCP/A2A protocols, RAG, persistent memory, and enterprise compliance (EU AI Act, GDPR, HIPAA). Built on Quarkus. GitHub - glitchnsec/fortyone-oss: AI Executive Assistant Platform GitHub - muxshed/shed: One stream in, or many. Every destination, simultaneously. No cloud middleman, no per-channel fees, no limits. GitHub - ocrbase-hq/ocrbase: 📄 PDF/IMG ->.MD/JSON Document OCR API for PaddleOCR and GLMOCR. Self-hostable. GitHub - impactjo/home-memory: MCP server that lets your AI assistant remember everything about your home. GitHub - Sets88/dbcls: DbCls is a powerful terminal database client that supports various databases GitHub - neptun2000/heor-agent-mcp GitHub - SeanFDZ/macmind: Single-layer transformer in HyperTalk for the classic Macintosh RollQuation: Math Puzzles - Apps on Google Play GitHub - dropbox/witchcraft Show HN: Agent-cache – Multi-tier LLM/tool/session caching for Valkey and Redis GitHub - opentalon/opentalon: OpenTalon is an open-source platform built from the ground up in Go as a robust alternative to OpenClaw LinkedIn™ 职位抓取工具 - Chrome 应用商店
Quickstart | Alien
Alien · 2026-04-16 · via Hacker News: Show HN

In this guide, you'll build an AI worker that runs inside a customer's cloud. Your AI does the reasoning in your cloud; the worker does the actions in theirs — reading files, writing results, querying data — without any of it leaving their network.

╔═ Your Cloud ════════════╗                ╔═ Customer's Cloud ═════════════════╗
║                         ║                ║                                    ║░
║   ┏━━━━━━━━━━━━━━━━┓    ║  tool calls    ║  ┏━━━━━━━━━━━━━━━━┓                ║░
║   ┃   AI Agent     ┃────╬─────────────▶──╬──┃   AI Worker    ┃                ║░
║   ┃  (reasoning)   ┃◀───╬────────────────╬──┃  (actions)     ┃                ║░
║   ┗━━━━━━━━━━━━━━━━┛    ║    results     ║  ┗━━━━━━┯━━━━━━━━━┛                ║░
║                         ║                ║         │                          ║░
╚═════════════════════════╝                ║    read files, query data,         ║░
                                           ║    write results, ...              ║░
                                           ║                                    ║░
                                           ╚════════════════════════════════════╝░
                                            ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
macOS / Linux
curl -fsSL https://alien.dev/install | sh
export PATH="$HOME/.local/bin:$PATH"
Windows
irm https://alien.dev/install.ps1 | iex
alien init

Select remote-worker-ts. This creates:

Let's look at the two important files.

alien.ts — what to deploy

This file describes the infrastructure each customer gets:

alien.ts
import * as alien from "@alienplatform/core"

// Private file storage for each customer
// Becomes S3 on AWS, Cloud Storage on GCP, Blob Storage on Azure
const files = new alien.Storage("files").build()

// Your code — deployed as a serverless worker in the customer's cloud
// Becomes Lambda on AWS, Cloud Run on GCP, Container Apps on Azure
const worker = new alien.Worker("worker")
  .code({ type: "source", src: "./", toolchain: { type: "typescript" } })
  .commandsEnabled(true)
  .ingress("private")  // No public URL — only reachable via commands
  .link(files)
  .permissions("execution")
  .build()

export default new alien.Stack("remote-worker")
  .add(files, "frozen")
  .add(worker, "live")
  .permissions({
    profiles: {
      execution: {
        "*": ["storage/data-read", "storage/data-write"],
      },
    },
  })
  .build()

src/index.ts — the code that runs in the customer's cloud

The template includes two tools. Here's the core pattern:

src/index.ts
import { command, storage } from "@alienplatform/sdk"

// Each tool runs inside the customer's cloud.
// Their files never leave their network — only the result comes back to you.

const tools = {
  "read-file": {
    description: "Read a file from the customer's private workspace",
    execute: async ({ path }) => {
      const store = await storage("files")
      const { data } = await store.get(path)
      return { content: new TextDecoder().decode(data) }
    },
  },
  "write-file": {
    description: "Write a file to the customer's private workspace",
    execute: async ({ path, content }) => {
      const store = await storage("files")
      await store.put(path, content)
      return { written: true, path }
    },
  },
}

command("execute-tool", async ({ tool, params }) => {
  const handler = tools[tool]
  if (!handler) throw new Error(`Unknown tool: ${tool}`)
  return handler.execute(params)
})

command("list-tools", async () =>
  Object.entries(tools).map(([name, t]) => ({
    name,
    description: t.description,
  }))
)

command() registers handlers, and storage() gives each command access to the customer's private storage.


Start local dev

alien dev
Local Development
Project remote-worker-ts
 
✔ Build local release
✔ Start local deployment
 
╭─ default ────────── ● running ───╮
│  worker      running (private)   │
│  files       local filesystem    │
╰──────────────────────────────────╯
 
alien dev release → push changes  alien dev deploy → new deployment  Ctrl+C → stop

Everything runs on your machine. Storage is on the local filesystem. Same APIs as production — no cloud credentials needed.

default is your first deployment — it simulates deploying into a customer's cloud. In production, this would be a real AWS account with a real S3 bucket. Right now, everything runs locally on your machine.

Send a command

Commands let your backend call workers on the worker without any inbound networking. No open ports, no VPN, no VPC peering — the customer's network stays completely closed.

In local dev, you target the default deployment. In production, the exact same command reaches a real customer deployment — from the CLI or from your code via the API.

Open a second terminal and list the tools the worker exposes:

alien dev commands invoke --deployment default --command list-tools
[
  { "name": "read-file", "description": "Read a file from the customer's private workspace" },
  { "name": "write-file", "description": "Write a file to the customer's private workspace" }
]

Write a file to the customer's storage:

alien dev commands invoke \
  --deployment default \
  --command execute-tool \
  --params '{"tool": "write-file", "params": {"path": "hello.txt", "content": "Hello!"}}'
{ "written": true, "path": "hello.txt" }

Read it back:

alien dev commands invoke \
  --deployment default \
  --command execute-tool \
  --params '{"tool": "read-file", "params": {"path": "hello.txt"}}'
{ "content": "Hello!" }

Simulate multiple customers

You have one customer. Let's add another. In production, each customer has their own AWS account with their own S3 bucket — completely separate from each other. Locally, Alien simulates this with isolated directories:

alien dev deploy --name acme-corp --platforms local

Back in the first terminal, both customers appear:

╭─ default ─────────────────────────── ● running ─╮
│  worker      running (private)                  │
│  files       local filesystem                   │
╰─────────────────────────────────────────────────╯
╭─ acme-corp ───────────────────────── ● running ─╮
│  worker      running (private)                  │
│  files       local filesystem                   │
╰─────────────────────────────────────────────────╯

The isolation is real even locally — files written by default are invisible to acme-corp, just like they would be in separate AWS accounts.

Push an update

Change your code — add a tool, fix a bug, anything. Then:

alien dev release

This creates a new local release and updates the tracked deployments to point at it. If you want to verify the new code path locally right away, restart alien dev after the release so the worker process reloads the new build.

Press Ctrl+C to stop.


You built a multi-tenant worker, tested it locally with zero cloud setup, simulated multiple customers with isolated data, and pushed a live update to all of them at once.

Ready to deploy it into a real AWS account?