Agent skill

AI SDK Development

by trypostit in trypostit/trypost

TRIGGER when working with ai-sdk which is Laravel official first-party AI SDK.

MITAuto-check passedAI & LLM Engineering

Install AI SDK Development

skills CLI
$ npx skills add trypostit/trypost --skill ai-sdk-development -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install trypostit/trypost ai-sdk-development --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/trypostit/trypost.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/ai-sdk-development .claude/skills/ai-sdk-development && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
ai-sdk-development
GitHub stars
676
Used in
2 other repos
Token cost
~3.5k tokens
SKILL.md length
568 words
Files
1
Skills in repo
3
Repo updated
First seen
Licence
MIT

At a glance

TRIGGER when working with ai-sdk which is Laravel official first-party AI SDK.

  • Working with ai-sdk which is Laravel official first-party AI SDK
  • SKILL.md covers Searching the Documentation, Decision Workflow, Basic Usage Examples and Agent Configuration, plus 5 more sections
  • Calls php and composer
  • References ai-sdk

What it does

AI SDK Development is an agent skill from trypostit/trypost. TRIGGER when working with ai-sdk which is Laravel official first-party AI SDK. Activate when building, editing AI agents, chatbots, text generation, image generation, audio/TTS, transcription/STT, embeddings, RAG, vector stores, reranking, structured output, streaming, conversation memory, tools, queueing, broadcasting, and provider failover across OpenAI, Anthropic, Gemini, Azure, Groq, xAI, DeepSeek, Mistral, Ollama, ElevenLabs, Cohere, Jina, and VoyageAI. Invoke when the user references ai-sdk, the Laravel\Ai\…

Its SKILL.md is about 3.5k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in AI & LLM Engineering, covering Backend development, Retrieval-augmented generation and Text to speech and voice. It works with Vercel AI SDK, Laravel, DeepSeek and ElevenLabs. The repository describes itself as: Open-source Social Media Scheduling. The licence is MIT.

When your agent uses it

  • Working with ai-sdk which is Laravel official first-party AI SDK
  • References ai-sdk
  • The Laravel\Ai\ namespace
  • This projects AI features — not for other AI packages used directly

Example prompts

  • “/ai-sdk-development”

Requirements

  • A credential in MY_LLM_API_KEY

What it can do on your machine

Read from SKILL.md and the folder at commit f9fc951. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • php
    • composer

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

AI SDK Development loads about 3.5k tokens when it runs. Until then it costs about 156 tokens; SKILL.md has 568 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~156
When it runs · the whole SKILL.md, loaded when a task matches
~3.5k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from trypostit/trypost at commit f9fc951, republished under its MIT licence (© trypostit). 568 words, ~3,471 tokens.

