Skip to content

the-einstein/obsidian-code

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

obsidian-code

Desktop app that analyzes JavaScript/TypeScript codebases and visualizes function call graphs interactively.

Point it at any JS/TS project and instantly see how functions connect — which functions call which, across files, with full import resolution.

Built with LuaJIT + LOVE2D. No Electron, no browser, no JavaScript runtime needed.

obsidian-code

screenshot

Download

Platform Download Size
Windows (64-bit) obsidian-code-win64.zip ~5 MB
Linux (x86_64) obsidian-code-x86_64.AppImage ~6 MB

How to Use

Windows

  1. Download and extract obsidian-code-win64.zip
  2. Double-click obsidian-code.exe
  3. Enter a project path in the toolbar and click Analyze

First run: Windows SmartScreen may warn about an unknown publisher. Click More info then Run anyway.

Linux

chmod +x obsidian-code-x86_64.AppImage
./obsidian-code-x86_64.AppImage

Enter a project path in the toolbar and click Analyze.

CLI Mode (Linux only, requires LuaJIT)

luajit main.lua --cli /path/to/your/project

Outputs the call graph as JSON to stdout.

Features

  • Network Graph — Force-directed layout showing all functions as nodes and calls as edges. Pan, zoom, drag, hover for details.
  • Flow View — Select a function to see what it calls (callees) and what calls it (callers) in a linear list.
  • Sidebar — Browse files and functions. Click a file to filter the graph. Click a function to select it.
  • Import Resolution — Follows require, import, and export across files to accurately map cross-file calls.
  • External Filtering — Third-party packages (react, lodash, etc.) are automatically excluded from the graph.

Supported Languages

  • JavaScript (.js, .jsx)
  • TypeScript (.ts, .tsx)

How It Works

  1. Scan — Walks the project directory, respects .gitignore, finds all JS/TS files
  2. Parse — Uses tree-sitter to build ASTs for each file
  3. Extract — Pulls out function declarations, arrow functions, methods, and all call expressions
  4. Resolve — Maps imports/exports across files, links call sites to function definitions
  5. Graph — Builds a node+edge graph and renders it with a force-directed layout

Tech Stack

Layer Tech
Runtime LuaJIT
GUI LOVE2D
AST parsing tree-sitter (via ltreesitter)
File system luafilesystem
JSON lua-cjson

Building from Source

Requirements

Run

love .

License

MIT

About

Desktop app that analyzes JS/TS codebases and visualizes function call graphs. LuaJIT + LOVE2D.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors