메뉴
HN
Hacker News 15일 전

sx 2.0: 드롭박스 폴더로 팀과 AI 스킬 공유하기

IMP
7/10
핵심 요약

sx 2.0은 개발자뿐만 아니라 비개발자(마케팅, 법무, 영업 등)도 드롭박스 등의 공유 폴더를 통해 AI 스킬과 프롬프트를 쉽게 공유할 수 있도록 돕는 네이티브 데스크톱 앱입니다. 공유 폴더에 마크다운 파일을 넣기만 하면 앱이 이를 감지해 각 팀원이 사용하는 AI 클라이언트(Claude Code, Cursor 등)에 맞게 자동 번역 및 설치를 수행하는 것이 핵심입니다. 기존 CLI 환경의 복잡함 없이 누구나 팀 단위로 AI 활용 역량을 쉽게 공유하고 동기화할 수 있다는 점에서 실무적으로 중요합니다.

번역된 본문

sx 2.0이 출시되었습니다. 이는 Mac, Windows, Linux를 위한 네이티브 앱으로, git이나 터미널 없이 누구나 팀과 AI 스킬을 공유할 수 있게 해줍니다. 몇 달 전 저는 AI 도구 생태계에 npm과 같은 빈 공간이 있다고 적었습니다. 가장 AI를 잘 활용하는 사용자들은 자신들의 생산성을 극대화해주는 스킬, MCP 설정, 명령어들을 쌓아가지만, 이를 배포할 깔끔한 방법이 없어 지식이 개인의 컴퓨터에 갇혀 있었습니다. 우리는 이 공백을 채우기 위해 AI 자산을 위한 오픈 소스 패키지 관리자인 sx를 만들었습니다. 그리고 효과가 있었습니다. 개발자들은 이를 사용해 git 저장소에 스킬의 버전을 관리하고, 록 파일(lock file)과 결정론적 설치를 통해 Claude Code, Cursor, Copilot, Codex, Gemini, Cline, Kiro 등에 설치했습니다.

하지만 저는 예견했어야 할 실수를 저질렀습니다. Atlassian이 두 번이나 하는 것을 지켜봤기 때문입니다. 저는 공유 계층을 개발자를 위해 구축하고, 다른 모든 사람들도 결국 터미널(명령 줄)로 올 것이라고 가정했습니다. 하지만 그러지 않을 것입니다. 올해 진행한 약 60회의 발견 인터뷰에서, 스킬을 가장 잘 활용하는 사람들은 점점 마케팅, 법무, 영업, 운영 부서에 속해 있었습니다. 그들은 훌륭한 스킬을 작성합니다. 하지만 그들에게는 git도, 터미널도 없으며, 그런 것을 배우고 싶은 관심도 없습니다. 마케팅 팀에게 sx init --type git을 입력하라고 하는 것은 스킬을 공유하지 말라는 것과 같습니다.

sx 2.0이 이 문제를 해결합니다. 이것은 진정한 데스크톱 앱이며, 의존하는 배포 모델은 모든 팀이 이미 가지고 있는 '공유 폴더'입니다. 공유된 Dropbox 폴더가 백엔드의 전부입니다.

비기술 팀을 위한 워크플로우는 다음과 같습니다. 앱을 열고, 라이브러리를 Dropbox, Google Drive, OneDrive 또는 iCloud의 폴더로 지정한 뒤, 스킬을 드래그 앤 드롭합니다. 마크다운을 넣으면 스킬이 나옵니다. 팀원들이 앱을 동일한 폴더로 가리키면, 당신이 게시한 모든 것이 그들에게 보여집니다. 서버도, 계정도 없습니다. 회사가 이미 돈을 내고 있는 파일 동기화 제품이 복제를 담당합니다.

이것이 작동하는 이유는 2.0의 또 다른 큰 변화인 '볼트 포맷 v2(vault format v2)' 덕분입니다. 이제 모든 자산의 최신 버전은 assets/<name>/ 경로에 읽기 쉬운 일반 마크다운 형태로 디스크에 직접 저장됩니다. 버전 히스토리는 바로 옆의 .sx/versions/에 있습니다. 볼트를 grep할 수 있고, Obsidian에서 열어볼 수도 있습니다. .claude/skills를 해당 경로로 바로 지정하면 풀고 unpack할 것이 없기 때문에 그냥 작동합니다.

