# Extension points — adonisjs/core

> Canonical page: https://codevetter.com/unpack/core/extension-points

# Extension points — adonisjs/core

Scanned commit e1b2357eacc2e8e72e0815abbc5f2e94264acffb (2026-10-01). Generated by codevetter codevetter 1.15.0 on 2026-10-02.

Source inspection; upstream code and tests were not executed.

Extension is organized around application providers, container bindings, command loaders, macros, configuration factories, and assembler hooks. Types expose open interfaces for application-specific services and registries. Stubs and codemods let packages add generated entities and modify consumer applications. The public export map and compiled command index connect these extension mechanisms to package distribution.
- Ignitor.tap provides application setup callbacks and IgnitorOptions.importer allows custom module resolution during Application construction. — [src/ignitor/main.ts#L94-110](https://github.com/adonisjs/core/blob/e1b2357eacc2e8e72e0815abbc5f2e94264acffb/src/ignitor/main.ts#L94-L110) [src/types.ts#L67-70](https://github.com/adonisjs/core/blob/e1b2357eacc2e8e72e0815abbc5f2e94264acffb/src/types.ts#L67-L70)
- HttpServerProcess.start accepts a factory receiving the framework request handler and returning a Node HTTP or HTTPS server. — [src/ignitor/http.ts#L152-179](https://github.com/adonisjs/core/blob/e1b2357eacc2e8e72e0815abbc5f2e94264acffb/src/ignitor/http.ts#L152-L179)
- Ace loads RC command modules through callable or string import loaders and supplements them with FsLoader over app.commandsPath; a known already-registered command can skip application command metadata loading. — [modules/ace/create_kernel.ts#L42-64](https://github.com/adonisjs/core/blob/e1b2357eacc2e8e72e0815abbc5f2e94264acffb/modules/ace/create_kernel.ts#L42-L64)
- BaseCommand subclasses declare options and lifecycle methods; exec invokes prepare, interact, run, and completed through container.call, enabling dependency injection into command hooks. — [modules/ace/commands.ts#L34-53](https://github.com/adonisjs/core/blob/e1b2357eacc2e8e72e0815abbc5f2e94264acffb/modules/ace/commands.ts#L34-L53) [modules/ace/commands.ts#L105-138](https://github.com/adonisjs/core/blob/e1b2357eacc2e8e72e0815abbc5f2e94264acffb/modules/ace/commands.ts#L105-L138)
- Package configure hooks receive the Configure command, including parsedArgs, parsedFlags, optional package stubsRoot, and a Codemods instance configured for force/verbose behavior. — [commands/configure.ts#L53-61](https://github.com/adonisjs/core/blob/e1b2357eacc2e8e72e0815abbc5f2e94264acffb/commands/configure.ts#L53-L61) [commands/configure.ts#L150-154](https://github.com/adonisjs/core/blob/e1b2357eacc2e8e72e0815abbc5f2e94264acffb/commands/configure.ts#L150-L154) [commands/configure.ts#L192-200](https://github.com/adonisjs/core/blob/e1b2357eacc2e8e72e0815abbc5f2e94264acffb/commands/configure.ts#L192-L200)
- Codemods exposes AST extension methods for middleware, policies, RC settings, Vite and Japa plugins, validators, limiters, model mixins, and controller methods through assembler CodeTransformer. — [modules/ace/codemods.ts#L309-320](https://github.com/adonisjs/core/blob/e1b2357eacc2e8e72e0815abbc5f2e94264acffb/modules/ace/codemods.ts#L309-L320) [modules/ace/codemods.ts#L378-389](https://github.com/adonisjs/core/blob/e1b2357eacc2e8e72e0815abbc5f2e94264acffb/modules/ace/codemods.ts#L378-L389) [modules/ace/codemods.ts#L445-456](https://github.com/adonisjs/core/blob/e1b2357eacc2e8e72e0815abbc5f2e94264acffb/modules/ace/codemods.ts#L445-L456) [modules/ace/codemods.ts#L587-598](https://github.com/adonisjs/core/blob/e1b2357eacc2e8e72e0815abbc5f2e94264acffb/modules/ace/codemods.ts#L587-L598)
- indexEntities returns an assembler init hook with configurable sources, aliases, globs, skipped segments, enablement, transformer shared props, and manifest exclusions. — [src/assembler_hooks/index_entities.ts#L53-114](https://github.com/adonisjs/core/blob/e1b2357eacc2e8e72e0815abbc5f2e94264acffb/src/assembler_hooks/index_entities.ts#L53-L114) [src/types.ts#L310-371](https://github.com/adonisjs/core/blob/e1b2357eacc2e8e72e0815abbc5f2e94264acffb/src/types.ts#L310-L371)
- Hash defineConfig accepts direct driver factories or configuration providers; encryption defineConfig accepts concrete configurations or providers, and BaseDriver is exported for custom encryption drivers. — [modules/hash/define_config.ts#L93-115](https://github.com/adonisjs/core/blob/e1b2357eacc2e8e72e0815abbc5f2e94264acffb/modules/hash/define_config.ts#L93-L115) [modules/encryption/define_config.ts#L114-133](https://github.com/adonisjs/core/blob/e1b2357eacc2e8e72e0815abbc5f2e94264acffb/modules/encryption/define_config.ts#L114-L133) [modules/encryption/main.ts#L64-82](https://github.com/adonisjs/core/blob/e1b2357eacc2e8e72e0815abbc5f2e94264acffb/modules/encryption/main.ts#L64-L82)
- EventsList, LoggersList, HashersList, EncryptorsList, and ContainerBindings are exported interfaces intended for type augmentation; generated route declarations augment RoutesList. — [src/types.ts#L86-107](https://github.com/adonisjs/core/blob/e1b2357eacc2e8e72e0815abbc5f2e94264acffb/src/types.ts#L86-L107) [src/types.ts#L130-165](https://github.com/adonisjs/core/blob/e1b2357eacc2e8e72e0815abbc5f2e94264acffb/src/types.ts#L130-L165) [src/types.ts#L257-282](https://github.com/adonisjs/core/blob/e1b2357eacc2e8e72e0815abbc5f2e94264acffb/src/types.ts#L257-L282) [src/utils.ts#L51-56](https://github.com/adonisjs/core/blob/e1b2357eacc2e8e72e0815abbc5f2e94264acffb/src/utils.ts#L51-L56)
- Vine and HttpRequest are extended with macros; Edge extends HttpContext through a view getter and BriskRoute through render, while RequestValidator exposes static per-request reporter and message-provider factories. — [providers/vinejs_provider.ts#L72-86](https://github.com/adonisjs/core/blob/e1b2357eacc2e8e72e0815abbc5f2e94264acffb/providers/vinejs_provider.ts#L72-L86) [providers/edge_provider.ts#L212-231](https://github.com/adonisjs/core/blob/e1b2357eacc2e8e72e0815abbc5f2e94264acffb/providers/edge_provider.ts#L212-L231) [modules/http/request_validator.ts#L48-57](https://github.com/adonisjs/core/blob/e1b2357eacc2e8e72e0815abbc5f2e94264acffb/modules/http/request_validator.ts#L48-L57)
- Local scaffold customization is supported by eject and app.stubs.build; new public module surfaces also require coordination with package exports and tsdown entry configuration. — [commands/eject.ts#L57-65](https://github.com/adonisjs/core/blob/e1b2357eacc2e8e72e0815abbc5f2e94264acffb/commands/eject.ts#L57-L65) [modules/ace/codemods.ts#L634-635](https://github.com/adonisjs/core/blob/e1b2357eacc2e8e72e0815abbc5f2e94264acffb/modules/ace/codemods.ts#L634-L635) [package.json#L18-35](https://github.com/adonisjs/core/blob/e1b2357eacc2e8e72e0815abbc5f2e94264acffb/package.json#L18-L35) [package.json#L226-245](https://github.com/adonisjs/core/blob/e1b2357eacc2e8e72e0815abbc5f2e94264acffb/package.json#L226-L245)
- TestUtils extends Macroable, and IgnitorFactory supplies merge, preload, core-provider, and core-configuration hooks for constructing test applications. — [src/test_utils/main.ts#L10-31](https://github.com/adonisjs/core/blob/e1b2357eacc2e8e72e0815abbc5f2e94264acffb/src/test_utils/main.ts#L10-L31) [factories/core/ignitor.ts#L70-85](https://github.com/adonisjs/core/blob/e1b2357eacc2e8e72e0815abbc5f2e94264acffb/factories/core/ignitor.ts#L70-L85) [factories/core/ignitor.ts#L108-136](https://github.com/adonisjs/core/blob/e1b2357eacc2e8e72e0815abbc5f2e94264acffb/factories/core/ignitor.ts#L108-L136) [factories/core/ignitor.ts#L200-216](https://github.com/adonisjs/core/blob/e1b2357eacc2e8e72e0815abbc5f2e94264acffb/factories/core/ignitor.ts#L200-L216)

Every claim links to its cited files at the pinned commit. Citations identify source evidence; they do not establish runtime correctness. Independent CodeVetter scan — not reviewed by upstream maintainers.

## Public product links

- [CodeVetter](https://codevetter.com/)
- [Download](https://codevetter.com/download)
- [Documentation](https://codevetter.com/docs/)
- [Source](https://github.com/Codevetter/codevetter)
