Skip to content

Bynlk/CodeOmniVis

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

97 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

English | ไธญๆ–‡

 โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•— โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•— โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•— โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•— โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•— โ–ˆโ–ˆโ–ˆโ•—   โ–ˆโ–ˆโ–ˆโ•—โ–ˆโ–ˆโ–ˆโ•—   โ–ˆโ–ˆโ•—โ–ˆโ–ˆโ•—โ–ˆโ–ˆโ•—   โ–ˆโ–ˆโ•—โ–ˆโ–ˆโ•—โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•—
โ–ˆโ–ˆโ•”โ•โ•โ•โ•โ•โ–ˆโ–ˆโ•”โ•โ•โ•โ–ˆโ–ˆโ•—โ–ˆโ–ˆโ•”โ•โ•โ–ˆโ–ˆโ•—โ–ˆโ–ˆโ•”โ•โ•โ•โ•โ•โ–ˆโ–ˆโ•”โ•โ•โ•โ–ˆโ–ˆโ•—โ–ˆโ–ˆโ–ˆโ–ˆโ•— โ–ˆโ–ˆโ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ–ˆโ–ˆโ•—  โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•‘   โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•”โ•โ•โ•โ•โ•
โ–ˆโ–ˆโ•‘     โ–ˆโ–ˆโ•‘   โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•‘  โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•—  โ–ˆโ–ˆโ•‘   โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•”โ–ˆโ–ˆโ–ˆโ–ˆโ•”โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•”โ–ˆโ–ˆโ•— โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•‘   โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•—
โ–ˆโ–ˆโ•‘     โ–ˆโ–ˆโ•‘   โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•‘  โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•”โ•โ•โ•  โ–ˆโ–ˆโ•‘   โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•‘โ•šโ–ˆโ–ˆโ•”โ•โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•‘โ•šโ–ˆโ–ˆโ•—โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•‘โ•šโ–ˆโ–ˆโ•— โ–ˆโ–ˆโ•”โ•โ–ˆโ–ˆโ•‘โ•šโ•โ•โ•โ•โ–ˆโ–ˆโ•‘
โ•šโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•—โ•šโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•”โ•โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•”โ•โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•—โ•šโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•”โ•โ–ˆโ–ˆโ•‘ โ•šโ•โ• โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•‘ โ•šโ–ˆโ–ˆโ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•‘ โ•šโ–ˆโ–ˆโ–ˆโ–ˆโ•”โ• โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•‘
 โ•šโ•โ•โ•โ•โ•โ• โ•šโ•โ•โ•โ•โ•โ• โ•šโ•โ•โ•โ•โ•โ• โ•šโ•โ•โ•โ•โ•โ•โ• โ•šโ•โ•โ•โ•โ•โ•โ•šโ•โ•     โ•šโ•โ•โ•šโ•โ•  โ•šโ•โ•โ•โ•โ•šโ•โ•  โ•šโ•โ•โ•โ•  โ•šโ•โ•โ•šโ•โ•โ•โ•โ•โ•โ•

๐Ÿ”ฎ CodeOmniVis โ€” ๅ…จๆ ˆๆžถๆž„ๅฏ่ง†ๅŒ–ๅผ•ๆ“Ž

ไธ€่กŒๅ‘ฝไปค๏ผŒ60 ็ง’๏ผŒ็œ‹ๆธ…ๆ•ดไธช้กน็›ฎ็š„ๆžถๆž„ใ€‚

ไธๅชๆ˜ฏ็”ปๅ›พโ€”โ€”ๆ˜ฏ ไปฃ็ ่ฏญไน‰็†่งฃ ร— ่ทจๅฑ‚ๆ•ฐๆฎๆต่ฟฝ่ธช ร— AI ๅŽŸ็”Ÿ้›†ๆˆใ€‚

License: PolyForm Noncommercial TypeScript Node


npx codeomnivis serve ๅœจ cal.com ไธŠ โ†’ 2,535 ่Š‚็‚น ยท 4,592 ่พน ยท 15 ็ง’ ยท ้›ถ้…็ฝฎ

ๅฎƒ่ƒฝๆ˜ ๅฐ„ไป€ไนˆ