명백한 비교 대상은 바로 그 Obsidian 세팅, 즉 동기화된 폴더에 있는 마크다운 볼트이며, 오늘날 많은 팀이 그런 방식으로 스킬을 운영하고 있습니다. 차이점은 파일이 동기화된 '후'에 일어나는 일입니다. sx는 AI 클라이언트에 대해 기본적으로 이해하고 있습니다. 앱에서 '동기화(Sync)'를 누르면, 백그라운드에서 sx install이 실행됩니다. 이는 당신에게 설치되어야 할 항목을 확인하고, 각 자산을 모든 클라이언트의 포맷(Claude Code 스킬, Cursor 규칙, Copilot 명령 등)으로 변환하여, 당신의 컴퓨터에 올바른 위치에 기록합니다. 팀원이 공유 폴더에 스킬을 드롭하고, 당신이 버튼 한 번을 클릭하면, 그것이 당신의 AI 클라이언트에 바로 활성화되는 것입니다. 이 변환 계층은 마크다운으로 가득 찬 폴더가 당신을 위해 해줄 수 없는 부분입니다.

개발자들은 여기서 잃는 것이 없습니다. CLI는 여전히 동일한 Go 바이너리이며, git 및 skills.new 볼트 유형은 여전히 작동하고, 앱과 CLI는 동일한 볼트를 읽습니다. 2.0은 '컬렉션(collections)'을 추가하여 관련 스킬들을 그룹화하고 읽기 시점에 확인되는 하나의 단위로 설치하므로, 다음 달에 공유 컬렉션에 추가된 스킬은 아무도 아무것도 다시 실행하지 않아도 전체 팀에 자동으로 전달됩니다.

확장 기능(Extensions), 당신 팀의 문제는 내 로드맵이 아닙니다

이번 릴리스 라인의 후반부는 앱을 위한 확장(Extension) 시스템입니다. 저는 팀 도구에서 흥미로운 문제들은 항상 팀마다 특정되어 있으며, 모든 팀의 해결책을 코어에 쑤셔 넣는 것이 제품을 비대하고 느려지게 만드는 방법이라고 믿을 만큼 플러그인 생태계 주변에서 충분한 시간을 보냈습니다. (저는 공동 창립자인 돈(Don)이 그들의 것을 구축할 때 Atlassian에 있었습니다.)

따라서 이제 앱은 플러그인이 가능해졌습니다. 확장 기능은 매니페스트와 하나의 ES 모듈이 있는 폴더이며, 원하기 전까지는 빌드 단계가 필요 없습니다. 확장 기능은 대시보드 위젯, 게시 시간 확인, 편집기 명령 및 완전히 새로운 보기를 추가할 수 있습니다. 15개의 확장 기능이 포함된 마켓플레이스가 함께 제공되며, 사람들이 가장 먼저 찾는 것은...

