Shell Server

Interfaces

Interfaces

SessionContext

Session context for scoping and naming

Properties:

PropertyTypeRequiredDescription
scopedEntityType"project" | "milestone" | "task" | "codebase" | "workspace" | undefinedNoEntity type this session is scoped to
scopedEntityIdstring | undefinedNoID of the scoped entity
displayNamestring | undefinedNoUser-provided display name
workingDirectorystring | undefinedNoWorking directory for the session
metadataRecord<string, any> | undefinedNoAdditional metadata
orgIdstring | undefinedNoOrganization ID
workspaceIdstring | undefinedNoWorkspace ID
projectIdstring | undefinedNoProject ID
milestoneIdstring | undefinedNoMilestone ID
taskIdstring | undefinedNoTask ID
serverUrlstring | undefinedNoShell server URL (for multi-server setups)

SessionMetadata

Session metadata stored for persistence

Properties:

PropertyTypeRequiredDescription
sessionIdstringYesUnique session identifier
pidnumberYesProcess ID of the PTY process
createdAtstringYesISO 8601 timestamp when session was created
lastActivityAtstringYesISO 8601 timestamp of last activity
connectionStatusSessionConnectionStatusYesCurrent connection status
colsnumberYesTerminal dimensions
rowsnumberYes
shellTypeShellTypeYesShell type being used
contextSessionContextYesSession context for scoping and naming
displayNamestringYesDisplay name (from context or auto-generated)

SessionInfo

Session info returned to clients (subset of metadata)

Properties:

PropertyTypeRequiredDescription
sessionIdstringYes
displayNamestringYes
connectionStatusSessionConnectionStatusYes
createdAtstringYes
lastActivityAtstringYes
contextSessionContextYes

SessionManagerConfig

Configuration for session manager

Properties:

PropertyTypeRequiredDescription
idleTimeoutMsnumber | undefinedNoIdle timeout in milliseconds (default: 30 minutes)
maxSessionsnumber | undefinedNoMaximum number of sessions (default: 10)
outputBufferLinesnumber | undefinedNoNumber of output lines to buffer for reconnection (default: 1000)
persistencePathstring | undefinedNoOptional file path for session persistence
tmuxSocketPathstring | undefinedNotmux socket path (optional, let tmux decide if not set)
tmuxHistoryLimitnumber | undefinedNotmux scrollback history limit (default: 10000)

SessionRecord

Session record stored in SQLite

Properties:

PropertyTypeRequiredDescription
session_idstringYes
display_namestringYes
created_atstringYes
last_activity_atstringYes
colsnumberYes
rowsnumberYes
shell_typeShellTypeYes
working_directorystring | nullYes
scoped_entity_typestring | nullYes
scoped_entity_idstring | nullYes
org_idstring | nullYes
workspace_idstring | nullYes
project_idstring | nullYes
milestone_idstring | nullYes
task_idstring | nullYes
metadatastring | nullYes

BaseMessage

Base message interface

Properties:

PropertyTypeRequiredDescription
typestringYes

ListSessionsMessage

Properties:

PropertyTypeRequiredDescription
type"list"Yes

CreateSessionMessage

Properties:

PropertyTypeRequiredDescription
type"create"Yes
sessionIdstring | undefinedNo
colsnumber | undefinedNo
rowsnumber | undefinedNo
contextSessionContext | undefinedNo

ReconnectSessionMessage

Properties:

PropertyTypeRequiredDescription
type"reconnect"Yes
sessionIdstringYes

DataMessage

Properties:

PropertyTypeRequiredDescription
type"data"Yes
sessionIdstringYes
datastringYes

ResizeMessage

Properties:

PropertyTypeRequiredDescription
type"resize"Yes
sessionIdstringYes
colsnumberYes
rowsnumberYes

DisconnectMessage

Properties:

PropertyTypeRequiredDescription
type"disconnect"Yes
sessionIdstringYes

CloseSessionMessage

Properties:

PropertyTypeRequiredDescription
type"close"Yes
sessionIdstringYes

RenameSessionMessage

Properties:

PropertyTypeRequiredDescription
type"rename"Yes
sessionIdstringYes
displayNamestringYes

DeleteSessionMessage

Properties:

PropertyTypeRequiredDescription
type"delete"Yes
sessionIdstringYes
deleteFromDatabaseboolean | undefinedNoIf true, also delete from database (not just server)

UpdateSessionMessage

Properties:

PropertyTypeRequiredDescription
type"update"Yes
sessionIdstringYes
contextPartial<SessionContext>YesUpdated context fields (merged with existing)
displayNamestring | undefinedNoOptional new display name

SessionsListMessage

Properties:

PropertyTypeRequiredDescription
type"sessions"Yes
sessionsSessionInfo[]Yes

SessionCreatedMessage

Properties:

PropertyTypeRequiredDescription
type"created"Yes
sessionIdstringYes
displayNamestringYes

SessionReconnectedMessage

Properties:

PropertyTypeRequiredDescription
type"reconnected"Yes
sessionIdstringYes
displayNamestringYes
historystringYesBuffered output history for context restoration

SessionDataMessage

Properties:

PropertyTypeRequiredDescription
type"data"Yes
sessionIdstringYes
datastringYes

SessionExitMessage

Properties:

PropertyTypeRequiredDescription
type"exit"Yes
sessionIdstringYes
exitCodenumberYes

SessionEndedMessage

Properties:

PropertyTypeRequiredDescription
type"session_ended"Yes
sessionIdstringYes
reason"exit" | "timeout" | "closed"Yes
exitCodenumber | undefinedNo

SessionRenamedMessage

Properties:

PropertyTypeRequiredDescription
type"renamed"Yes
sessionIdstringYes
displayNamestringYes

SessionDeletedMessage

Properties:

PropertyTypeRequiredDescription
type"session_deleted"Yes
sessionIdstringYes
deletedFromDatabasebooleanYesWhether the session was also deleted from database

SessionUpdatedMessage

Properties:

PropertyTypeRequiredDescription
type"session_updated"Yes
sessionIdstringYes
displayNamestringYesUpdated display name
contextSessionContextYesUpdated context

ErrorMessage

Properties:

PropertyTypeRequiredDescription
type"error"Yes
messagestringYes
sessionIdstring | undefinedNo

ShellServerConfig

Shell server configuration

Properties:

PropertyTypeRequiredDescription
portnumberYes
authTokenstring | undefinedNo
sessionConfigSessionManagerConfig | undefinedNo

HealthResponse

Health check response

Properties:

PropertyTypeRequiredDescription
status"error" | "ok" | "degraded"Yes
uptimenumberYes
sessionsnumberYes
clientsnumberYes
portnumberYes
versionstringYes
Previous
API Reference
Next
Types