ๅฑ‚ cal.com ่ฆ†็›–
้กต้ข 119 โœ…
API ่ทฏ็”ฑ 82 โœ…
ๆ•ฐๆฎๅบ“ๆจกๅž‹ (Prisma/Drizzle) 102 โœ…
็ป„ไปถ 1,349 โœ…
ๅ‰็ซฏโ†’API ่ฐƒ็”จ 172 โœ…
ๆธฒๆŸ“ๅ…ณ็ณป 3,117 โœ…

ๆ”ฏๆŒ็š„ๆก†ๆžถ

Next.js ยท NestJS ยท Express ยท tRPC ยท TSRPC Prisma ยท Drizzle ยท TypeORM ยท Kotlin Spring/Ktor

AI ้›†ๆˆ (MCP)

ๅผ€็ฎฑๅณ็”จ๏ผŒๆ”ฏๆŒ Cursor ๅ’Œ Claude Desktopใ€‚ find_callers ยท get_api_routes ยท get_component_tree

ๅฎ‰่ฃ…

npx codeomnivis serve

๐Ÿคฏ ไธ€ๅฅ่ฏ่ฏดๆธ…ๆฅš

CodeOmniVis ้™ๆ€ๅˆ†ๆžไฝ ็š„ TypeScript ๅ…จๆ ˆ้กน็›ฎ๏ผŒ่‡ชๅŠจ็”Ÿๆˆ ๅ‰็ซฏ โ†’ API โ†’ ๆ•ฐๆฎๅบ“ ็š„ๅฎŒๆ•ดๆ‹“ๆ‰‘ๅ›พ๏ผŒ ๅนถๆฃ€ๆต‹ๆญปไปฃ็ ใ€ๅพช็Žฏไพ่ต–ใ€ๆ•ฐๆฎๆต่ทฏๅพ„ใ€‚ๅ†…็ฝฎ MCP Server๏ผŒ่ฎฉ AI ๅŠฉๆ‰‹็›ดๆŽฅ็†่งฃไฝ ็š„ๆžถๆž„ใ€‚


๐Ÿ”ฅ ๆ ธๅฟƒ่ƒฝๅŠ›

1. ้›ถ้…็ฝฎๅ…จๆ ˆๅˆ†ๆž

npx @bynlk/CodeOmniVis serve   # 60 ็ง’ๅ†…็œ‹ๅˆฐๅฎŒๆ•ดๆžถๆž„

่‡ชๅŠจๆฃ€ๆต‹ๆก†ๆžถ โ†’ ๆ‰ซๆๆ–‡ไปถ โ†’ AST ่งฃๆž โ†’ ่ทจๅฑ‚่ฟž็บฟ โ†’ ๅฏ่ง†ๅŒ–ใ€‚ไธ้œ€่ฆไปปไฝ•้…็ฝฎใ€‚

2. 22 ไธช่งฃๆžๅ™จ๏ผŒ่ฆ†็›–ไธปๆต็”Ÿๆ€

ๆ”ฏๆŒ็š„ๆก†ๆžถ
ๅ‰็ซฏ ๅŽ็ซฏ ๆ•ฐๆฎๅบ“

โœ… Next.js App Router
โœ… Next.js Pages Router
โœ… React ็ป„ไปถๆ ‘
โœ… fetch / axios ่ฐƒ็”จ
โœ… tRPC hooks

โœ… tRPC Router
โœ… Express ่ทฏ็”ฑ
โœ… NestJS (Controller/Module/Service)
โœ… TSRPC (ApiCall/Msg)
โœ… Spring Boot + Kotlin
โœ… Ktor Routing DSL

โœ… Prisma Schema
โœ… TypeORM Entity
โœ… Drizzle ORM (pg/mysql/sqlite)
โœ… Exposed ORM
โœ… Room (Android)

3. ไธๅชๆ˜ฏๆ‹“ๆ‰‘ๅ›พโ€”โ€”ๆžถๆž„ๆ™บ่ƒฝ