원문 보기
원문 보기 (영어)
sx 2.0 is out: a native app for Mac, Windows, and Linux that lets anyone share AI skills with their team, no git and no terminal required. A few months ago I wrote that there’s an npm-shaped hole in the AI tooling stack . Your best AI users build up skills, MCP configs, and commands that multiply their output, and that knowledge stays trapped on their machines because there’s no clean way to distribute it. We built sx, an open source package manager for AI assets, to fill that hole. It worked. Developers use it to version skills in git vaults and install them across Claude Code, Cursor, Copilot, Codex, Gemini, Cline, and Kiro with a lock file and deterministic installs. Then I made a mistake I should have seen coming, because I’ve watched Atlassian make it twice. I built the sharing layer for developers and assumed everyone else would eventually meet us at the command line. They won’t. In the sixty or so discovery interviews we’ve run this year, the people getting the most out of skills are increasingly in marketing, legal, sales, and ops. They write great skills. They have no git, no terminal, and no interest in acquiring either. Asking a marketing team to sx init --type git is asking them to not share skills. sx 2.0 is the fix. It’s a real desktop app, and the distribution model it leans on is one every team already has: a shared folder. A shared Dropbox folder is the whole backend Here’s the workflow for a non-technical team. You open the app, point your library at a folder in Dropbox, Google Drive, OneDrive, or iCloud, and drag your skills in. Markdown goes in, skills come out. Your teammates point the app at the same folder and everything you publish shows up for them. There’s no server and no accounts. The file sync product your company already pays for does the replication. This works because of the other big change in 2.0: vault format v2. The latest version of every asset now lives directly on disk at assets/<name>/ as plain, readable markdown. Version history lives in .sx/versions/ next to it. You can grep the vault. You can open it in Obsidian. You can point .claude/skills straight at it and it just works, because there’s nothing to unpack. The obvious comparison is exactly that Obsidian setup, a markdown vault in a synced folder, and plenty of teams do run their skills that way today. The difference is what happens after the files sync. sx knows about the AI clients natively. When you hit Sync in the app, it runs an sx install in the background: it resolves what should be installed for you, translates each asset into every client’s format (Claude Code skills, Cursor rules, Copilot instructions, and so on), and writes it to the right place on your machine. Your teammate drops a skill in the shared folder, you click one button, and it’s live in your AI client. That translation layer is the part a folder full of markdown can’t do for you. Developers lose nothing here. The CLI is still the same Go binary, the git and skills.new vault types still work, and the app and CLI read the same vaults. 2.0 adds collections, which group related skills and install as a unit resolved at read time, so a skill added to a shared collection next month reaches the whole team automatically without anyone re-running anything. Extensions, because your team’s problems aren’t my roadmap The second half of this release line is an extension system for the app. I’ve spent enough years around plugin ecosystems (I was at Atlassian when my co-founder Don built theirs) to believe that the interesting problems in a team tool are always specific to the team, and that cramming every team’s answer into core is how products get bloated and slow. So the app is now pluggable. An extension is a folder with a manifest and one ES module, no build step until you want one. Extensions can add dashboard widgets, publish-time checks, editor commands, and whole new views. There’s a marketplace that ships with fifteen of them, and the ones people reach for first are the team-health ones: Collection Doctor scores a collection 0 to 100 and names the problems: thin descriptions, stale assets that should be retired, near-duplicate skills, oversized skills eating context. Each finding is one click from the asset it names. The adoption widgets show who on the team is actually using which skills, so you can see whether that skill someone spent a week on is earning its keep. Review Rota gives every asset a review due date that adapts to how heavily it’s used, and rotates reviews fairly across the team. Collection Export compiles a collection into a Claude Code, Codex, or Gemini plugin, or a plain zip, for sharing outside your vault. Two design decisions I’ll defend if you push on them in the comments. First, extensions are permission-gated: no filesystem, no Node, no network beyond hosts an extension explicitly declares, and enabling one shows you a plain-language list of exactly what it can touch, re-prompted whenever an update changes that list. Second, extensions are just sx assets. They publish, version, scope to teams, pin, and audit through the same pipeline as a skill, which means an extension update can never sneak past review the way it can in ecosystems where plugins auto-update out-of-band. Org admins can allowlist or disable third-party extensions vault-wide. The marketplace itself is just another sx vault, so pointing the app at your own repo gives you a private one. Where this is going The premise behind sx hasn’t changed since the first release: AI gains are trapped in individuals, and the missing layer is distribution. What changed is my picture of who needs it. The 2.0 line is a bet that the next wave of skill authors won’t be developers, and that meeting them means a native app, a folder they already share, and one sync button that hides a package manager underneath. Everything is Apache-2.0 and on GitHub: github.com/sleuth-io/sx . The app is in the release assets for all three platforms, and brew install sx still gets you the CLI. If you try the shared-folder setup with your team, I want to hear where it breaks. That’s the part of this release I’m least sure survives contact with real Dropbox latency.