HUSK

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

ParameterTypeRequiredDescription
projectstringNoFilter by project (git remote or cwd)
limitinteger (1–20)NoNumber of sessions to return. Default: 5

Response fields

FieldDescription
session_idUnique session identifier
projectGit remote or working directory
statusSession status (active, ended, etc.)
started_atISO timestamp
ended_atISO timestamp (null if still active)
observation_countNumber of observations recorded
files_modifiedList of files touched during the session
summary_previewFirst 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

ParameterTypeRequiredDescription
session_idstringYesThe 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

ParameterTypeRequiredDescription
idstringYesThe observation ID

Response

Returns the observation with:

  • event — event type
  • tool_name — which tool was called
  • prompt — the user's prompt (if captured)
  • tool_input — what was sent to the tool
  • tool_response — what the tool returned
  • files_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

ParameterTypeRequiredDescription
session_idstringYesThe session ID to get observations for
limitinteger (1–100)NoMax observations to return. Default: 50

Response

Returns an array of observations with:

  • id — observation ID (pass these to compress_observations)
  • event — event type (UserPromptSubmit, PostToolUse, Stop)
  • tool_name — which tool was called
  • prompt — the user's prompt (if captured)
  • tool_input_summary — short summary of tool input
  • files_modified — files touched by this observation
  • created_at — ISO timestamp

compress_observations

Mark observations as compressed and store their summary as a session memory. Called after get_uncompressed_observations + summarization.

Parameters

ParameterTypeRequiredDescription
observation_idsstring[]YesIDs of observations to mark compressed (max 100)
summarystringYesStructured 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.

On this page