่ƒฝๅŠ› ่ฏดๆ˜Ž
่ทจๅฑ‚่ฟž็บฟ fetch('/api/user') โ†’ GET /api/user โ†’ User.findUnique() โ†’ User ่กจ๏ผŒๅ…จ้“พ่ทฏ่‡ชๅŠจ่ฟž็บฟ
ๆ•ฐๆฎๆต่ฟฝ่ธช ้€‰ไธญไธ€ไธช Model๏ผŒ็œ‹ๅฎƒๆตๅ‘ไบ†ๅ“ชไบ› API ๅ’Œ็ป„ไปถ ๐ŸŒŠ
ๆญปไปฃ็ ๆฃ€ๆต‹ ๐Ÿšซ ๆฒกไบบ่ฐƒ็”จ็š„่ทฏ็”ฑใ€๐Ÿ—‘๏ธ ๆฒกไบบๆธฒๆŸ“็š„็ป„ไปถใ€๐Ÿ”‡ ๆฒกไบบ็”จ็š„ Service
ๅพช็Žฏไพ่ต–ๆฃ€ๆต‹ ๐Ÿ”„ Tarjan SCC ็ฎ—ๆณ•๏ผŒ็ฒพๅ‡†ๅฎšไฝๅพช็Žฏ้“พ
ไธ€่‡ดๆ€งๆฃ€ๆต‹ ๆญป้“พ APIใ€HTTP method ไธๅŒน้…ใ€็ผบๅคฑ็š„ tRPC procedure

4. MCP Server โ€” AI ๅŽŸ็”Ÿ้›†ๆˆ

codeomnivis mcp   # ๅฏๅŠจ MCP Server

5 ไธชๅทฅๅ…ท๏ผŒ่ฎฉ Cursor / Claude / ไปปไฝ• AI ๅŠฉๆ‰‹็›ดๆŽฅๆŸฅ่ฏขไฝ ็š„ๆžถๆž„๏ผš

ๅทฅๅ…ท ๅŠŸ่ƒฝ AI ่ƒฝ้—ฎไป€ไนˆ
get_api_routes API ่ทฏ็”ฑ + ไธ‹ๆธธ DB "ๆœ‰ๅ“ชไบ› API๏ผŸๅ“ชไบ›่ฟžไบ†ๆ•ฐๆฎๅบ“๏ผŸ"
get_component_tree ็ป„ไปถๆ ‘ "Booking ้กต้ข็”จไบ†ๅ“ชไบ›็ป„ไปถ๏ผŸ"
find_callers ่ฐƒ็”จ้“พ่ฟฝ่ธช "่ฐๅœจ่ฐƒ็”จ User ๆจกๅž‹๏ผŸ"
list_db_models ๆ•ฐๆฎๅบ“ๆจกๅž‹ๅˆ—่กจ "ๆœ‰ๅ“ชไบ›ๆ•ฐๆฎ่กจ๏ผŸ"
get_dataflow ๆ•ฐๆฎๆต่ฟฝ่ธช "User ๆ•ฐๆฎไปŽ DB ๅˆฐ UI ๆ€Žไนˆๆต็š„๏ผŸ"
ไฝ ๏ผš่ฟ™ไธช้กน็›ฎ็š„่ฎค่ฏๆต็จ‹ๆ˜ฏๆ€Žๆ ท็š„๏ผŸ

AI๏ผˆ้€š่ฟ‡ CodeOmniVis๏ผ‰๏ผš
  User โ†’ /api/auth โ†’ middleware โ†’ protectedProcedure โ†’ Session
  
  ๅฎŒๆ•ด่ฐƒ็”จ้“พ๏ผŒไธๆ˜ฏ็Œœ็š„ใ€‚

โšก Quick Start

# ๅ…จๅฑ€ๅฎ‰่ฃ…
npm install -g @bynlk/CodeOmniVis

# ๆˆ–็›ดๆŽฅ่ฟ่กŒ
npx @bynlk/CodeOmniVis serve

ๆต่งˆๅ™จ่‡ชๅŠจๆ‰“ๅผ€ โ†’ ็œ‹ๅˆฐๅฎŒๆ•ด็š„ไธ‰ๅฑ‚ๆžถๆž„ๅ›พ โ†’ ็‚นๅ‡ป่Š‚็‚น โ†’ ๆœ็ดข/่ฟ‡ๆปค/็ผฉๆ”พใ€‚

ๅ‘ฝไปค

codeomnivis serve          # ๐Ÿš€ ๅฏๅŠจๅฏ่ง†ๅŒ–ๆœๅŠก๏ผˆ่‡ชๅŠจๅˆ†ๆž + ๆ–‡ไปถ็›‘ๅฌ๏ผ‰
codeomnivis analyze        # ๐Ÿ“Š ่พ“ๅ‡บ JSON ๅ›พๆ•ฐๆฎ
codeomnivis check          # ๐Ÿ” ไธ€่‡ดๆ€งๆฃ€ๆต‹ + ๆญปไปฃ็  + ๅพช็Žฏไพ่ต–
codeomnivis mcp            # ๐Ÿค– ๅฏๅŠจ MCP Server
codeomnivis init           # โš™๏ธ ็”Ÿๆˆ .codeomnivis.json ้…็ฝฎๆ–‡ไปถ

