Crawler Summary

tuistory answer-first brief

Playwright for terminal apps. Like tmux but designed for agents — virtual terminals you can type into, press keys, wait for text, take snapshots, and screenshot as images. tuistory has **2 modes**: - **CLI** (`tuistory` command) — shell-based. Launch sessions, type, press keys, snapshot, screenshot. Runs a background daemon that persists sessions across commands. Install globally or use `npx`/`bunx`. **You MUST run `tuistory --help` before using the CLI** to see the latest commands and options. - **JS/TS API** (`import { launchTerminal } from 'tuistory'`) — programmatic. Use in vitest/bun:test to write Playwright-style tests for CLIs and TUIs with inline snapshots. Use tuistory when you need to: - Write e2e tests for CLI/TUI apps (vitest, bun:test) with inline snapshots - Automate terminal interactions (launch a REPL, debugger, or TUI and drive it) - Screenshot terminal as images to send to users (Discord bots, agent UIs like kimaki/openclaw) - Reproduce bugs in interactive CLIs by scripting the exact steps - Explore TUI apps progressively with observe-act-observe loops --- name: tuistory description: | Playwright for terminal apps. Like tmux but designed for agents — virtual terminals you can type into, press keys, wait for text, take snapshots, and screenshot as images. tuistory has **2 modes**: - **CLI** (tuistory command) — shell-based. Launch sessions, type, press keys, snapshot, screenshot. Runs a background daemon that persists sessions across commands. Install globally or us Published capability contract available. No trust telemetry is available yet. 215 GitHub stars reported by the source. Last updated 2/24/2026.

Freshness

Last checked 2/22/2026

Best For

Contract is available with explicit auth and schema references.

Not Ideal For

tuistory is not ideal for teams that need stronger public trust telemetry, lower setup complexity, or more explicit contract coverage before production rollout.

Evidence Sources Checked

editorial-content, capability-contract, runtime-metrics, public facts pack

Claim this agent
Agent DossierGitHubSafety: 100/100

tuistory

Playwright for terminal apps. Like tmux but designed for agents — virtual terminals you can type into, press keys, wait for text, take snapshots, and screenshot as images. tuistory has **2 modes**: - **CLI** (`tuistory` command) — shell-based. Launch sessions, type, press keys, snapshot, screenshot. Runs a background daemon that persists sessions across commands. Install globally or use `npx`/`bunx`. **You MUST run `tuistory --help` before using the CLI** to see the latest commands and options. - **JS/TS API** (`import { launchTerminal } from 'tuistory'`) — programmatic. Use in vitest/bun:test to write Playwright-style tests for CLIs and TUIs with inline snapshots. Use tuistory when you need to: - Write e2e tests for CLI/TUI apps (vitest, bun:test) with inline snapshots - Automate terminal interactions (launch a REPL, debugger, or TUI and drive it) - Screenshot terminal as images to send to users (Discord bots, agent UIs like kimaki/openclaw) - Reproduce bugs in interactive CLIs by scripting the exact steps - Explore TUI apps progressively with observe-act-observe loops --- name: tuistory description: | Playwright for terminal apps. Like tmux but designed for agents — virtual terminals you can type into, press keys, wait for text, take snapshots, and screenshot as images. tuistory has **2 modes**: - **CLI** (tuistory command) — shell-based. Launch sessions, type, press keys, snapshot, screenshot. Runs a background daemon that persists sessions across commands. Install globally or us

OpenClawself-declared

Public facts

7

Change events

1

Artifacts

0

Freshness

Feb 22, 2026

Verifiededitorial-contentNo verified compatibility signals215 GitHub stars

Published capability contract available. No trust telemetry is available yet. 215 GitHub stars reported by the source. Last updated 2/24/2026.

215 GitHub starsSchema refs publishedTrust evidence available

Trust score

Unknown

Compatibility

OpenClaw

Freshness

Feb 22, 2026

Vendor

Remorses

Artifacts

0

Benchmarks

0

Last release

Unpublished

Executive Summary

Key links, install path, and a quick operational read before the deeper crawl record.

Verifiededitorial-content

Summary

Published capability contract available. No trust telemetry is available yet. 215 GitHub stars reported by the source. Last updated 2/24/2026.

Setup snapshot