Download SKILL.mdSave it as .claude/skills/ai-sdk-development/SKILL.md (or your agent's skills folder).
name
ai-sdk-development
description
TRIGGER when working with ai-sdk which is Laravel official first-party AI SDK. Activate when building, editing AI agents, chatbots, text generation, image generation, audio/TTS, transcription/STT, embeddings, RAG, vector stores, reranking, structured output, streaming, conversation memory, tools, queueing, broadcasting, and provider failover across OpenAI, Anthropic, Gemini, Azure, Groq, xAI, DeepSeek, Mistral, Ollama, ElevenLabs, Cohere, Jina, and VoyageAI. Invoke when the user references ai-sdk, the `Laravel\Ai\` namespace, or this project's AI features — not for other AI packages used directly.
license
MIT
metadata.author
laravel

Developing with the Laravel AI SDK

The Laravel AI SDK (laravel/ai) is the official AI package for Laravel, providing a unified API for agents, images, audio, transcription, embeddings, reranking, vector stores, and file management across multiple AI providers.

Searching the Documentation

This package is new. Always search the documentation before implementing any feature. Never guess at APIs — the documentation is the single source of truth.

  • Use broad, simple queries that match the documentation section headings below.
  • Do not add package names to queries — package information is shared automatically. Use test agent fake, not laravel ai test agent fake.
  • Run multiple queries at once — the most relevant results are returned first.
Documentation Sections

Use these section headings as query terms for accurate results:

  • Introduction, Installation, Configuration, Provider Support
  • Agents: Prompting, Conversation Context, Structured Output, Attachments, Streaming, Broadcasting, Queueing, Tools, Provider Tools, Middleware, Anonymous Agents, Agent Configuration
  • Images
  • Audio (TTS)
  • Transcription (STT)
  • Embeddings: Querying Embeddings, Caching Embeddings
  • Reranking
  • Files
  • Vector Stores: Adding Files to Stores
  • Failover
  • Testing: Agents, Images, Audio, Transcriptions, Embeddings, Reranking, Files, Vector Stores
  • Events

Decision Workflow

Determine the right entry point before writing code:

Text generation or chat? → Agent class with Promptable trait Chat with conversation history? → Agent + Conversational interface (manual) or RemembersConversations trait (automatic) Structured JSON output? → Agent + HasStructuredOutput interface Image generation? → Image::of()->generate() Audio synthesis? → Audio::of()->generate() Transcription? → Transcription::fromPath()->generate() Embeddings? → Embeddings::for()->generate() Reranking? → Reranking::of()->rerank() File storage? → Document::fromPath()->put() Vector stores? → Stores::create()

Basic Usage Examples

Agents
php
use Laravel\Ai\Contracts\Agent;
use Laravel\Ai\Enums\Lab;
use Laravel\Ai\Promptable;

class SalesCoach implements Agent
{
    use Promptable;

    public function instructions(): string
    {
        return 'You are a sales coach.';
    }
}

// Prompting
$response = (new SalesCoach)->prompt('Analyze this transcript...');
echo $response->text;

// Container resolution with dependency injection
$agent = SalesCoach::make(user: $user);

// Override provider, model, or timeout per-prompt
$response = (new SalesCoach)->prompt(
    'Analyze this transcript...',
    provider: Lab::Anthropic,
    model: 'claude-haiku-4-5-20251001',
    timeout: 120,
);

// Streaming (returns SSE response from a route)
return (new SalesCoach)->stream('Analyze this transcript...');

// Queueing
(new SalesCoach)->queue('Analyze this transcript...')
    ->then(fn ($response) => /* ... */);

// Anonymous agents
use function Laravel\Ai\{agent};

$response = agent(instructions: 'You are a helpful assistant.')->prompt('Hello');
Conversation Context

Manual conversation history via the Conversational interface:

php
use Laravel\Ai\Contracts\Agent;
use Laravel\Ai\Contracts\Conversational;
use Laravel\Ai\Messages\Message;
use Laravel\Ai\Promptable;

class SalesCoach implements Agent, Conversational
{
    use Promptable;

    public function __construct(public User $user) {}

    public function instructions(): string { return 'You are a sales coach.'; }

    public function messages(): iterable
    {
        return History::where('user_id', $this->user->id)
            ->latest()->limit(50)->get()->reverse()
            ->map(fn ($m) => new Message($m->role, $m->content))
            ->all();
    }
}

Automatic conversation persistence via the RemembersConversations trait:

php
use Laravel\Ai\Concerns\RemembersConversations;
use Laravel\Ai\Contracts\Agent;
use Laravel\Ai\Contracts\Conversational;
use Laravel\Ai\Promptable;

class SalesCoach implements Agent, Conversational
{
    use Promptable, RemembersConversations;

    public function instructions(): string { return 'You are a sales coach.'; }
}

// Start a new conversation
$response = (new SalesCoach)->forUser($user)->prompt('Hello!');
$conversationId = $response->conversationId;

// Continue an existing conversation
$response = (new SalesCoach)->continue($conversationId, as: $user)->prompt('Tell me more.');
Structured Output
php
use Illuminate\Contracts\JsonSchema\JsonSchema;
use Laravel\Ai\Contracts\Agent;
use Laravel\Ai\Contracts\HasStructuredOutput;
use Laravel\Ai\Promptable;

class Reviewer implements Agent, HasStructuredOutput
{
    use Promptable;

    public function instructions(): string { return 'Review and score content.'; }

    public function schema(JsonSchema $schema): array
    {
        return [
            'feedback' => $schema->string()->required(),
            'score' => $schema->integer()->min(1)->max(10)->required(),
        ];
    }
}

$response = (new Reviewer)->prompt('Review this...');
echo $response['score']; // Access like an array
Images
php
use Laravel\Ai\Image;

$image = Image::of('A sunset over mountains')
    ->landscape()
    ->quality('high')
    ->generate();

$path = $image->store(); // Store to default disk
Audio
php
use Laravel\Ai\Audio;

$audio = Audio::of('Hello from Laravel.')
    ->female()
    ->instructions('Speak warmly')
    ->generate();

$path = $audio->store();
Transcription
php
use Laravel\Ai\Transcription;

$transcript = Transcription::fromStorage('audio.mp3')
    ->diarize()
    ->generate();

echo (string) $transcript;
Embeddings
php
use Laravel\Ai\Embeddings;
use Illuminate\Support\Str;

$response = Embeddings::for(['Text one', 'Text two'])
    ->dimensions(1536)
    ->cache()
    ->generate();

// Single string via Stringable
$embedding = Str::of('Napa Valley has great wine.')->toEmbeddings();
Reranking
php
use Laravel\Ai\Reranking;

$response = Reranking::of(['Django is Python.', 'Laravel is PHP.', 'React is JS.'])
    ->limit(5)
    ->rerank('PHP frameworks');

$response->first()->document; // "Laravel is PHP."
Files and Vector Stores
php
use Laravel\Ai\Files\Document;
use Laravel\Ai\Stores;

// Store a file with the provider
$file = Document::fromPath('/path/to/doc.pdf')->put();

// Create a vector store and add files
$store = Stores::create('Knowledge Base');
$store->add($file->id);
$store->add(Document::fromStorage('manual.pdf')); // Store + add in one step

Agent Configuration

PHP Attributes
php
use Laravel\Ai\Attributes\{Provider, Model, MaxSteps, MaxTokens, Temperature, Timeout};
use Laravel\Ai\Enums\Lab;

#[Provider(Lab::Anthropic)]
#[Model('claude-haiku-4-5-20251001')]
#[MaxSteps(10)]
#[MaxTokens(4096)]
#[Temperature(0.7)]
#[Timeout(120)]
class MyAgent implements Agent
{
    use Promptable;
    // ...
}

The #[UseCheapestModel] and #[UseSmartestModel] attributes are also available for automatic model selection.

The #[WithoutBroadcasting] attribute stops the given stream event types from broadcasting (e.g. data-heavy ToolResult payloads that exceed the WebSocket frame limit). The events are still streamed and persisted; they just never hit the channel:

php
use Laravel\Ai\Attributes\WithoutBroadcasting;
use Laravel\Ai\Streaming\Events\{ToolCall, ToolResult};

#[WithoutBroadcasting(ToolResult::class, ToolCall::class)]
class SearchAgent implements Agent, HasTools
{
    use Promptable;
    // ...
}
Tools

Implement the HasTools interface and scaffold tools with php artisan make:tool:

php
use Laravel\Ai\Contracts\HasTools;

class MyAgent implements Agent, HasTools
{
    use Promptable;

    public function tools(): iterable
    {
        return [new MyCustomTool];
    }
}
Provider Tools
php
use Laravel\Ai\Providers\Tools\{WebSearch, WebFetch, FileSearch};

public function tools(): iterable
{
    return [
        (new WebSearch)->max(5)->allow(['laravel.com']),
        new WebFetch,
        new FileSearch(stores: ['store_id']),
    ];
}
Conversation Memory
php
use Laravel\Ai\Concerns\RemembersConversations;
use Laravel\Ai\Contracts\Conversational;

class ChatBot implements Agent, Conversational
{
    use Promptable, RemembersConversations;
    // ...
}

$response = (new ChatBot)->forUser($user)->prompt('Hello!');
$response = (new ChatBot)->continue($conversationId, as: $user)->prompt('More...');
Failover
php
$response = (new MyAgent)->prompt('Hello', provider: [Lab::OpenAI, Lab::Anthropic]);

Testing and Faking

Each capability supports fake() with assertions:

php
use App\Ai\Agents\SalesCoach;
use Laravel\Ai\{Image, Audio, Transcription, Embeddings, Reranking, Files, Stores};

// Agents
SalesCoach::fake(['Response 1', 'Response 2']);
SalesCoach::assertPrompted('query');
SalesCoach::assertNotPrompted('query');
SalesCoach::assertNeverPrompted();
SalesCoach::fake()->preventStrayPrompts();

// Images
Image::fake();
Image::assertGenerated(fn ($prompt) => $prompt->contains('sunset'));
Image::assertNothingGenerated();

// Audio
Audio::fake();
Audio::assertGenerated(fn ($prompt) => $prompt->contains('Hello'));

// Transcription
Transcription::fake(['Transcribed text.']);
Transcription::assertGenerated(fn ($prompt) => $prompt->isDiarized());

// Embeddings
Embeddings::fake();
Embeddings::assertGenerated(fn ($prompt) => $prompt->contains('Laravel'));

// Reranking
Reranking::fake();
Reranking::assertReranked(fn ($prompt) => $prompt->contains('PHP'));

// Files
Files::fake();
Files::assertStored(fn ($file) => $file->mimeType() === 'text/plain');

// Stores
Stores::fake();
Stores::assertCreated('Knowledge Base');
$store = Stores::get('id');
$store->assertAdded('file_id');
Show full SKILL.md (231 more words)Show less

Key Patterns

  • Namespace: Laravel\Ai\
  • Package: composer require laravel/ai
  • Agent pattern: Implement the Agent interface and use the Promptable trait
  • Optional interfaces: HasTools, HasMiddleware, HasStructuredOutput, Conversational
  • Entry-point classes: Image, Audio, Transcription, Embeddings, Reranking, Stores
  • Provider enum: Laravel\Ai\Enums\Lab (prefer over plain strings)
  • Artisan commands: php artisan make:agent, php artisan make:tool
  • Global helper: agent() for anonymous agents

OpenAI-Compatible Provider

Point the SDK at any OpenAI-compatible endpoint (LM Studio, vLLM, Together, etc.) with the config-driven openai-compatible driver. Define named instances in config/ai.php, no code required:

php
'my-llm' => [
    'driver' => 'openai-compatible',
    'url' => env('MY_LLM_URL'),        // required
    'key' => env('MY_LLM_API_KEY'),    // optional Bearer token
    'models' => [
        'text' => ['default' => 'some-chat-model'],
        'embeddings' => [
            'default' => 'some-embedding-model',
            'dimensions' => 1024, // optional; omit to use native dimensions
        ],
    ],
],

Reference it by config key (or Lab::OpenAiCompatible). A model is required via the corresponding models configuration or per-call model::

php
agent()->prompt('Hello', provider: 'my-llm', model: 'some-model');

Embeddings::for(['Hello'])->generate(
    provider: 'my-llm',
    model: 'some-embedding-model',
);

It uses OpenAI-standard shapes and supports text, streaming, tools, structured output, image attachments, and text embeddings. Embedding dimensions are optional; omit them to use the model's native dimensions. For extra request-body fields, implement HasProviderOptions — the returned array is merged into the body.

Common Pitfalls

Wrong Namespace

The namespace is Laravel\Ai, not Illuminate\Ai or Laravel\AI.

php
// Correct
use Laravel\Ai\Image;
use Laravel\Ai\Contracts\Agent;
use Laravel\Ai\Promptable;

// Wrong — these do not exist
use Illuminate\Ai\Image;
use Laravel\AI\Agent;
Unsupported Provider Capability

Calling a capability not supported by a provider throws a LogicException. Refer to the provider support table below.

Provider Support

FeatureProviders
TextOpenAI, Anthropic, Gemini, Azure, Groq, xAI, DeepSeek, Mistral, Ollama, OpenRouter, OpenAI-compatible
ImagesOpenAI, Gemini, xAI
TTSOpenAI, ElevenLabs
STTOpenAI, ElevenLabs, Mistral
EmbeddingsOpenAI, OpenAI-compatible, Gemini, Azure, Cohere, Mistral, Jina, VoyageAI
RerankingCohere, Jina
FilesOpenAI, Anthropic, Gemini

Use the Laravel\Ai\Enums\Lab enum to reference providers in code instead of plain strings:

php
use Laravel\Ai\Enums\Lab;

Lab::Anthropic;
Lab::OpenAI;
Lab::Gemini;
Lab::OpenAiCompatible; // configurable OpenAI-compatible endpoint
// ...

© trypostit, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .agents/skills/ai-sdk-development of trypostit/trypost.

Open the folder on GitHubat commit f9fc951

Used in 2 other repositories

We found 10 copies of this SKILL.md (exact, near-identical or edited) in other folders, from 2 other GitHub owners. This page covers the copy in trypostit/trypost, which our catalogue first saw on October 7, 2026.

Compare with similar skills

AI SDK Development next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

AI SDK Development compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
AI SDK Development this skilltrypostit/trypost6762 repos~3.5kAutomated safety check: PassMIT
Spring AI Integrationrrezartprebreza/spring-boot-skills2961 repos~2.5kAutomated safety check: PassMIT
Keiroutermydisha/keirouter147—~995Automated safety check: PassMIT
Sap AI Coresecondsky/sap-skills460—~3.3kAutomated safety check: PassGPL-3.0
Spring AI Integrationrrezartprebreza/spring-boot-skills2961 repos~2.1kAutomated safety check: PassMIT
Ax AIdosco/aithy107—~8.2kAutomated safety check: PassApache-2.0

Similar skills

  • Spring AI Integration

    rrezartprebreza/spring-boot-skills

    A skill your agent uses when integrating LLMs, chat clients, embeddings, RAG pipelines, or AI agents into Spring Boot.

    296 GitHub starsUsed in 1 repo~2.5k tokens
    AI & LLM EngineeringAuto-check passed
  • Keirouter

    mydisha/keirouter

    Entry point for KeiRouter — local/remote AI gateway with OpenAI-compatible REST for chat, image, TTS, embeddings, web search, web fetch.

    147 GitHub stars~995 tokensUpdated 26 days ago
    AI & LLM EngineeringAuto-check passed
  • Sap AI Core

    secondsky/sap-skills

    Guides development with SAP AI Core and SAP AI Launchpad for enterprise AI/ML workloads on SAP BTP.

    460 GitHub stars~3.3k tokensUpdated 2 days ago
    AI & LLM EngineeringAuto-check passed
  • Spring AI Integration

    rrezartprebreza/spring-boot-skills

    A skill your agent uses when integrating LLMs, chat clients, embeddings, RAG pipelines, or AI agents into Spring Boot.

    296 GitHub starsUsed in 1 repo~2.1k tokens
    AI & LLM EngineeringAuto-check passed
  • Ax AI

    dosco/aithy

    This skill helps an LLM generate correct AI provider setup and configuration code using @ax-llm/ax.

    107 GitHub stars~8.2k tokensUpdated 1 mo ago
    AI & LLM EngineeringAuto-check passed
  • Xsai

    moeru-ai/airi

    A skill your agent uses when the user is building with xsai or any @xsai/ package, or is evaluating xsAI for a small OpenAI-compatible workflow with text generation, streaming, tool calling…

    50k GitHub starsUsed in 1 repo~1.3k tokens
    AI & LLM EngineeringAuto-check passed

More from trypostit/trypost

  • Configure Nightwatch

    trypostit/trypost

    Configures Laravel Nightwatch data collection, sampling rates, filtering rules, and redaction policies.

    676 GitHub stars~2.7k tokensUpdated today
    Auto-check passed
  • Passport Development

    trypostit/trypost

    Develops OAuth2 API authentication with Laravel Passport. An agent skill from trypostit/trypost.

    676 GitHub stars~1.9k tokensUpdated today
    Auto-check passed

Questions about AI SDK Development

What does AI SDK Development do?

TRIGGER when working with ai-sdk which is Laravel official first-party AI SDK. AI SDK Development is an agent skill from trypostit/trypost. TRIGGER when working with ai-sdk which is Laravel official first-party AI SDK.

When should I use AI SDK Development?

AI SDK Development fits situations like: working with ai-sdk which is Laravel official first-party AI SDK; references ai-sdk; the Laravel\Ai\ namespace; this projects AI features — not for other AI packages used directly.

How do I install AI SDK Development in Claude Code?

Run `npx skills add trypostit/trypost --skill ai-sdk-development -a claude-code`. Or copy the skill folder (.agents/skills/ai-sdk-development in trypostit/trypost) into .claude/skills/ai-sdk-development in your project. Claude Code loads it when a task matches its description.

How do I install AI SDK Development in Codex?

Run `npx skills add trypostit/trypost --skill ai-sdk-development -a codex`. Or copy the skill folder (.agents/skills/ai-sdk-development in trypostit/trypost) into .agents/skills/ai-sdk-development in your project. Codex loads it when a task matches its description.

Can I use AI SDK Development in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add trypostit/trypost --skill ai-sdk-development -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/ai-sdk-development, .gemini/skills/ai-sdk-development, .github/skills/ai-sdk-development and .opencode/skills/ai-sdk-development in your project.

What does AI SDK Development need to run?

Going by SKILL.md and its folder, AI SDK Development needs the command-line tools its instructions call (php and composer). Our summary lists: A credential in MY_LLM_API_KEY.

Does AI SDK Development access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is AI SDK Development safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does AI SDK Development use?

AI SDK Development is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does AI SDK Development use?

About 3.5k tokens (SKILL.md is roughly 14k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to AI SDK Development?

Skills that share tags, products or a category with AI SDK Development: Spring AI Integration (rrezartprebreza/spring-boot-skills, 296 stars), Keirouter (mydisha/keirouter, 147 stars), Sap AI Core (secondsky/sap-skills, 460 stars) and Spring AI Integration (rrezartprebreza/spring-boot-skills, 296 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains AI SDK Development?

trypostit (a GitHub organization) maintains it in trypostit/trypost, which has 676 GitHub stars. The repository holds 3 skills in this directory. The repository was last updated on October 7, 2026.

Source: trypostit/trypost on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.