업데이트로 돌아가기
New releaseSep 3, 2026

nono v0.75.0

보안 멀티플렉스 실행 경로 for 에이전트 - 제로 트러스트, 제로 설정, 제로 지연 시간.

공유
nono logo

Sigstore를 만든 팀이 개발했습니다
PyPI, npm, brew, Maven Central에서 사용하는 안전한 소프트웨어 증명 표준

License CI Status OpenSSF Best Practices Documentation

Join Discord We're hiring agent-sign GitHub Action


[!NOTE] 1.0 릴리스를 앞두고 API가 안정화되고 있습니다. 필요한 경우 API 변경이 여전히 발생할 수 있지만, 최소한으로 유지될 것입니다.

[!IMPORTANT] 조직 마이그레이션: 공식 nono 레지스트리 네임스페이스가 always-further에서 nolabs-ai로 이동했습니다. 스크립트, 프로필, CI에 있는 모든 참조를 업데이트하세요. 이전 네임스페이스에 이미 설치된 팩이 있다면, 새 네임스페이스에서 가져오기 전에 먼저 제거하세요:

nono remove always-further/claude
nono pull nolabs-ai/claude

이전 네임스페이스는 폐기될 예정입니다 — 지금 마이그레이션하세요.

AI 에이전트를 제로 레이턴시 샌드박스에서 몇 초 만에, 제로 설정으로 실행하세요 — Claude Code, Codex, Pi, CoPilot, Hermes, OpenCode, OpenClaw 등 — nono는 데몬, 컨테이너, VM, 디스크 공간 사용 없이 몇 초 만에 실행할 수 있게 해줍니다. 기본적으로 nono는 최소 권한 샌드박스를 적용하며 macOS, Linux, Windows(WSL2)를 지원합니다.

여기서부터 설정을 포크하고, 조정하고, 테마를 바꾸고, 자신만의 것으로 만들어 팀이나 커뮤니티에 nono 레지스트리를 통해 공유하세요.

규모 있게 또는 팀 내에서 운영하고 실행하고 싶으신가요? 세계에서 가장 큰 기술 기업들의 엔지니어들이 nono를 워크플로우의 일부로 또는 프로덕션에서 AI 에이전트를 실행하는 데 사용하고 있습니다.

"Datadog 엔지니어들은 에이전트가 빠르게 움직이길 원하며, 그 과정에서 자격 증명과 프로덕션 시스템이 안전하게 보호되길 원합니다. nono는 세밀한 명령별 정책과 기존의 복잡한 실제 툴체인에 맞는 정교한 자격 증명 관리를 모두 제공하는 유일한 샌드박스입니다." James Carnegie -- Datadog 스태프 보안 엔지니어

"보안은 Okta에서 우리가 만드는 모든 것에 내재되어 있습니다. nono는 AI 에이전트의 실행을 고도로 안전하고 정책으로 제어되는 샌드박스에 격리함으로써 AI 에이전트로 혁신할 수 있는 자신감을 줍니다. 개발자 속도를 희생하지 않으면서 자격 증명이 잠기고 보호되도록 보장합니다" Leonardo Zanivan, Okta 프린시펄 엔지니어

많은 이들이 따라했습니다 — nono는 제로 레이턴시, 제로 설정 에이전트 샌드박스를 개척했으며, 에이전트 샌드박싱 분야에서 계속 혁신하고 앞장서고 있습니다.


빠른 시작

curl

curl -fsSL https://nono.sh/install.sh | sh

macOS / Linux (Homebrew)

brew install nono

Nix

이 프로젝트는 두 가지 출력을 제공하는 Nix flake를 제공합니다:

  • #default (소스에서) — buildRustPackage를 사용하여 소스에서 빌드합니다 (첫 실행 시 크레이트와 그 의존성을 컴파일합니다)
  • #prebuilt — GitHub Releases에서 공식 릴리스 바이너리를 가져옵니다 (빠르고, 컴파일 없음)
# 설치 없이 실행 (소스에서)
nix run github:nolabs-ai/nono

# 미리 빌드된 바이너리 실행 (컴파일 없음)
nix run github:nolabs-ai/nono#prebuilt

# 프로필에 설치
nix profile add github:nolabs-ai/nono

# 최신 릴리스에 고정
nix run "github:nolabs-ai/nono?ref=$(curl -fsSL https://api.github.com/repos/nolabs-ai/nono/releases/latest | jq -r .tag_name)"

기타 플랫폼 — Debian/Ubuntu, Fedora, Arch, RHEL, openSUSE, WSL2: 설치 지침 보기.

실행해 보세요!

레지스트리에서 에이전트를 검색한 다음 실행하세요:

$ nono search opencode
nolabs-ai/opencode	-	Official Opencode Plugin

$ nono run --profile nolabs-ai/opencode -- opencode

그게 전부입니다. 이제 opencode는 현재 디렉터리에 대한 읽기/쓰기 액세스 권한만 가지고 실행되며 그 외에는 아무것도 없습니다 — SSH 키, 클라우드 자격 증명, 나머지 디스크는 그것에게 보이지 않습니다.

모든 인기 에이전트의 프로필은 registry.nono.sh에 있으며, 안전하게 보호되고 바로 가져올 수 있습니다. 각 프로필은 올바른 파일 시스템 범위, 네트워크 허용 목록, 훅, 스킬 등을 번들로 제공합니다.