git clone https://github.com/remorses/tuistory.git
  1. 1

    Setup complexity is LOW. This package is likely designed for quick installation with minimal external side-effects.

  2. 2

    Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data.

Evidence Ledger

Everything public we have scraped or crawled about this agent, grouped by evidence type with provenance.

Verifiededitorial-content
Vendor (1)

Vendor

Remorses

profilemedium
Observed Feb 24, 2026Source linkProvenance
Compatibility (2)

Protocol compatibility

OpenClaw

contractmedium
Observed Feb 24, 2026Source linkProvenance

Auth modes

api_key

contracthigh
Observed Feb 24, 2026Source linkProvenance
Artifact (1)

Machine-readable schemas

OpenAPI or schema references published

contracthigh
Observed Feb 24, 2026Source linkProvenance
Adoption (1)

Adoption signal

215 GitHub stars

profilemedium
Observed Feb 24, 2026Source linkProvenance
Security (1)

Handshake status

UNKNOWN

trustmedium
Observed unknownSource linkProvenance
Integration (1)

Crawlable docs

6 indexed pages on the official domain

search_documentmedium
Observed Apr 15, 2026Source linkProvenance

Release & Crawl Timeline

Merged public release, docs, artifact, benchmark, pricing, and trust refresh events.

Self-declaredagent-index

Artifacts Archive

Extracted files, examples, snippets, parameters, dependencies, permissions, and artifact metadata.

Self-declaredGITHUB OPENCLEW

Extracted files

0

Examples

6

Snippets

0

Languages

typescript

Parameters

Executable Examples

bash

# global
bun add -g tuistory
npm install -g tuistory

# or without installing
npx tuistory --help
bunx tuistory --help

bash

tuistory launch <command> -s <name> [--cols N] [--rows N] [--env KEY=VAL]
tuistory -s <name> snapshot --trim
tuistory -s <name> screenshot -o image.jpg --pixel-ratio 2
tuistory -s <name> type "text"
tuistory -s <name> press enter
tuistory -s <name> press ctrl c
tuistory -s <name> click "Submit"
tuistory -s <name> wait "pattern" --timeout 10000
tuistory -s <name> wait "/regex/" --timeout 10000
tuistory -s <name> scroll down 5
tuistory -s <name> resize 120 40
tuistory -s <name> close
tuistory sessions
tuistory daemon-stop

bash

tuistory -s myapp screenshot -o /tmp/terminal.jpg --pixel-ratio 2
# then upload /tmp/terminal.jpg to the user

bash

bun add tuistory    # or npm install tuistory

ts

import { launchTerminal } from 'tuistory'

const session = await launchTerminal({
  command: 'my-cli',
  args: ['--flag'],
  cols: 120,
  rows: 36,
  cwd: '/path/to/dir',
  env: { MY_VAR: 'value' },
})

// observe
const text = await session.text()               // full terminal text
const text = await session.text({ trimEnd: true }) // trimmed
const bold = await session.text({ only: { bold: true } }) // style filter

// act
await session.type('hello world')               // type character by character
await session.press('enter')                    // single key
await session.press(['ctrl', 'c'])              // key chord
await session.click('Submit')                   // click on text

// wait
await session.waitForText('Ready', { timeout: 10000 })
await session.waitForText(/Loading\.\.\./, { timeout: 5000 })

// screenshot to image
const data = session.getTerminalData()
const { renderTerminalToImage } = await import('ghostty-opentui/image')
const image = await renderTerminalToImage(data, { format: 'jpeg', devicePixelRatio: 2 })

// cleanup
session.close()

ts

import { test, expect } from 'vitest'
import { launchTerminal } from 'tuistory'

test('my CLI shows help', async () => {
  const session = await launchTerminal({
    command: 'my-cli',
    args: ['--help'],
    cols: 120,
    rows: 36,
  })

  const text = await session.text({ trimEnd: true })
  expect(text).toMatchInlineSnapshot()
  // ^ run `vitest --run -u` to fill this in, then read the file to see what it captured

  session.close()
}, 10000)

Docs & README

Full documentation captured from public sources, including the complete README when available.

Self-declaredGITHUB OPENCLEW

Docs source

GITHUB OPENCLEW

Editorial quality

ready

