Giting.
낮의 Giting

· AI 에이전트 · TypeScript · 모노레포 · 멀티플랫폼

openclaw 대표 이미지 파일 37,121개 · 텍스트 10,638,101줄
MAGAZINE VOL.1이 리포는 매거진 특집으로도 깊게 다뤘습니다 — 역사상 가장 빨리 자란 오픈소스를, 재봤다 →
분석 리포트실측 정보적용점원문 README

구조와 기능

openclaw는 npm으로 관리되는 TypeScript 중심 모노레포다. 텍스트 소스 기준 총 10,638,101줄, 37,121개 파일 규모이고, 그중 TypeScript가 30,181개 파일·8,979,577줄로 압도적 비중을 차지한다. 라이선스는 MIT다.

TypeScript 외 코드 구성을 보면 Swift 1,199개 파일·411,654줄, Kotlin 460개 파일·199,544줄이 뒤를 잇는다. 최대 파일이 apps/shared/OpenClawKit/Sources/OpenClawProtocol/GatewayModels.swift(26,676줄)라는 점, 그리고 mts 402개·mjs 377개 파일이 추가로 존재한다는 점을 함께 보면, TS 기반 코어/게이트웨이 위에 Swift(Apple 플랫폼)·Kotlin(Android) 네이티브 클라이언트가 공유 프로토콜 패키지(OpenClawKit)를 통해 붙는 구조로 읽힌다. css는 106개 파일·67,099줄로 별도 웹 화면(대시보드 등)이 존재함을 시사한다.

의존성은 npm dependencies 65개, devDependencies 63개다. CI 워크플로가 99개, 테스트 파일이 15,286개(전체 파일의 약 41%, 15,286/37,121)로, 코드베이스 규모 대비 테스트·CI 투자 비중이 낮지 않다. hasAgentDocs가 true로 확인되어, 에이전트 대상 문서(예: 저장소 루트의 에이전트 가이드류)가 별도로 존재한다.

하이라이트

가장 눈에 띄는 구조적 지점은 OpenClawProtocol/GatewayModels.swift 한 파일이 26,676줄이라는 것이다. 파일 경로에 Protocol, GatewayModels라는 이름이 그대로 들어 있는 걸 보면 TS 백엔드와 Swift/Kotlin 클라이언트가 주고받는 스키마를 한곳에 몰아 정의(혹은 생성)한 형태로 보인다. 크로스플랫폼 프로젝트에서 프로토콜 타입을 단일 거대 파일로 유지하는 선택 자체가 나쁜 건 아니지만, 리뷰·빌드 시간 측면에서 왜 그렇게 됐는지(수동 관리인지 코드젠 산출물인지)는 눈여겨볼 대목이다.

두 번째는 CI·테스트 투자 규모다. 워크플로 99개, 테스트 파일 15,286개는 전체 파일 37,121개의 약 41%에 해당한다. 모노레포 규모(37K 파일, 1,064만 줄)를 감안하면 테스트 인프라를 상당히 진지하게 다루고 있다는 신호로 해석할 수 있다.

세 번째는 관측된 개발 속도다. depth 1000 shallow clone으로 잡힌 커밋 1000개(하한값)가 2026-09-01부터 2026-09-03까지 사흘 범위에 몰려 있고, 저자 100명, 원격 태그 409개가 확인된다. 태그 409개는 릴리스 또는 버전 태깅이 상당히 빈번했음을 뜻하는데, 커밋 밀도와 함께 보면 매우 활발하거나 자동화된 워크플로가 커밋을 다수 생성하고 있을 가능성을 같이 봐야 한다.

주의점

라이선스는 MIT로 재사용에 제약이 크지 않다. 다만 이번 실측은 depth 1000 shallow clone이라 commitCount·authorCount가 하한값이라는 점을 감안해야 한다. 특히 관측 범위가 사흘(2026-09-01~2026-09-03)뿐이라 실제 저장소 연혁이나 장기 활동 패턴은 이 데이터만으로 판단할 수 없다.

상위 기여자 목록에 openclaw-mantis[bot]이 포함돼 있다. 봇 계정이 상위 기여자로 잡히는 저장소는 원본 커밋 수·저자 수를 그대로 "사람이 만든 변경량"으로 해석하면 과대평가될 수 있다. 이번 패스에서는 GitHub 메타데이터(스타 수, 배지, README 서술)를 외부 fetch로 대조하지 못했으므로, README의 주장과 실측치를 비교하는 절차는 다음 확인에서 보완이 필요하다.

