Session Tools
Tools for exploring projects, sessions, and observations.
list_projects
List all known projects (distinct git remotes) that have been used with HUSK.
Parameters
None.
Response
{
"projects": [
"git@github.com:example/repo-a.git",
"git@github.com:example/repo-b.git"
]
}session_context
List recent sessions as a compact index. Returns session IDs, dates, project, status, observation count, files modified, and a short summary preview.
Use get_session_detail to fetch full details for interesting sessions.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
project | string | No | Filter by project (git remote or cwd) |
limit | integer (1–20) | No | Number of sessions to return. Default: 5 |
Response fields
| Field | Description |
|---|---|
session_id | Unique session identifier |
project | Git remote or working directory |
status | Session status (active, ended, etc.) |
started_at | ISO timestamp |
ended_at | ISO timestamp (null if still active) |
observation_count | Number of observations recorded |
files_modified | List of files touched during the session |
summary_preview | First 120 characters of the session summary |
get_session_detail
Get full details for a specific session, including the complete summary and all observations.
Use session_context first to find relevant session IDs.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
session_id | string | Yes | The session ID to retrieve |
Response
Returns the full session object with:
- Complete summary (parsed into structured sections)
- All observations with event type, tool name, timestamps
- Files modified across the session
- Prompt and tool input summaries per observation
get_observation
Get a single observation by ID with full content including tool input and response data.
Observation IDs are returned by get_session_detail.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | Yes | The observation ID |
Response
Returns the observation with:
event— event typetool_name— which tool was calledprompt— the user's prompt (if captured)tool_input— what was sent to the tooltool_response— what the tool returnedfiles_modified— files touched by this observation
get_uncompressed_observations
Get uncompressed (not yet summarized) observations for a session. Used during client-side compression — the LLM reads these, writes a summary, then calls compress_observations.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
session_id | string | Yes | The session ID to get observations for |
limit | integer (1–100) | No | Max observations to return. Default: 50 |
Response
Returns an array of observations with:
id— observation ID (pass these tocompress_observations)event— event type (UserPromptSubmit, PostToolUse, Stop)tool_name— which tool was calledprompt— the user's prompt (if captured)tool_input_summary— short summary of tool inputfiles_modified— files touched by this observationcreated_at— ISO timestamp
compress_observations
Mark observations as compressed and store their summary as a session memory. Called after get_uncompressed_observations + summarization.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
observation_ids | string[] | Yes | IDs of observations to mark compressed (max 100) |
summary | string | Yes | Structured summary (max 10000 chars) |
Response
{
"compressed": 15,
"memory_stored": true
}The summary should follow the standard HUSK format:
## Request
What the user asked to accomplish.
## Completed
What was done — specific files, functions, patterns.
## Learned
Key decisions, constraints, or patterns.
## Next Steps
Unfinished work or open questions.