# Litestar Fullstack Inertia

> from litestar import Controller, get, post, delete, patch, put Use when this capability is needed.

- Skill: `tomevault-io/litestar-fullstack-inertia` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add tomevault-io/litestar-fullstack-inertia`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tomevault-io/litestar-fullstack-inertia/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: tomevault-io (https://skillmd.com/u/tomevault-io)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/tomevault-io/litestar-fullstack-inertia

---

# Litestar Framework Skill

## Quick Reference

### Controller

```python
from litestar import Controller, get, post, delete, patch, put
from litestar.di import Provide
from litestar.params import Parameter
from litestar_vite.inertia import InertiaResponse

class FeatureController(Controller):
    path = "/feature"
    tags = ["Feature"]

    @get("/")
    async def list(self, service: FeatureService) -> InertiaResponse:
        items = await service.list()
        return InertiaResponse(
            component="Feature/List",
            props={"items": items}
        )

    @get("/{item_id:uuid}")
    async def show(
        self,
        item_id: UUID,
        service: FeatureService,
    ) -> InertiaResponse:
        item = await service.get(item_id)
        return InertiaResponse(
            component="Feature/Show",
            props={"item": item}
        )

    @post("/")
    async def create(
        self,
        data: CreateDTO,
        service: FeatureService,
    ) -> InertiaResponse:
        item = await service.create(data)
        return InertiaResponse(
            component="Feature/Show",
            props={"item": item}
        )
```

### Dependency Injection

```python
from litestar.di import Provide

def provide_service(db_session: AsyncSession) -> FeatureService:
    return FeatureService(session=db_session)

# In controller
dependencies = {"service": Provide(provide_service)}
```

### Guards

```python
from litestar.connection import ASGIConnection
from litestar.handlers import BaseRouteHandler

async def require_auth(
    connection: ASGIConnection,
    _: BaseRouteHandler,
) -> None:
    if not connection.user:
        raise PermissionDeniedException("Authentication required")
```

### Inertia Response

```python
from litestar_vite.inertia import InertiaResponse

# Page response
return InertiaResponse(
    component="Feature/List",  # Maps to resources/pages/Feature/List.tsx
    props={"items": items, "meta": meta}
)

# Redirect
return InertiaResponse.redirect("/feature")
```

## Project Patterns

### Controller Location
`app/domain/{feature}/controllers.py`

### Service Location
`app/domain/{feature}/services.py`

### Registering Controllers
In `app/server/core.py`:
```python
app_config.route_handlers.extend([
    FeatureController,
])
```

## Context7 Lookup

```python
mcp__context7__get-library-docs(
    context7CompatibleLibraryID="/litestar-org/litestar",
    topic="controllers",  # or: routing, di, guards, middleware
    mode="code"
)
```

## Related Files

- `app/server/core.py` - Controller registration
- `app/domain/accounts/controllers.py` - Controller example
- `app/domain/accounts/guards.py` - Guard example
- `app/lib/dependencies.py` - Dependency providers

---
> Source: [litestar-org/litestar-fullstack-inertia](https://github.com/litestar-org/litestar-fullstack-inertia) — distributed by [TomeVault](https://tomevault.io).
<!-- tomevault:4.0:skill_md:2026-06-22 -->