Playwright for terminal apps. Like tmux but designed for agents — virtual terminals you can type into, press keys, wait for text, take snapshots, and screenshot as images. tuistory has **2 modes**: - **CLI** (`tuistory` command) — shell-based. Launch sessions, type, press keys, snapshot, screenshot. Runs a background daemon that persists sessions across commands. Install globally or use `npx`/`bunx`. **You MUST run `tuistory --help` before using the CLI** to see the latest commands and options. - **JS/TS API** (`import { launchTerminal } from 'tuistory'`) — programmatic. Use in vitest/bun:test to write Playwright-style tests for CLIs and TUIs with inline snapshots. Use tuistory when you need to: - Write e2e tests for CLI/TUI apps (vitest, bun:test) with inline snapshots - Automate terminal interactions (launch a REPL, debugger, or TUI and drive it) - Screenshot terminal as images to send to users (Discord bots, agent UIs like kimaki/openclaw) - Reproduce bugs in interactive CLIs by scripting the exact steps - Explore TUI apps progressively with observe-act-observe loops --- name: tuistory description: | Playwright for terminal apps. Like tmux but designed for agents — virtual terminals you can type into, press keys, wait for text, take snapshots, and screenshot as images. tuistory has **2 modes**: - **CLI** (tuistory command) — shell-based. Launch sessions, type, press keys, snapshot, screenshot. Runs a background daemon that persists sessions across commands. Install globally or us

Full README

name: tuistory description: | Playwright for terminal apps. Like tmux but designed for agents — virtual terminals you can type into, press keys, wait for text, take snapshots, and screenshot as images.

tuistory has 2 modes:

  • CLI (tuistory command) — shell-based. Launch sessions, type, press keys, snapshot, screenshot. Runs a background daemon that persists sessions across commands. Install globally or use npx/bunx. You MUST run tuistory --help before using the CLI to see the latest commands and options.
  • JS/TS API (import { launchTerminal } from 'tuistory') — programmatic. Use in vitest/bun:test to write Playwright-style tests for CLIs and TUIs with inline snapshots.

Use tuistory when you need to:

  • Write e2e tests for CLI/TUI apps (vitest, bun:test) with inline snapshots
  • Automate terminal interactions (launch a REPL, debugger, or TUI and drive it)
  • Screenshot terminal as images to send to users (Discord bots, agent UIs like kimaki/openclaw)
  • Reproduce bugs in interactive CLIs by scripting the exact steps
  • Explore TUI apps progressively with observe-act-observe loops

tuistory

Playwright for terminal user interfaces. Write end-to-end tests for CLI and TUI applications.

tuistory has 2 modes:

  1. CLI — the tuistory shell command. Launch terminal sessions, type text, press keys, take text snapshots or image screenshots. Sessions run in a background daemon and persist across commands.
  2. JS/TS APIimport { launchTerminal } from 'tuistory'. Use programmatically in test files (vitest, bun:test) to write Playwright-style tests with inline snapshots.

CLI usage

REQUIREMENT: You MUST run tuistory --help before using the CLI. The CLI evolves and the help output is the source of truth for available commands, options, and syntax. Always check it first.

Install globally or use npx/bunx:

# global
bun add -g tuistory
npm install -g tuistory

# or without installing
npx tuistory --help
bunx tuistory --help

CLI quick reference

tuistory launch <command> -s <name> [--cols N] [--rows N] [--env KEY=VAL]
tuistory -s <name> snapshot --trim
tuistory -s <name> screenshot -o image.jpg --pixel-ratio 2
tuistory -s <name> type "text"
tuistory -s <name> press enter
tuistory -s <name> press ctrl c
tuistory -s <name> click "Submit"
tuistory -s <name> wait "pattern" --timeout 10000
tuistory -s <name> wait "/regex/" --timeout 10000
tuistory -s <name> scroll down 5
tuistory -s <name> resize 120 40
tuistory -s <name> close
tuistory sessions
tuistory daemon-stop

Always run snapshot --trim after every action to see the current terminal state.

Screenshot for agent bots

Capture terminal as an image to upload to users (Discord, Slack, web UIs). Use --pixel-ratio 2 for sharp images on social media and messaging apps:

tuistory -s myapp screenshot -o /tmp/terminal.jpg --pixel-ratio 2
# then upload /tmp/terminal.jpg to the user

JS/TS API (library)

bun add tuistory    # or npm install tuistory
import { launchTerminal } from 'tuistory'

const session = await launchTerminal({
  command: 'my-cli',
  args: ['--flag'],
  cols: 120,
  rows: 36,
  cwd: '/path/to/dir',
  env: { MY_VAR: 'value' },
})

// observe
const text = await session.text()               // full terminal text
const text = await session.text({ trimEnd: true }) // trimmed
const bold = await session.text({ only: { bold: true } }) // style filter

// act
await session.type('hello world')               // type character by character
await session.press('enter')                    // single key
await session.press(['ctrl', 'c'])              // key chord
await session.click('Submit')                   // click on text

// wait
await session.waitForText('Ready', { timeout: 10000 })
await session.waitForText(/Loading\.\.\./, { timeout: 5000 })

// screenshot to image
const data = session.getTerminalData()
const { renderTerminalToImage } = await import('ghostty-opentui/image')
const image = await renderTerminalToImage(data, { format: 'jpeg', devicePixelRatio: 2 })

// cleanup
session.close()

Writing tests with vitest

tuistory is like Playwright but for CLIs. The workflow is: observe (snapshot with inline snapshot), act (type/press/click), observe again. Build tests progressively.

Step 1: Launch and observe

Start with an empty inline snapshot. Run with --update / -u to fill it in.

import { test, expect } from 'vitest'
import { launchTerminal } from 'tuistory'

test('my CLI shows help', async () => {
  const session = await launchTerminal({
    command: 'my-cli',
    args: ['--help'],
    cols: 120,
    rows: 36,
  })

  const text = await session.text({ trimEnd: true })
  expect(text).toMatchInlineSnapshot()
  // ^ run `vitest --run -u` to fill this in, then read the file to see what it captured

  session.close()
}, 10000)

Step 2: Interact and observe again

Add actions and more snapshots incrementally:

test('bash interaction', async () => {
  const session = await launchTerminal({
    command: 'bash',
    args: ['--norc', '--noprofile'],
    cols: 60,
    rows: 10,
    env: { PS1: '$ ', HOME: '/tmp', PATH: process.env.PATH },
  })

  // observe initial state
  const initial = await session.text({ trimEnd: true })
  expect(initial).toMatchInlineSnapshot()

  // act
  await session.type('echo "hello world"')
  await session.press('enter')

  // wait + observe
  const output = await session.waitForText('hello world')
  expect(output).toMatchInlineSnapshot()

  // cleanup
  await session.type('exit')
  await session.press('enter')
  session.close()
}, 10000)

Step 3: Run with -u, read back, iterate

# fill in snapshots
vitest --run -u

# read the test file to see captured terminal output
# adjust assertions, add more interactions, repeat

This observe-act-observe loop lets you progressively explore any TUI. Each inline snapshot captures the exact terminal state, making tests readable and easy to update.

Testing a TUI app (e.g. opencode, claude)

test('opencode shows welcome', async () => {
  const session = await launchTerminal({
    command: 'opencode',
    cols: 150,
    rows: 45,
  })

  await session.waitForText('switch agent', { timeout: 15000 })
  await session.type('hello from tuistory')

  const text = await session.text({ timeout: 1000 })
  expect(text).toMatchInlineSnapshot()

  // navigate menus
  await session.press(['ctrl', 'p'])
  const commands = await session.waitForText('Commands', { timeout: 5000 })
  expect(commands).toMatchInlineSnapshot()

  await session.press('esc')
  session.close()
}, 30000)

Testing a Node.js debugger

test('node debugger inspect variables', async () => {
  const session = await launchTerminal({
    command: 'node',
    args: ['inspect', 'app.js'],
    cols: 150,
    rows: 45,
  })

  await session.waitForText('Break on start', { timeout: 10000 })
  await session.type('cont')
  await session.press('enter')
  await session.waitForText('break in', { timeout: 5000 })

  const snapshot = await session.text({ trimEnd: true })
  expect(snapshot).toMatchInlineSnapshot()

  session.close()
}, 30000)

Tips

  • Always set a timeout on waitForText for async operations
  • Use trimEnd: true in session.text() to avoid trailing whitespace in snapshots
  • Set waitForData: false for interactive commands that don't produce output immediately (like cat)
  • Use regex in waitForText for dynamic content: await session.waitForText(/version \d+/)
  • Close sessions in test teardown to avoid leaked processes
  • Use --cols and --rows to control terminal size — affects TUI layout