검수 보강으로 확인한 외부 맥락: 검수 시점 GitHub 스타 388,681, 2.0(v2026.8.1) 릴리스에 기여자 933명·PR 16,000개 이상이 참여했다. 흥미로운 불일치도 있다 — 저장소 LICENSE 파일 헤더는 MIT 인데 GitHub 라이선스 분류는 NOASSERTION(인식 불가)이다. 표준 문구에 부가 조항이 붙어 있을 가능성이 있으니 도입 전 원문 확인이 필요하다. 이 리포는 매거진 창간호 특집에서 서사·쟁점·실행 실측까지 깊게 다룬다.

실측 정보

규모
파일 37,121개 · 텍스트 10,638,101줄
최다 언어
TypeScript 30,181파일 · 8,979,577줄
네이티브 코드
Swift 1,199파일·411,654줄, Kotlin 460파일·199,544줄
테스트
테스트 파일 15,286개 (전체 파일의 약 41%, 15,286/37,121)
최대 파일
apps/shared/OpenClawKit/Sources/OpenClawProtocol/GatewayModels.swift · 26,676줄
CI/의존성
워크플로 99개 · npm dependencies 65 + devDependencies 63
커밋 이력(shallow)
커밋 1000(하한) · 저자 100명 · 태그 409개 · 관측범위 2026-09-01~2026-09-03

적용점

  • P1 · 비용 낮음GatewayModels.swift 하나가 26,676줄이다. 여러 클라이언트(Swift, Kotlin)가 공유하는 프로토콜 타입을 한 파일에 몰아 생성하는 방식은 리뷰 부담을 키운다. 유사한 크로스플랫폼 스키마 코드젠을 설계한다면 파일 단위 분할 기준을 먼저 정해두는 편이 낫다.
  • P1 · 비용 낮음커밋·저자 수 같은 활동 지표를 볼 때 봇 계정이 상위 기여자에 있는지 먼저 확인하는 습관이 필요하다. openclaw-mantis[bot]처럼 자동 커밋 주체가 섞이면 순수 커밋 수 비교는 실제 개발 강도를 과대평가할 수 있다.
  • P2 · 비용 중간sh 파일이 239개, 5.7만 줄에 이른다. 빌드·설치 자동화를 셸에 얼마나 위임할지, npm 스크립트와 역할을 어떻게 나눌지는 모노레포 초기 설계에서 정해두지 않으면 이후 두 체계가 뒤섞이기 쉽다.
◇ 관망

규모 자체는 작지 않다. 37,121개 파일, 1,064만 줄, CI 워크플로 99개, 테스트 파일 15,286개는 도구 하나가 갖추기엔 상당한 투자다. 다만 이번 실측은 depth 1000의 shallow clone이라 commitCount와 authorCount는 하한값이고, 관측된 커밋 범위가 2026-09-01부터 2026-09-03까지 사흘뿐이다. 즉 1000개 커밋이 사흘 안에 몰려 있다는 뜻이고, 상위 기여자 목록에 openclaw-mantis[bot]이 올라 있어 그 커밋 중 사람 손을 거친 비중을 가늠하기 어렵다. README의 스타 수·배지 등 외부 주장을 이번 패스에서 대조 확인하지 못한 점도 있어, 지금 단계에서는 candidate나 reference로 분류하기보다 관측을 이어가는 쪽이 맞다.

원문 README

아래는 openclaw/openclaw 저장소의 README 원문입니다(GitHub 렌더, 수집 시점 기준). 저작권은 원 프로젝트에 있으며 원 저장소의 라이선스를 따릅니다. GitHub에서 보기

README 전문 펼치기

OpenClaw 🦞 — Your assistant, on your devices, in your chats

OpenClaw — EXFOLIATE! EXFOLIATE! Your AI assistant, running on your own devices.

CI status npm version Node.js version License: MIT Discord

OpenClaw is an AI assistant that runs on your devices and meets you in the channels you already use. It connects models, tools, messaging channels, and optional companion apps through one Gateway, for a single operator or for a team whose members trust each other: the same gateway runs as a personal assistant on one laptop or as a shared team deployment, and configuration is the only difference. The architecture case — trusted gateway, untrusted execution, deterministic policy — is in Why OpenClaw.

Website · Docs · Getting started · Why OpenClaw · Showcase · FAQ · Vision · DeepWiki

Install

The installer supports macOS, Linux, and Windows. It provisions a supported Node.js runtime when needed.

