Nightshift — autonomous agent orchestrator with Firecracker VMs
Project description
Nightshift
Autonomous agent orchestrator with Firecracker VM isolation.
Nightshift runs AI agents in isolated Firecracker microVMs on bare-metal infrastructure. Each agent gets its own VM with a dedicated filesystem, network, and resource limits — so agents can execute code, edit files, and make network calls without affecting the host or each other.
Installation
uv add nightshift-sdk
or
pip install nightshift-sdk
Quick Start
Define an agent with NightshiftApp and AgentConfig:
from nightshift import NightshiftApp, AgentConfig
from claude_agent_sdk import query, ClaudeAgentOptions
app = NightshiftApp()
@app.agent(
AgentConfig(
workspace="./my-project",
vcpu_count=2,
mem_size_mib=2048,
timeout_seconds=1800,
)
)
async def code_reviewer(prompt: str):
async for message in query(
prompt=prompt,
options=ClaudeAgentOptions(
cwd="/workspace",
allowed_tools=["Read", "Glob", "Grep"],
model="claude-sonnet-4-6",
),
):
yield message
Deploy to a Nightshift platform:
nightshift login --url https://api.nightshift.sh
nightshift deploy agent.py
nightshift run code_reviewer --prompt "Review the auth module for security issues"
Or run locally on a machine with Firecracker:
nightshift run code_reviewer agent.py --prompt "Review the auth module"
AgentConfig
| Parameter | Default | Description |
|---|---|---|
workspace |
"" |
Host directory to mount into the VM at /workspace |
vcpu_count |
2 |
Number of vCPUs allocated to the VM |
mem_size_mib |
2048 |
Memory in MiB allocated to the VM |
timeout_seconds |
1800 |
Maximum agent execution time (30 min default) |
forward_env |
[] |
Environment variables to forward from host |
env |
{} |
Static environment variables set in the VM |
Documentation
Full documentation at docs.nightshift.sh.
License
Apache 2.0 — see LICENSE.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file nightshift_sdk-0.3.1.tar.gz.
File metadata
- Download URL: nightshift_sdk-0.3.1.tar.gz
- Upload date:
- Size: 131.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.4 {"installer":{"name":"uv","version":"0.10.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0a65b0a43e271a384f5455ac45b1243febf604770de1c03fbc45ff05bad98fd0
|
|
| MD5 |
4944f635253f9c55ac2d4252f3142f3f
|
|
| BLAKE2b-256 |
8e9d036b746578e1c73eb47a3380e0160331889060128004c0f2e2c86c77647a
|
File details
Details for the file nightshift_sdk-0.3.1-py3-none-any.whl.
File metadata
- Download URL: nightshift_sdk-0.3.1-py3-none-any.whl
- Upload date:
- Size: 40.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.4 {"installer":{"name":"uv","version":"0.10.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0848728891db04a3bce169d50fc0e1cf781adfeae9fffea24dc1eb20ffdcbb8d
|
|
| MD5 |
9f2246aceb4599eecfc7174767b0a6b0
|
|
| BLAKE2b-256 |
2de4fe55d13ef44559fdfe0cff38a0c4f13869c242a2315537d90d91d76dde69
|