้…็ฝฎ๏ผˆๅฏ้€‰๏ผ‰

// .codeomnivis.json โ€” ้›ถ้…็ฝฎไนŸ่ƒฝ่ท‘๏ผŒๆœ‰้…็ฝฎๆ›ด็ฒพๅ‡†
{
  "frontend": { "dirs": ["src"], "framework": "next" },
  "backend": { "dirs": ["server"], "framework": "nestjs" },
  "database": { "prismaSchema": "prisma/schema.prisma" },
  "exclude": ["node_modules", "dist", ".next"]
}

๐Ÿง  ๅฎƒ่ƒฝ็œ‹ๆ‡‚ไป€ไนˆ๏ผŸ

่‡ชๅŠจๆฃ€ๆต‹่พ“ๅ‡บ

$ codeomnivis serve --project ./cal.com

โœ” Server running at http://localhost:4321

Scanning 9390 files...
Analysis results:
  Files scanned: 9,390
  Nodes: 1,892
  Edges: 3,347

Node types:
  component:      693   โ† React ็ป„ไปถ + props
  handler:        490   โ† ่ทฏ็”ฑๅค„็†ๅ‡ฝๆ•ฐ
  trpc_procedure: 408   โ† tRPC ่ฟ‡็จ‹
  page:           104   โ† ้กต้ข่ทฏ็”ฑ + ๅŠจๆ€ๅ‚ๆ•ฐ
  db_model:       102   โ† ๆ•ฐๆฎๅบ“ๆจกๅž‹ + ๅ…ณ็ณป
  api_route:       82   โ† API ่ทฏ็”ฑ + HTTP method
  service:         13   โ† Service ๅฑ‚

Edge types:
  renders:       1,622   โ† ็ป„ไปถๆธฒๆŸ“ๅ…ณ็ณป
  handles:         490   โ† ่ทฏ็”ฑๅค„็†็ป‘ๅฎš
  contains:        342   โ† ๆจกๅ—ๅŒ…ๅซๅ…ณ็ณป
  db_relation:     323   โ† ๆ•ฐๆฎๅบ“่กจๅ…ณ็ณป
  calls_service:   311   โ† ๆœๅŠก่ฐƒ็”จ้“พ
  calls_api:       172   โ† ๅ‰็ซฏ่ฐƒ็”จ API
  queries_db:       87   โ† ๆ•ฐๆฎๅบ“ๆŸฅ่ฏข

่ทจๅฑ‚่ฟž็บฟ

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  ๐Ÿ“„ /admin/page.tsx                                          โ”‚
โ”‚      โ””โ”€โ”€โ†’ ๐Ÿงฉ AdminDashboard                                 โ”‚
โ”‚              โ”œโ”€โ”€โ†’ ๐ŸŒ GET /api/feedback        (calls_api)    โ”‚
โ”‚              โ”œโ”€โ”€โ†’ ๐ŸŒ GET /api/admin/stats     (calls_api)    โ”‚
โ”‚              โ””โ”€โ”€โ†’ ๐Ÿงฉ PasswordModal                           โ”‚
โ”‚                      โ””โ”€โ”€โ†’ ๐ŸŒ POST /api/verify (calls_api)    โ”‚
โ”‚                                                              โ”‚
โ”‚  ๐ŸŒ POST /api/verify                                         โ”‚
โ”‚      โ””โ”€โ”€โ†’ โšก verifyPassword()                 (handles)      โ”‚
โ”‚              โ””โ”€โ”€โ†’ ๐Ÿ—„๏ธ User.findUnique          (queries_db)   โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

ๆญปไปฃ็  + ๅพช็Žฏไพ่ต–ๆฃ€ๆต‹

$ codeomnivis check

Consistency Issues:
  Total: 15
  Critical: 0
  Warning: 3
  Info: 12

  ๐Ÿšซ [dead_route] Route has no callers: GET /api/admin/stats
  ๐Ÿ—‘๏ธ [dead_component] Component not rendered: AdminSidebar
  ๐Ÿ”‡ [dead_service] Service has no callers: NotificationService
  ๐Ÿ”„ [circular_dependency] Circular: UserRepo โ†’ AuthService โ†’ UserRepo

ๆ•ฐๆฎๆต่ฟฝ่ธช ๐ŸŒŠ