# macOS / Linux / WSL2
curl -fsSL https://openclaw.ai/install.sh | bash
# Windows PowerShell
iwr -useb https://openclaw.ai/install.ps1 | iex

Already manage Node.js? Install the published package instead (Node 22.22.3+, 24.15+, or 25.9+):

npm install -g openclaw@latest --allow-scripts=openclaw

That command is for npm 12 or npm 11.16+. On npm 11.15 and earlier, omit --allow-scripts=openclaw. See the installation guide for the lifecycle script contract, Docker, Nix, and other deployment paths.

Quick start

On a fresh install, the installer scripts start onboarding automatically. Complete the wizard they open. If you installed the package directly with npm, pnpm, or Bun, run:

openclaw onboard --install-daemon

After onboarding:

openclaw gateway status
openclaw dashboard

Onboarding verifies model access, creates the workspace, and configures the Gateway. The last command opens the Control UI; send a message there to confirm the assistant is working. See the getting started guide for channel setup and troubleshooting.

How it fits together

  • The Gateway is the local control plane for sessions, tools, events, and channel connections.
  • The Control UI, CLI, and TUI connect to the Gateway.
  • Channels bring the assistant to WhatsApp, Telegram, Slack, Discord, Google Chat, Signal, iMessage, and other messaging services.
  • Companion apps and nodes add voice, Canvas, camera, screen, and device-local actions on supported platforms.

OpenClaw works with hosted and local model providers. Its tools, skills, and plugins extend what an assistant can do.

Security

Treat inbound messages as untrusted input. DM-capable channels pair unknown senders by default; approve a pairing request with openclaw pairing approve <channel> <code>.

Tools run on the host for the main session unless you configure sandboxing. Read the security guide, exposure runbook, and sandboxing guide before connecting other users or exposing the Gateway remotely.

Documentation

Goal Start here
Configure models and auth Models · Model providers
Connect a messaging service Channels
Add tools, skills, and plugins Tools · Skills · Plugins · ClawHub
Run apps and device nodes Platforms · Nodes
Use the CLI and chat commands CLI reference · Slash commands
Configure or operate the Gateway Configuration · Architecture · Updating · Release channels

Development

The repository is a pnpm workspace. Plain npm install at the repository root is not supported.

git clone https://github.com/openclaw/openclaw.git
cd openclaw
pnpm install
pnpm build
pnpm ui:build

See CONTRIBUTING.md for the contribution workflow and the source setup guide for the development loop.

Community

OpenClaw is developed in the open by the OpenClaw Foundation, a non-profit. See CONTRIBUTING.md for maintainers and contribution guidelines; AI-assisted PRs are welcome.

Use the issue chooser for bugs and feature requests, ask setup questions in Discord, and report vulnerabilities through SECURITY.md. New capabilities usually belong in plugins built on the plugin SDK and shared through ClawHub.

OpenClaw was built for Molty, a space lobster AI assistant, by Peter Steinberger and the community. Explore the project lore, soul.md, Peter's site, Star History, and @openclaw.

Special thanks to Mario Zechner for his support and for pi, and to Adam Doppelt for the lobster.bot domain.

Sponsors

OpenAI GitHub NVIDIA Vercel Blacksmith Convex

Contributors

Thanks to all clawtributors:

