Skip to content

Configuration Reference

OptionTypeDefaultRequiredDescription
projectIdstringYesProject identifier, auto-creates in desktop app
apiKeystringNoAPI key (required for cloud mode, any string for local)
mode"local" | "desktop" | "cloud"YesDetermines endpoint URL
endpointstringNoOverride endpoint URL
envstringNoEnvironment label
appNamestringNoApplication name
appVersionstringNoApplication version
defaultTagsRecord<string, string>{}NoTags merged into every log
batchSizenumber10NoLogs before auto-flush
flushIntervalnumber5000NoAuto-flush interval (ms)
fetchfunctionglobalThis.fetchNoCustom fetch implementation
isDebugbooleanfalseNoDisables gzip compression
bucketsstring[]NoTyped bucket accessors with autocomplete
ModeURL
localhttp://localhost:17655
desktophttp://localhost:8787
cloudhttps://api.gunsole.com

LogOptions (what you pass to gun.info(), etc.)

Section titled “LogOptions (what you pass to gun.info(), etc.)”
FieldTypeRequiredDescription
messagestringYesHuman-readable log message
bucketstringYesCategory name (auto-created)
contextRecord<string, unknown>NoArbitrary structured data
tagsPartial<Tags> | TagEntry<Tags>[]NoFilterable key-value pairs
traceIdstringNoLinks related log entries

BucketLogOptions (what you pass to gun.payment(), etc.)

Section titled “BucketLogOptions (what you pass to gun.payment(), etc.)”
FieldTypeRequiredDescription
contextRecord<string, unknown>NoArbitrary structured data
tagsPartial<Tags> | TagEntry<Tags>[]NoFilterable key-value pairs
traceIdstringNoLinks related log entries

These are set automatically by the SDK and sent with every log:

FieldSource
levelDetermined by method: info(), debug(), warn(), error()
timestampDate.now() (unix milliseconds)
userIdFrom gun.setUser({ id: "..." })
sessionIdFrom gun.setSessionId("...")
envFrom config
appNameFrom config
appVersionFrom config

Cannot be used with buckets config option:

log, info, debug, warn, error, setUser, setSessionId, flush, destroy, attachGlobalErrorHandlers, detachGlobalErrorHandlers

Cannot be used as tag schema keys:

bucket, message, level, timestamp, userId, sessionId, env, appName, appVersion


ExportDescription
createGunsoleClientFactory function to create client
GunsoleClientClient class
ExportDescription
GunsoleClientConfigConfiguration options
LogEntryLog entry structure
LogLevel"info" | "debug" | "warn" | "error"
LogOptionsOptions passed to log methods
TagEntrySingle-key tag entry type
UserInfoUser information
ClientMode"cloud" | "desktop" | "local"
BucketLogOptionsLog options for bucket methods (no bucket/message)
BucketLoggerCallable bucket accessor interface
WithBucketsMapped type adding bucket accessors to client
ReservedBucketNameUnion of reserved bucket names
ValidateBucketsCompile-time bucket name validator
ReservedTagKeyUnion of reserved tag keys
ValidTagSchemaCompile-time tag schema constraint
  • TypeScript 5.0+ required for const generic inference (bucket literal types)
  • TypeScript 5.4+ recommended for NoInfer (bucket name compile-time validation)
  • Target: ES2020

SettingDefaultDescription
Log retention (days)UnlimitedAuto-delete logs older than N days
Auto-delete old logsOffEnable/disable retention enforcement
SettingDefaultDescription
Log retention (days)Inherits projectOverride project retention per bucket
SettingOptionsDescription
ThemeLight / Dark / AutoUI color scheme

SettingValue
Default port17655
Hostlocalhost only
CORSEnabled (all origins)
Compressiongzip accepted on request body

These are compiled into the desktop app and not user-configurable:

ConstantValueDescription
Log batch size50Max logs per flush to DB
Batch interval100msMax time between DB flushes
Frontend buffer~2000 logsMax in-memory logs in viewer
New log animation3 secondsGreen fade duration for new entries

SettingValue
EngineSQLite (WAL mode)
Location (macOS)~/Library/Application Support/gunsole/gunsole.db
Location (Linux)~/.local/share/gunsole/gunsole.db
Location (Windows)%APPDATA%\gunsole\gunsole.db
Tablesworkspaces, projects, buckets, filters, logs, tags, log_tag_map, app_preferences
Foreign keysEnabled
MigrationsAuto-run on startup