้€‰ๆ‹ฉ Model: User

๐Ÿ—„๏ธ User โ†’ 3 routes โ†’ 5 components

API Routes:
  ๐Ÿ”— GET /api/user/:id
  ๐Ÿ”— POST /api/auth/login
  ๐Ÿ”— GET /api/admin/users

Consuming Components:
  โš›๏ธ UserProfile
  โš›๏ธ AdminDashboard
  โš›๏ธ LoginForm
  โš›๏ธ UserCard
  โš›๏ธ SettingsPage

๐Ÿ—๏ธ Architecture

                         โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
                         โ”‚          CLI (commander)             โ”‚
                         โ”‚  serve ยท analyze ยท check ยท mcp ยท initโ”‚
                         โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                                        โ”‚
                    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
                    โ”‚                   โ”‚                   โ”‚
          โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
          โ”‚   Analysis Engine  โ”‚ โ”‚   Server    โ”‚ โ”‚    MCP Server      โ”‚
          โ”‚                    โ”‚ โ”‚             โ”‚ โ”‚                    โ”‚
          โ”‚  22 Parsers:       โ”‚ โ”‚  Express    โ”‚ โ”‚  5 Tools:          โ”‚
          โ”‚  ยท Prisma          โ”‚ โ”‚  REST API   โ”‚ โ”‚  ยท get_api_routes  โ”‚
          โ”‚  ยท Next.js         โ”‚ โ”‚  WebSocket  โ”‚ โ”‚  ยท get_component   โ”‚
          โ”‚  ยท tRPC            โ”‚ โ”‚  ๅขž้‡ๅˆ†ๆž    โ”‚ โ”‚  ยท find_callers    โ”‚
          โ”‚  ยท TSRPC           โ”‚ โ”‚  ๆ–‡ไปถ็›‘ๅฌ    โ”‚ โ”‚  ยท list_db_models  โ”‚
          โ”‚  ยท Express         โ”‚ โ”‚             โ”‚ โ”‚  ยท get_dataflow    โ”‚
          โ”‚  ยท NestJS          โ”‚ โ”‚             โ”‚ โ”‚  ยท get_dataflow    โ”‚
          โ”‚  ยท Drizzle         โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
          โ”‚  ยท TypeORM         โ”‚        โ”‚                  โ”‚
          โ”‚  ยท Kotlin/Spring   โ”‚        โ”‚                  โ”‚
          โ”‚  ยท Ktor            โ”‚        โ”‚                  โ”‚
          โ”‚  ยท Exposed         โ”‚        โ”‚                  โ”‚
          โ”‚  ยท Room            โ”‚        โ”‚                  โ”‚
          โ”‚                    โ”‚        โ”‚                  โ”‚
          โ”‚  CrossLayerLinker  โ”‚        โ”‚                  โ”‚
          โ”‚  DataFlowTracer    โ”‚        โ”‚                  โ”‚
          โ”‚  ConsistencyCheckerโ”‚        โ”‚                  โ”‚
          โ”‚  ยท ๆญปไปฃ็ ๆฃ€ๆต‹       โ”‚        โ”‚                  โ”‚
          โ”‚  ยท ๅพช็Žฏไพ่ต–ๆฃ€ๆต‹     โ”‚        โ”‚                  โ”‚
          โ”‚  ยท ไธ€่‡ดๆ€งๆฃ€ๆต‹       โ”‚        โ”‚                  โ”‚
          โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜        โ”‚                  โ”‚
                   โ”‚                    โ”‚                  โ”‚
          โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”
          โ”‚              SQLite (sql.js WASM)                   โ”‚
          โ”‚         ~/.codeomnivis/projects/{hash}.db               โ”‚
          โ”‚         ้›ถ้…็ฝฎ ยท ๆ–‡ไปถๆŒไน…ๅŒ– ยท ่ทจ่ฟ›็จ‹ๅ…ฑไบซ              โ”‚
          โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                                   โ”‚
                         โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
                         โ”‚     Web UI         โ”‚
                         โ”‚  React + Cytoscape โ”‚
                         โ”‚  dagre ๅˆ†ๅฑ‚ๅธƒๅฑ€     โ”‚
                         โ”‚  ๆœ็ดข/่ฟ‡ๆปค/่ฏฆๆƒ…     โ”‚
                         โ”‚  ๐ŸŒŠ ๆ•ฐๆฎๆต้ขๆฟ      โ”‚
                         โ”‚  โš ๏ธ ้—ฎ้ข˜ๆฃ€ๆต‹้ขๆฟ    โ”‚
                         โ”‚  ๐Ÿ“Š ็ปŸ่ฎก้ขๆฟ        โ”‚
                         โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๐Ÿ“ฆ Monorepo ็ป“ๆž„