steipete vincentkoc Takhoffman obviyus gumadeiras Mariano Belinky vignesh07 joshavant scoootscooob jacobtomlinson shakkernerd sebslight tyler6204 ngutman thewilloftheshadow Sid-Qin mcaxtr eleqtrizit BunsDev cpojer Glucksberg osolmaz bmendonca3 jalehman huntharo neeravmakwana openperf joshp123 pgondhi987 altaywtf quotentiroler liuxiaopai-ai rodrigouroz frankekn drobison00 zerone0x onutc ademczuk ImLukeF hydro13 hxy91819 coygeek dutifulbob sliverp Elonito robbyczgw-cla joelnishanth echoVic sallyom yinghaosang BradGroux christianklotz odysseus0 hclsys byungsker pashpashpash stakeswky github-actions[bot] xinhuagu MonkeyLeeT 100yenadmin mcinteerj samzong chilu18 darkamenosa widingmarcus-cyber cgdusek Lukavyi davidrudduck VACInc MoerAI velvet-shark HenryLoenwind omarshahine bohdanpodvirnyi Verite Igiraneza akramcodez Kaneki-x aether-ai-agent joaohlisboa MaudeBot davidguttman justinhuangcode lml2468 wirjo iHildy mudrii advaitpaliwal czekaj dlauer Solvely-Colin feiskyer brandonwise conroywhitney mneves75 jaydenfyi davemorin joeykrug kevinWangSheng pejmanjohn Lanfei liuy lc0rp teconomix omair445 dorukardahan mmaps Tobias Bischoff adhitShet pandego bradleypriest bjesuiter grp06 shadril238 kesku YuriNachos vrknetha smartprogrammer93 nachx639 jnMetaCode Phineas1500 dingn42 geekhuashan Nanako0129 AytuncYildizli BruceMacD jjjojoj mvanhorn bugkill3r rahthakor GodsBoy SARAMALI15792 Radek Paclt Elarwei001 ingyukoh SnowSky1 lewiswigmore Hiroshi Tanaka aldoeliacim Jakub Rusz Tony Dehnke roshanasingh4 zssggle-rgb adam91holt graysurf xadenryan sfo2001 Jamieson O'Reilly hsrvc tomsun28 BillChirico carrotRakko ranausmanai arkyu2077 hoyyeva luoyanglang sibbl gregmousseau sahilsatralkar akoscz rrenamed YuzuruS Hongwei Ma mitchmcalister juanpablodlc shtse8 thebenignhacker nimbleenigma Linux2010 shichangs efe-arv Hsiao A nabbilkhan ayanesakura lupuletic polooooo xaeon2026 shrey150 taw0002 dinakars777 giulio-leone nyanjou meaningfool kunalk16 ide-rea Jonathan Jing yelog markmusson kiranvk-2011 Sathvik Veerapaneni rogerdigital artwalker azade-c chinar-amrutkar maxsumrall Minidoracat unisone ly85206559 Sam Padilla AnonO6 afurm 황재원 Leszek Szpunar Mrseenz Yida-Dev kesor mazhe-nerd Harald Buerbaumer magimetal Hiren Patel BinHPdev RyanLee-Dev cathrynlavery al3mart JustYannicc abhisekbasu1 dbhurley Kris Wu tmimmanuel JustasM Simantak Dabhade NicholasSpisak natefikru dunamismax Simone Macario ENCHIGO xingsy97 emonty jadilson12 Yi-Cheng Wang Mathias Nagler Sean McLellan gumclaw RichardCao MKV21 petter-b CodeForgeNet Johnson Shi durenzidu dougvk Whoaa512 zimeg Tseka Luk Ryan Haines ufhy Daan van der Plas bittoby XuHao Lucenx9 HeMuling AaronLuo00 YUJIE2002 DhruvBhatia0 Divanoli Mydeen Pitchai Bronko rubyrunsstuff rabsef-bicrym IVY-AI-gif pvtclawn stephenschoettler Dale Babiy LeftX David Gelberg Engr. Arif Ahmed Joy Masataka Shinohara 2233admin ameno- battman21 bcherny bobashopcashier dguido druide67 guirguispierre jzakirov loganprit martinfrancois neo1027144-creator RealKai42 schumilin shuofengzhang solstead hengm3467 chziyue James L. Cowan Jr. scifantastic ryan-crabbe alexfilatov Luckymingxuan HollyChou badlogic Daniel Hnyk dan bachelder heavenlost shad0wca7 Jared kiranjd Mars Kim seheepeak tsavo McRolly NWANGWU dashed Shuai-DaiDai Subash Natarajan emanuelst magendary LI SHANXIN j2h4u bsormagec mjamiv Lalit Singh Jessy LANGE buddyh Aaron Zhu F_ool Ben Stein Lyle Ping popomore Dithilli fal3 mkbehr mteam88 gupsammy Shailesh Garnet Liu Thorfinn Protocol-zero-0 Paul van Oorschot Patrick Yingxi Pan Ptah.ai 정우용 artuskg Anandesh-Sharma zidongdesign innocent-children El-Fitz arthurbr11 jackheuberger Sergiusz Xu Gu hyojin jeann2013 jogelin rmorse scz2011 Andyliu benithors xiwuqi Alvin AARON AGENT Derek YU Marvin Andrew Jeon stain lu OpenCils Stefan Galescu SP Michael Flanagan Gracie Gould cash-echo-bot visionik WalterSumbon huangcj krizpoon rodbland2021 Thomas M sar618 fagemx daymade Tyson Cung Igor Markelov Eng. Juan Combetto connorshea bonald Keenan nachoiacovino zhumengzhu Amine Harch el korane zhoulc777 Alex Navarro Tanwa Arpornthip TIHU Aftabbs Alex-Alaniz jarvis-medmatic Tom Ron day253 Jaaneek Justin Song ziomancer shayan919293 Edward Roger Chien Michael Lee Tomáš Dinh Ian Derrington Lucky peschee Harry Cui Kepler julianengel markfietje Dakshay Mehta TheRipper Dominic danielwanwx Seungwoo hong Youyou972 boris721 damoahdominic dan-dr doodlewind kkarimi brokemac79 ozbillwang Ravish Gupta Jason Hargrove BrianWang1990 Joshua McKiddy Fologan Anonymous Amit v1p0r Ajay Elika Iranb Yonatan codexGW Shaun Tsai TideFinder Chase Dorsey tda 0xJonHoldsCrypto akyourowngames clawdinator[bot] koala73 sircrumpet thesomewhatyou zats Accunza Joly0 Hanna Jeremiah Lowin peetzweg/ Skyler Miao tumf Hiago Silva Nate lidamao633 Cklee CornBrother0x DukeDeSouth Sahan CashWilliams Felix Lu AdeboyeDN Rohan Santhosh Kumar Srinivas Pavan h0tp Neo Tianworld neverland asklee-klawd Yuting Lin constansino ghsmc ibrahimq21 irtiq7 kelvinCB mitsuhiko nohat santiagomed suminhthanh svkozak 张哲芳 Ho Lim Toven R. Desmond 游乐场 Reed Aditya Chaudhary Sam Andy Rajat Joshi cyb1278588254 Zoher Ghadyali Manik Vahsith tarouca MrBrain Daniel Zou Lilo Jason SUMUKH Bakhtier Sizhaev Ganghyun Kim AkashKobal Brian wu-tian807 Vasanth Rao Naik Sabavat Kinfey Artemii VibhorGautam John Rood velamints2 Benji Peng JINNYEONG KIM Rahul kumar Pal Rockcent Limitless 24601 awkoy dawondyifraw google-labs-jules[bot] henrino3 Kansodata kaonash p6l-richard pi0 skainguyen1412 Starhappysh xdanger Penchan scald Serhii a Doğu Abaris ysqander andranik-sahakyan Wangnov Austin lisitan Rishi Vhavle Frank Harris Kenny Lee Alice Losasso edincampara Felix Hellström Varun Chopra wangai-studio sleontenko Yassine Amjad Anton Eicher Drake Thomsen Hinata Kaga (samon) andreabadesso chenxin-yan cordx56 dvrshil MarvinCui Yeom-JinHo Jeremy Mumford Charlie Niño Sharoon Sharif Oren MattQ Parker Todd Brooks Yufeng He Milofax Steve (OpenClaw) zhoulf1006 Jonatan Sebastian B Otaegui Matthew ABFS Tech alexstyl Ethan Palm Qkal cygaar Umut CAN Jakob antons austinm911 mahmoudashraf93 philipp-spiess pkrmf joshrad-dev factnest365-ops yingchunbai AJ (@techfren) Marchel Fahrezi futhgar Zhang Rémi Dan Ballance Eric Su Kimitaka Watanabe Justin Ling Raymond Berger lutr0 claude AngryBird Fabian Williams 0x4C33 8BlT atalovesyou erikpr1994 jonasjancarik longmaba mitschabaude-bot thesash Max easternbloc chrisrodz gabriel-trigo manmal neist wes-davis manuelhettich sktbrd larlyssa pcty-nextgen-service-account Syhids tmchow Marc Gratch xtao JackyWay Josh Phillips T5-AndyML huohua-dev imfing Randy Torres Marco Di Dionisio iamadig humanwritten Rob Axelsen Pratham Dubey 0oAstro aaronn Arturo Asleep123 dantelex fcatuhe gtsifrikas hrdwdmrbl hugobarauna jayhickey jiulingyun Jonathan D. Rhyne (DJ-D) jverdi kitze loukotal minghinmatthewlam MSch odrobnik oswalpalash ratulsarna reeltimeapps snopoke sreekaransrinath timkrase

License

MIT © OpenClaw Foundation. See THIRD_PARTY_NOTICES.md for incorporated or adapted code.

의견

판정에 대한 반론, 도입 경험, 정정 제보를 환영합니다. GitHub 계정으로 참여합니다.

이것도 재봤습니다

전체 리포트 →

이번 주 실측, 메일로 받기

매주 금요일, 그 주의 리포트와 매거진을 보내드립니다. 광고 없이 실측만.