A comprehensive Visual Studio Code extension for managing and visualizing package.json files with a modern visual editor, smart dependency management, and interactive dependency graph.
- Overview tab: Edit all package.json fields with a grouped, form-based UI (Identity, People & Links, Entry Points, Engines, Publish & Files)
- Tag-style management for
keywordsandfilesarrays - Custom field adder for arbitrary fields
- Read-only JSON display for complex nested objects (exports, workspaces, overrides, etc.)
- Local search: Filter installed dependencies instantly
- npm registry search: Toggle "+ npm" to search the registry, sorted by popularity
- "Installed" badge on existing packages, 2+ character search guard
- Add, remove, and move dependencies between
dependenciesanddevDependencies - View detailed package information from npm
- D3.js force-directed graph visualization
- Zoom controls (in/out/reset), hover tooltips, search highlighting
- Filter by dependency type, dynamic legend, stats bar
- Configurable max depth (1-10 levels)
- Inline editing with Save/Cancel buttons and keyboard shortcuts (Enter/Escape)
- Execute scripts directly in the integrated terminal
- Add and remove scripts
- Open any
package.jsonfile in VS Code -- it opens in the visual editor by default - Or use the Command Palette (
Ctrl+Shift+P) and search for "Open in Package.json Manager"
The editor title bar shows icons for:
- Toggle View: Switch between visual editor and text editor
- Dependency Graph: Open the interactive dependency graph
- Click the graph icon in the editor title bar, or
- Use the Command Palette and search for "Show Dependency Graph"
- Visual Studio Code ^1.75.0
- Node.js 20+ (for native fetch support)
| Setting | Default | Description |
|---|---|---|
packageJsonManager.enableAutomaticVisualEditing |
false |
Automatically open package.json files in visual editor mode |
packageJsonManager.showDependencyGraphButton |
true |
Show dependency graph button in editor title bar |
packageJsonManager.maxDependencyDepth |
3 |
Maximum depth for dependency graph generation (1-10) |
packageJsonManager.defaultViewMode |
visual |
Default view mode: visual or text |
Access settings: File > Preferences > Settings > search "Package.json Manager"
Complete v2.0 rewrite with modern architecture and comprehensive features:
- 6-layer architecture (Extension > Commands > Panels > Services > Utilities > Config)
- Comprehensive package.json field coverage with grouped sections
- Smart dependency search UX (local filtering + npm registry toggle)
- Interactive D3.js dependency graph with zoom, tooltips, and search
- Inline script editing with keyboard shortcuts
- SVG toolbar icons (light/dark theme variants)
- Automated CI/CD release pipeline with conventional commit versioning
- Removed
axiosdependency (uses nativefetch) - Updated to TypeScript 5.3, ESLint 8, Node 20
- Layered architecture refactor
- VS Code engine bump to ^1.75.0
- Custom editor as default for package.json
- Initial release
git clone https://github.com/icy-r/package-json-manager.git
cd package-json-manager
pnpm install
pnpm run watch
# Press F5 in VS Code to launch Extension Development Hostpnpm run compile # Development build
pnpm run package # Production build
pnpm dlx vsce package # Create VSIXpnpm run lint # Lint
pnpm run test-compile # Compile tests
pnpm run test # Run testsReleases are fully automated via GitHub Actions:
- On PR merge to
main: Therelease.ymlworkflow auto-detects version bump from conventional commit messages:fix:/perf:/refactor:→ patch (e.g., 2.1.0 → 2.1.1)feat:→ minor (e.g., 2.1.0 → 2.2.0)feat!:/BREAKING CHANGE→ major (e.g., 2.1.0 → 3.0.0)
- Automatically bumps
package.json, creates git tag, publishes to VS Marketplace, creates GitHub Release - Manual dispatch available with explicit bump type override
- Fallback: manual
git tag v*still triggers the CI pipeline
Secrets required: VSCE_PAT (VS Marketplace Personal Access Token)
Contributions are welcome! Please read:
- CONTRIBUTING.md - Development guidelines and workflow
- ARCHITECTURE.md - Technical architecture and design patterns
Use conventional commit messages (feat:, fix:, docs:, refactor:, test:, chore:).
Thanks to these contributors for their ideas and feedback:
- @maxoiduss (Max) - Icon toolbar concept, configuration-aware editor switching (PR #4)
- @cyrus123456 (Cyrus) - Feature request for repository/homepage URL fields (#1)
MIT