codeomnivis/
โ”œโ”€โ”€ packages/
โ”‚   โ”œโ”€โ”€ shared/       # ๅ…ฑไบซ็ฑปๅž‹๏ผˆ17 ็ง่Š‚็‚น + 15 ็ง่พน + ้…็ฝฎ็ณป็ปŸ๏ผ‰
โ”‚   โ”œโ”€โ”€ analyzer/     # ่งฃๆžๅผ•ๆ“Ž๏ผˆ22 ไธช่งฃๆžๅ™จ + ๅ›พ็ฎ—ๆณ• + ๅญ˜ๅ‚จ๏ผ‰
โ”‚   โ”œโ”€โ”€ server/       # Express + WebSocket + ๅขž้‡ๅˆ†ๆž
โ”‚   โ”œโ”€โ”€ ui/           # React + Cytoscape.js + 6 ไธช Tab ้ขๆฟ
โ”‚   โ”œโ”€โ”€ mcp/          # MCP Server๏ผˆ5 ไธชๅทฅๅ…ท๏ผŒๅนถๅ‘ๅฎ‰ๅ…จ๏ผ‰
โ”‚   โ””โ”€โ”€ cli/          # 5 ไธชๅ‘ฝไปค + ่‡ชๅŠจๆฃ€ๆต‹ + ้…็ฝฎๅŠ ่ฝฝ
โ”œโ”€โ”€ demo/             # ๅ…จๆ ˆ demo ้กน็›ฎ
โ””โ”€โ”€ docs/
    โ”œโ”€โ”€ plans/        # ๅ››ๅ‘จๆ‰ง่กŒ่ฎกๅˆ’ + Claude Code Prompt
    โ”œโ”€โ”€ architecture/ # ่งฃๆž็ฎก็บฟใ€ๆ•ฐๆฎๆจกๅž‹ใ€ๅฏ่ง†ๅŒ–่ฎพ่ฎก
    โ”œโ”€โ”€ api/          # REST API + MCP ๅทฅๅ…ทๆ–‡ๆกฃ
    โ”œโ”€โ”€ rules/        # AI ๅผ€ๅ‘็บฆๆŸ่ง„ๅˆ™
    โ””โ”€โ”€ reports/      # ็Šถๆ€ๆŠฅๅ‘Š
ๅŒ… ไปฃ็ ่กŒๆ•ฐ ๅŠŸ่ƒฝ
@codeomnivis/shared 995 17 ็ง่Š‚็‚น็ฑปๅž‹ใ€15 ็ง่พน็ฑปๅž‹ใ€้…็ฝฎๅŠ ่ฝฝๅ™จ
@codeomnivis/analyzer 9,557 22 ไธช่งฃๆžๅ™จใ€ๆ•ฐๆฎๆต่ฟฝ่ธชใ€ๆญปไปฃ็ /ๅพช็Žฏไพ่ต–ๆฃ€ๆต‹
@codeomnivis/server 759 REST APIใ€WebSocket ๅนฟๆ’ญใ€ๆ–‡ไปถ็›‘ๅฌๅขž้‡ๅˆ†ๆž
@codeomnivis/ui 2,328 6 ไธช Tab ้ขๆฟใ€Cytoscape ๅ›พใ€ๆ•ฐๆฎๆตๅฏ่ง†ๅŒ–
@codeomnivis/mcp 411 5 ไธช MCP ๅทฅๅ…ทใ€ๅนถๅ‘ๅฎ‰ๅ…จใ€ไผ˜้›…ๅ…ณ้—ญ
@codeomnivis/cli 1,312 5 ไธชๅ‘ฝไปคใ€้…็ฝฎ้›†ๆˆใ€่‡ชๅŠจๆก†ๆžถๆฃ€ๆต‹
ๆ€ป่ฎก ~15,362

๐Ÿ› ๏ธ Tech Stack