자신만의 것으로 만드세요!

기본값으로는 부족하신가요? 프로필을 스캐폴딩하고 조정하세요 — 이미 알고 있는 동일한 명령입니다:

nono profile init opencode --extends nolabs-ai/opencode
nono run --profile opencode -- opencode

nono profile init은 지정된 기본 프로필을 상속하는, 확장되고 편집 가능한 프로필 파일을 에이전트용으로 내보냅니다. 이 프로필은 조합 가능한 JSON이므로, 팀과 공유하거나 커뮤니티에 게시하기 전에 정확한 파일 시스템, 네트워크, 자격 증명, 도구 규칙을 검토할 수 있습니다.

에이전트 개발자이고 자신만의 에이전트 패키지를 게시하고 싶으신가요? 여러분을 환영하고 여러분의 작업을 홍보하고 싶습니다! 문서 보기.

에이전트가 호출하는 도구를 샌드박싱하세요

nono는 "에이전트를 샌드박스에 넣는 것"에서 멈추지 않습니다. 에이전트는 실제 작업을 도구에 위임합니다: git, gh, curl, kubectl, 패키지 관리자, 빌드 스크립트, MCP 클라이언트/서버, 그리고 PATH에 있는 그 밖의 모든 것. 이러한 도구들은 종종 비밀, 네트워크 액세스, 부작용이 나타나는 곳입니다. 대부분의 샌드박스는 에이전트에게 비밀이 전체 에이전트와 모든 도구에 보편적으로 사용 가능한 포괄적 정책을 부여하지만, nono는 다릅니다:

nono는 위임된 도구를 에이전트의 통제 밖에 있는 자체 격리된 명령 샌드박스에 넣을 수 있습니다. 에이전트는 세션 샌드박스를 받습니다; 제어된 도구를 호출하면 nono의 브로커가 해당 도구를 자체 파일 시스템 정책, 네트워크 정책, 자격 증명을 가진 명령 정책 아래에서 실행합니다. 명령 샌드박스는 명령 샌드박스 정책이 그렇게 명시하지 않는 한 세션 샌드박스의 광범위한 --allow 권한, CWD 액세스, 원시 자격 증명 경로, 네트워크 액세스를 상속하지 않습니다.

즉, 프로필은 다음과 같은 규칙을 표현할 수 있습니다:

  • 에이전트는 git을 호출할 수 있지만, git은 저장소, 신뢰할 수 있는 Git 설정 파일, Git 객체 저장소만 받습니다
  • 에이전트는 gh를 호출할 수 있지만, gh는 nono의 자격 증명 프록시를 통해서만 GitHub 토큰을 받습니다
  • 그 토큰은 L7 필터링을 통해 선택된 GitHub API 메서드와 경로에 대해서만 사용될 수 있습니다
  • git은 체인된 정책 아래에서 ssh를 호출할 수 있지만, 에이전트로부터의 직접 ssh는 계속 거부됩니다

정책은 프롬프트가 아니라 프로필에 있습니다. 에이전트는 도구를 요청할 수 있지만, 세션 내부에서 그 도구의 샌드박스를 넓히거나, 새 키를 발급하거나, 엔드포인트 정책을 우회할 수 없습니다.

{
  "command_policies": {
    "credentials": {
      "github-api": {
        "type": "proxy",
        "upstream": "https://api.github.com",
        "credential_key": "keyring://gh:github.com/example?decode=go-keyring",
        "env_var": "GH_TOKEN",
        "inject_header": "Authorization",
        "credential_format": "Bearer {}"
      }
    },
    "commands": {
      "gh": {
        "from": {
          "session": {
            "sandbox": {
              "fs_read": ["."],
              "credentials": [
                {
                  "name": "github-api",
                  "endpoint_policy": {
                    "default": "deny",
                    "allow": [
                      { "method": "GET", "path": "/repos/nolabs-ai/nono/issues/**" }
                    ]
                  }
                }
              ]
            },
            "invocation_policy": {
              "default": "deny",
              "allow": [
                { "argv": { "prefix": ["issue", "list"] } },
                { "argv": { "prefix": ["issue", "view"] } }
              ]
            }
          }
        }
      }
    }
  }
}

자세한 내용은 샌드박싱된 도구 실행에서 읽어보세요.

깊이 파고들 준비가 되셨나요?

문서로 가서 nono의 풍부한 조합 가능한 정책 시스템, 자격 증명 주입, L7 필터링, 공급망 보안, 롤백, 멀티플렉싱, 감사 등을 알아보세요.

라이브러리 지원

nono는 Rust, Python, TypeScript, Go용 FFI 바인딩을 제공합니다.

Python, TypeScript, Go 바인딩으로도 사용할 수 있습니다.

기여

AI 도구를 사용하여 기여하는 것을 권장합니다. 그러나 제출하기 전에 AI가 생성한 코드를 반드시 이해하고 주의 깊게 검토해야 합니다. 보안이 가장 중요합니다. 변경 사항이 어떻게 작동하는지 이해하지 못한다면, 먼저 Discord에서 질문하세요.

보안

보안 취약점을 발견한 경우, 공개 이슈를 열지 마세요. 보안 정책의 절차를 따르세요.

라이선스

Apache-2.0

카테고리