Installs into .claude/skills of the current project.
Are you the author of Extension Esm Imports?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/itsnin-extension-esm-imports)
# extension-esm-imports
## Syntax
`import Name from 'gi://Gio'`
`import {Exported} from './relative/path.js'`
## Forbidden
`imports.gi.*` legacy imports are forbidden.
## Process Isolation
Shell files must never import Gtk, Gdk, or Adw.
Prefs files must never import St, Clutter, Meta, or Shell.
## Relative Paths
Imports resolve relative to the file location. Use the correct number of dot-dots.
## Extension Base
`import Extension from 'resource:///org/gnome/shell/extensions/extension.js'`
`import ExtensionPreferences from 'resource:///org/gnome/Shell/Extensions/js/extensions/prefs.js'`
## GNOME 51 SearchEntry
ControlsManager in ui/overviewControls.js now uses SearchEntry from ui/search.js instead of St.Entry. SearchEntry emits activate-new-instance on Ctrl+Enter. If an extension steals Main.overview.searchEntry, it should still work with basic St.Entry methods since SearchEntry likely extends St.Entry.