> ## Documentation Index
> Fetch the complete documentation index at: https://docs.neuro-tech.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Extension patterns

> Common patterns for extending the Neuron with packages

This page covers the most common patterns used when extending the Neuron with custom packages.

## Starting from the template

1. Fork or copy the [TemplatePackage](https://github.com/Trust-Anchor-Group/TemplatePackage)
2. Rename the solution, projects, namespaces, and manifest to match your package name
3. Follow the naming convention `COMPANY.CATEGORY.SERVICE[.SUBSERVICE]`
4. Update post-build events to point to your local folders
5. Run the Neuron console host and verify your package appears in Software

## Understanding modules

Neuron packages expose behavior through modules:

* Find the service class implementing `IModule` or `IConfigurableModule`
* Implement `Start` and `Stop` for lifecycle logic (register HTTP endpoints, timers, services, etc.)

## Adding package content

* Maintain the manifest file listing all assemblies and content files
* Include only dependencies not already provided by the Neuron runtime

## Fast edit loop for frontend content

For Markdown/script changes, add a `FileFolder` mapping in `gateway.config` pointing to your local source folder:

```xml theme={null}
<FileFolder webFolder="/ExamplePackage"
            folderPath="C:\My Projects\NeuronExamplePackage\TAG.ExamplePackage\Root\ExamplePackage\" />
```

Restart the Neuron so changes are served live from disk. This avoids rebuilding for every frontend edit.

## HTTP endpoints with the router

Use [`TAG.Networking.HttpRouter`](/neuron-development/first-party-packages/neuron-http-router) to expose HTTP endpoints from your package. It provides attribute-based controllers, route binding, and JSON serialization.

## Documenting your package

* Add a package info block (package name, installation key, links)
* Add usage and configuration notes, settings pages, and runtime settings
* Update the README and confirm a license is in place
* Create a [community post](https://lab.tagroot.io/Community) if it may be helpful to others