ๅฑ‚ ๆŠ€ๆœฏ ไธบไป€ไนˆ้€‰ๅฎƒ
่งฃๆžๆ ธๅฟƒ ts-morph ็ฑปๅž‹ๅฎ‰ๅ…จ็š„ TypeScript AST ๅˆ†ๆž
DB ่งฃๆž @prisma/internals Prisma ๅฎ˜ๆ–น DMMF
ๅ›พๅญ˜ๅ‚จ sql.js (WASM SQLite) ้›ถ้…็ฝฎใ€้›ถไพ่ต–ใ€ๆ–‡ไปถๆŒไน…ๅŒ–
ๅฏ่ง†ๅŒ– React + Cytoscape.js + dagre ไธ“ไธบๅคงๅ›พ่ฎพ่ฎก๏ผŒ่‡ชๅŠจๅˆ†ๅฑ‚ๅธƒๅฑ€
Web ๆœๅŠก Express + ws WebSocket ๅฎžๆ—ถๆŽจ้€
MCP @modelcontextprotocol/sdk AI ๅŠฉๆ‰‹ๆ ‡ๅ‡†ๅ่ฎฎ
CLI commander + ora + chalk ไผ˜้›…็š„ๅ‘ฝไปค่กŒไฝ“้ชŒ
ๆž„ๅปบ tsup + Vite ESM ๅŽŸ็”Ÿ๏ผŒๅฟซ้€Ÿๆž„ๅปบ
ๆ ทๅผ Tailwind CSS ๆทฑ่‰ฒไธป้ข˜

๐ŸŽฏ ๆ€ง่ƒฝๅŸบๅ‡†๏ผˆcal.com ้ชŒ่ฏ๏ผ‰

ๅœจ cal.com๏ผˆ9,390 ๆ–‡ไปถ็š„ๅคงๅž‹ๅ…จๆ ˆ้กน็›ฎ๏ผ‰ไธŠ้ชŒ่ฏ๏ผš

ๆŒ‡ๆ ‡ ๆ•ฐๅ€ผ
ๆ‰ซๆๆ–‡ไปถ 9,390
่Š‚็‚น 1,892
่พน 3,347
้”™่ฏฏ 0

่Š‚็‚น็ฑปๅž‹ๅˆ†ๅธƒ

็ฑปๅž‹ ๆ•ฐ้‡ ่ฏดๆ˜Ž
component 693 React ็ป„ไปถ
handler 490 ่ฏทๆฑ‚ๅค„็†ๅ™จ
trpc_procedure 408 tRPC ่ฟ‡็จ‹
page 104 ้กต้ข่ทฏ็”ฑ
db_model 102 ๆ•ฐๆฎๅบ“ๆจกๅž‹
api_route 82 API ่ทฏ็”ฑ
service 13 ๆœๅŠกๅฑ‚

่พน็ฑปๅž‹ๅˆ†ๅธƒ

็ฑปๅž‹ ๆ•ฐ้‡ ่ฏดๆ˜Ž
renders 1,622 ็ป„ไปถๆธฒๆŸ“ๅ…ณ็ณป
handles 490 ่ทฏ็”ฑๅค„็†็ป‘ๅฎš
contains 342 ๆจกๅ—ๅŒ…ๅซๅ…ณ็ณป
db_relation 323 ๆ•ฐๆฎๅบ“่กจๅ…ณ็ณป
calls_service 311 ๆœๅŠก่ฐƒ็”จ้“พ
calls_api 172 ๅ‰็ซฏ่ฐƒ็”จ API
queries_db 87 ๆ•ฐๆฎๅบ“ๆŸฅ่ฏข

ไปฃ็ ่ดจ้‡

  • 0 any โ€” ๆบไปฃ็  + ๆต‹่ฏ•ๆ–‡ไปถ้›ถ any ไฝฟ็”จ
  • 0 this.db! โ€” ๅ…จ้ƒจๆ›ฟๆขไธบ็ฑปๅž‹ๅฎ‰ๅ…จ็š„ getDb() helper
  • ้™็บง่€Œ้žๅดฉๆบƒ โ€” ๆ‰€ๆœ‰่งฃๆžๅ™จ try-catch๏ผŒWASM ๅคฑ่ดฅไธๅดฉๆบƒ
  • ๅขž้‡ๆ›ดๆ–ฐ โ€” ๅ›พ diff ๆ›ดๆ–ฐ๏ผŒไธๅ†ๅ…จ้‡้‡ๅปบๅธƒๅฑ€

๐Ÿ—บ๏ธ Roadmap

