# tinker_cookbook.renderers.RenderContext

## _class_ [**tinker_cookbook.renderers.RenderContext**](https://github.com/thinking-machines-lab/tinker-cookbook/blob/main/tinker_cookbook/renderers/base.py#L682)()

Context passed to render_message for rendering a single message.

This allows renderers to access information about the message's position in the conversation without changing the render_message signature for each new piece of context needed.

**Fields:**

- [**idx**](https://github.com/thinking-machines-lab/tinker-cookbook/blob/main/tinker_cookbook/renderers/base.py#L691) ( _int_) – Index of the message in the conversation (0-based).
- [**is_last**](https://github.com/thinking-machines-lab/tinker-cookbook/blob/main/tinker_cookbook/renderers/base.py#L694) ( _bool_) – Whether this is the last message in the conversation.
- [**prev_message**](https://github.com/thinking-machines-lab/tinker-cookbook/blob/main/tinker_cookbook/renderers/base.py#L697) ( _[Message](https://tinker-docs.thinkingmachines.ai/cookbook/api-reference/renderers/message/) \| None_, default: `None`) – The previous message in the conversation, if any.
- [**last_user_index**](https://github.com/thinking-machines-lab/tinker-cookbook/blob/main/tinker_cookbook/renderers/base.py#L700) ( _int_, default: `-1`) – Index of the last user message in the conversation. -1 if no user messages.

This is computed by the base build_generation_prompt/build_supervised_example and used by renderers like Qwen3.5 that need to treat assistant messages differently based on whether they come before or after the last user message.

## Referenced by

- [tinker_cookbook.renderers.Renderer.render_message](https://tinker-docs.thinking-machines.ai/cookbook/api-reference/renderers/renderer/#renderer-render_message)