Contract & API

Machine endpoints, protocol fit, contract coverage, invocation examples, and guardrails for agent-to-agent use.

Verifiedcapability-contract

Contract coverage

Status

ready

Auth

api_key

Streaming

No

Data region

global

Protocol support

OpenClaw: self-declared

Requires: openclew, lang:typescript

Forbidden: none

Guardrails

Operational confidence: medium

Contract is available with explicit auth and schema references.
Trust confidence is not low and verification freshness is acceptable.
Invocation examples
curl -s "https://xpersona.co/api/v1/agents/remorses-tuistory/snapshot"
curl -s "https://xpersona.co/api/v1/agents/remorses-tuistory/contract"
curl -s "https://xpersona.co/api/v1/agents/remorses-tuistory/trust"

Reliability & Benchmarks

Trust and runtime signals, benchmark suites, failure patterns, and practical risk constraints.

Missingruntime-metrics

Trust signals

Handshake

UNKNOWN

Confidence

unknown

Attempts 30d

unknown

Fallback rate

unknown

Runtime metrics

Observed P50

unknown

Observed P95

unknown

Rate limit

unknown

Estimated cost

unknown

No benchmark suites or observed failure patterns are available.

Media & Demo

Every public screenshot, visual asset, demo link, and owner-provided destination tied to this agent.

Missingno-media
No screenshots, media assets, or demo links are available.

Related Agents

Neighboring agents from the same protocol and source ecosystem for comparison and shortlist building.

Self-declaredprotocol-neighbors
GITHUB_REPOSactivepieces

Rank

70

AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents

Traction

No public download signal

Freshness

Updated 2d ago

OPENCLAW
GITHUB_REPOScherry-studio

Rank

70

AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs

Traction

No public download signal

Freshness

Updated 5d ago

MCPOPENCLAW
GITHUB_REPOSAionUi

Rank

70

Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!

Traction

No public download signal

Freshness

Updated 6d ago

MCPOPENCLAW
GITHUB_REPOSCopilotKit

Rank

70

The Frontend for Agents & Generative UI. React + Angular

Traction

No public download signal

Freshness

Updated 23d ago

OPENCLAW
Machine Appendix

Contract JSON

{
  "contractStatus": "ready",
  "authModes": [
    "api_key"
  ],
  "requires": [
    "openclew",
    "lang:typescript"
  ],
  "forbidden": [],
  "supportsMcp": false,
  "supportsA2a": false,
  "supportsStreaming": false,
  "inputSchemaRef": "https://github.com/remorses/tuistory#input",
  "outputSchemaRef": "https://github.com/remorses/tuistory#output",
  "dataRegion": "global",
  "contractUpdatedAt": "2026-02-24T19:43:57.803Z",
  "sourceUpdatedAt": "2026-02-24T19:43:57.803Z",
  "freshnessSeconds": 4424894
}

Invocation Guide

{
  "preferredApi": {
    "snapshotUrl": "https://xpersona.co/api/v1/agents/remorses-tuistory/snapshot",
    "contractUrl": "https://xpersona.co/api/v1/agents/remorses-tuistory/contract",
    "trustUrl": "https://xpersona.co/api/v1/agents/remorses-tuistory/trust"
  },
  "curlExamples": [
    "curl -s \"https://xpersona.co/api/v1/agents/remorses-tuistory/snapshot\"",
    "curl -s \"https://xpersona.co/api/v1/agents/remorses-tuistory/contract\"",
    "curl -s \"https://xpersona.co/api/v1/agents/remorses-tuistory/trust\""
  ],
  "jsonRequestTemplate": {
    "query": "summarize this repo",
    "constraints": {
      "maxLatencyMs": 2000,
      "protocolPreference": [
        "OPENCLEW"
      ]
    }
  },
  "jsonResponseTemplate": {
    "ok": true,
    "result": {
      "summary": "...",
      "confidence": 0.9
    },
    "meta": {
      "source": "GITHUB_OPENCLEW",
      "generatedAt": "2026-04-17T00:52:12.010Z"
    }
  },
  "retryPolicy": {
    "maxAttempts": 3,
    "backoffMs": [
      500,
      1500,
      3500
    ],
    "retryableConditions": [
      "HTTP_429",
      "HTTP_503",
      "NETWORK_TIMEOUT"
    ]
  }
}

Trust JSON

{
  "status": "unavailable",
  "handshakeStatus": "UNKNOWN",
  "verificationFreshnessHours": null,
  "reputationScore": null,
  "p95LatencyMs": null,
  "successRate30d": null,
  "fallbackRate": null,
  "attempts30d": null,
  "trustUpdatedAt": null,
  "trustConfidence": "unknown",
  "sourceUpdatedAt": null,
  "freshnessSeconds": null
}

Capability Matrix

{
  "rows": [
    {
      "key": "OPENCLEW",
      "type": "protocol",
      "support": "unknown",
      "confidenceSource": "profile",
      "notes": "Listed on profile"
    }
  ],
  "flattenedTokens": "protocol:OPENCLEW|unknown|profile"
}

Facts JSON

[
  {
    "factKey": "docs_crawl",
    "category": "integration",
    "label": "Crawlable docs",
    "value": "6 indexed pages on the official domain",
    "href": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
    "sourceUrl": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
    "sourceType": "search_document",
    "confidence": "medium",
    "observedAt": "2026-04-15T05:03:46.393Z",
    "isPublic": true
  },
  {
    "factKey": "protocols",
    "category": "compatibility",
    "label": "Protocol compatibility",
    "value": "OpenClaw",
    "href": "https://xpersona.co/api/v1/agents/remorses-tuistory/contract",
    "sourceUrl": "https://xpersona.co/api/v1/agents/remorses-tuistory/contract",
    "sourceType": "contract",
    "confidence": "medium",
    "observedAt": "2026-02-24T19:43:57.803Z",
    "isPublic": true
  },
  {
    "factKey": "auth_modes",
    "category": "compatibility",
    "label": "Auth modes",
    "value": "api_key",
    "href": "https://xpersona.co/api/v1/agents/remorses-tuistory/contract",
    "sourceUrl": "https://xpersona.co/api/v1/agents/remorses-tuistory/contract",
    "sourceType": "contract",
    "confidence": "high",
    "observedAt": "2026-02-24T19:43:57.803Z",
    "isPublic": true
  },
  {
    "factKey": "schema_refs",
    "category": "artifact",
    "label": "Machine-readable schemas",
    "value": "OpenAPI or schema references published",
    "href": "https://github.com/remorses/tuistory#input",
    "sourceUrl": "https://xpersona.co/api/v1/agents/remorses-tuistory/contract",
    "sourceType": "contract",
    "confidence": "high",
    "observedAt": "2026-02-24T19:43:57.803Z",
    "isPublic": true
  },
  {
    "factKey": "vendor",
    "category": "vendor",
    "label": "Vendor",
    "value": "Remorses",
    "href": "https://github.com/remorses/tuistory",
    "sourceUrl": "https://github.com/remorses/tuistory",
    "sourceType": "profile",
    "confidence": "medium",
    "observedAt": "2026-02-24T19:43:14.176Z",
    "isPublic": true
  },
  {
    "factKey": "traction",
    "category": "adoption",
    "label": "Adoption signal",
    "value": "215 GitHub stars",
    "href": "https://github.com/remorses/tuistory",
    "sourceUrl": "https://github.com/remorses/tuistory",
    "sourceType": "profile",
    "confidence": "medium",
    "observedAt": "2026-02-24T19:43:14.176Z",
    "isPublic": true
  },
  {
    "factKey": "handshake_status",
    "category": "security",
    "label": "Handshake status",
    "value": "UNKNOWN",
    "href": "https://xpersona.co/api/v1/agents/remorses-tuistory/trust",
    "sourceUrl": "https://xpersona.co/api/v1/agents/remorses-tuistory/trust",
    "sourceType": "trust",
    "confidence": "medium",
    "observedAt": null,
    "isPublic": true
  }
]

Change Events JSON

[
  {
    "eventType": "docs_update",
    "title": "Docs refreshed: Sign in to GitHub · GitHub",
    "description": "Fresh crawlable documentation was indexed for the official domain.",
    "href": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
    "sourceUrl": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
    "sourceType": "search_document",
    "confidence": "medium",
    "observedAt": "2026-04-15T05:03:46.393Z",
    "isPublic": true
  }
]

Sponsored

Ads related to tuistory and adjacent AI workflows.