โœ… ๅทฒๅฎŒๆˆ

  • 22 ไธช่งฃๆžๅ™จ๏ผˆNext.js / tRPC / TSRPC / Express / NestJS / Prisma / Drizzle / TypeORM / Kotlin๏ผ‰
  • ่ทจๅฑ‚่ฟž็บฟ๏ผˆๅ‰็ซฏ โ†’ API โ†’ Service โ†’ DB๏ผ‰
  • ๆ•ฐๆฎๆต่ฟฝ่ธช๏ผˆModel โ†’ API โ†’ Component๏ผ‰
  • ๆญปไปฃ็ ๆฃ€ๆต‹๏ผˆๆญป่ทฏ็”ฑ / ๆญป็ป„ไปถ / ๆญป Service๏ผ‰
  • ๅพช็Žฏไพ่ต–ๆฃ€ๆต‹๏ผˆTarjan SCC๏ผ‰
  • ไธ€่‡ดๆ€งๆฃ€ๆต‹๏ผˆๆญป้“พ / Method ไธๅŒน้… / ็ผบๅคฑ Procedure๏ผ‰
  • MCP Server๏ผˆ5 ไธชๅทฅๅ…ท๏ผ‰
  • ้…็ฝฎๆ–‡ไปถ็ณป็ปŸ๏ผˆ.codeomnivis.json๏ผ‰
  • ๆ–‡ไปถ็›‘ๅฌๅขž้‡ๅˆ†ๆž
  • WebSocket ๅฎžๆ—ถๆŽจ้€
  • 6 ไธช UI ้ขๆฟ๏ผˆๅ›พ่ฐฑ / ็ญ›้€‰ / ้—ฎ้ข˜ / ๆ•ฐๆฎๆต / AI / ็ปŸ่ฎก๏ผ‰
  • ๅ…จ้‡ไปฃ็ ๅฎกๆŸฅ๏ผˆ61 ไธชๅ‘็Žฐ๏ผŒ59 ไธชๅทฒไฟฎๅค๏ผ‰
  • ้›ถ any ็ฑปๅž‹ๅฎ‰ๅ…จ๏ผˆ74 ๅค„ โ†’ 0 ๅค„๏ผ‰
  • ้™็บง่€Œ้žๅดฉๆบƒ๏ผˆๆ‰€ๆœ‰่งฃๆžๅ™จ + ๆ•ฐๆฎๅบ“ + WebSocket๏ผ‰
  • ๆ€ง่ƒฝไผ˜ๅŒ–๏ผˆๅขž้‡ๅธƒๅฑ€ใ€็ผ“ๅญ˜ใ€ๅŽป่ฝฎ่ฏข๏ผ‰

๐Ÿ”œ ่ฟœๆœŸ็›ฎๆ ‡

  • ๆจกๅ—่šๅˆ๏ผˆๅคงๅ›พๆŠ˜ๅ ๏ผ‰
  • AI ๅฏน่ฏๅผๆŸฅ่ฏข
  • VS Code ๆ’ไปถ
  • monorepo ๅคšๅŒ…ๅˆ†ๆž
  • ๆ›ดๅคšๆก†ๆžถๆ”ฏๆŒ๏ผˆVue / Svelte / Fastify / Hono๏ผ‰

๐Ÿ“„ ๅผ€ๆบๅ่ฎฎ

PolyForm Noncommercial License 1.0.0 โ€” ้žๅ•†ไธšไฝฟ็”จ่ฎธๅฏ

โœ… ไธชไบบไฝฟ็”จใ€ๅญฆไน ใ€็ ”็ฉถใ€้ž่ฅๅˆฉ็ป„็ป‡ใ€ๆ•™่‚ฒๆœบๆž„ โŒ ๅ•†ไธšไฝฟ็”จใ€ๅ”ฎๅ–ใ€ไป˜่ดนๆœๅŠกใ€ๅนฟๅ‘Š็›ˆๅˆฉ

ๅ•†ไธš็”จ้€”่ฏท่”็ณปไฝœ่€…่Žทๅ–ๆŽˆๆƒใ€‚


ๅฆ‚ๆžœไฝ ่ง‰ๅพ—่ฟ™ไธช้กน็›ฎๆœ‰็”จ๏ผŒ่ฏท็ป™ไธช โญ Star๏ผ

GitHub stars

About

Zero-config CLI that auto-generates interactive architecture topology graphs for TypeScript full-stack projects (Next.js + tRPC/Express + Prisma/TypeORM/Drizzle). One command, 60 seconds, see your entire project structure. 22 parsers, 0 any, MCP Server for AI integration.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages