关键信息:整个 session 不是单一模型完成,需要按模型分段归因
本 session 的 model_change 事件(提取自 pi-session-redacted.jsonl):
| # | CST 时间 | Provider/Model | 备注 |
|---|---|---|---|
| 1 | 2026-05-05 01:36:26 | zenmux-anthropic / claude-opus-4.7 |
会话开始 |
| 2 | 01:36 ~ 02:00 (~24min) | 同上 | 前期文档处理 / tmux 排查 / LSP 讨论 |
| // ==UserScript== | |
| // @name Block Ad Elements on Twitter/X | |
| // @namespace http://tampermonkey.net/ | |
| // @version 1.1 | |
| // @description Block parent elements containing the word "Ad" and monitor dynamic content changes | |
| // @author You | |
| // @match https://twitter.com/i/litst* | |
| // @match https://x.com/i/lists/* | |
| // @match https://x.com/home | |
| // @match https://x.com/*/status |
| #!/usr/bin/env -S uv run --script | |
| # /// script | |
| # requires-python = ">=3.12" | |
| # dependencies = ["llm", "llm-gemini", "httpx[socks]", "markdownify"] | |
| # /// | |
| import sys | |
| import os | |
| import llm | |
| import markdownify |
| #! /usr/bin/env -S uv run | |
| # /// script | |
| # requires-python = "==3.11" | |
| # dependencies = ["opencv-python", "ultralytics"] | |
| # /// | |
| """ | |
| $ pip install opencv-python ultralytics | |
| $ python test_camera.py |
| #! /usr/bin/env -S uv run | |
| # /// script | |
| # requires-python = "==3.11.*" | |
| # dependencies = ["RealtimeSTT==0.3.92", "open-interpreter"] | |
| # /// | |
| """ | |
| # quickstart | |
| $ DEEPSEEK_API_KEY=(pass deepseek_api) uv run soulseek.py | |
| """ |
| #!/usr/bin/env xcrun -sdk macosx swift | |
| // import Foundation | |
| import SwiftUI | |
| import AppKit | |
| /** | |
| Minimal UI for ollama | |
| ## Dev: |
| #!/usr/bin/env bash | |
| # brew install choose-gui pass pass-otp fd | |
| # https://github.com/chipsenkbeil/choose?tab=readme-ov-file#open-apps-from-the-applications-directories | |
| # bindkey with .skhdrc | |
| # ctrl + alt + shift + cmd - r : app-choose.sh | |
| shopt -s nullglob globstar |
| #!/usr/bin/env python3 | |
| import json | |
| # import sys | |
| import logging | |
| import os | |
| import pathlib | |
| import subprocess | |
| import time |
| local function get_visual_selection() | |
| local s_start = vim.fn.getpos("'<") | |
| local s_end = vim.fn.getpos("'>") | |
| local n_lines = math.abs(s_end[2] - s_start[2]) + 1 | |
| local lines = vim.api.nvim_buf_get_lines(0, s_start[2] - 1, s_end[2], false) | |
| lines[1] = string.sub(lines[1], s_start[3], -1) | |
| if n_lines == 1 then | |
| lines[n_lines] = string.sub(lines[n_lines], 1, s_end[3] - s_start[3] + 1) | |
| else | |
| lines[n_lines] = string.sub(lines[n_lines], 1, s_end[3]) |
| #! /usr/bin/env -S uv run | |
| # /// script | |
| # requires-python = ">=3.10" | |
| # dependencies = ["yt-dlp", "mlx-whisper"] | |
| # /// | |
| import yt_dlp | |
| import mlx_whisper |