Agent-Native Calendar
Agent-Native Google Calendar - manage events, sync, and public booking
作者による説明(英語の原文)
Draws UI wireframes from a small text language: multi-screen boards with notes and flow arrows.
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
ウェブ、デスクトップ、モバイルのClaudeで使えます:
https://tsquare.dev/mcpターミナルでこれを実行します
claude mcp add --transport http tsquare https://tsquare.dev/mcpプロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"tsquare": {
"url": "https://tsquare.dev/mcp"
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"tsquare": {
"type": "http",
"url": "https://tsquare.dev/mcp"
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
ChatGPTがつなげるのは、インターネット上のサーバーだけです:
https://tsquare.dev/mcpメニューの名前は、プランや時期によって少し違うことがあります。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
ツールの名前と説明は、サーバーが2026年11月6日に返したそのままの内容です。書いたのは作者で、私たちではありません。プレーンテキストとして表示しています。
wireframe_guideHow to write a tsquare wireframe: the text format, the rules, a worked example and every component with its props. Call it once before writing your first wireframe.
render_wireframeCheck tsquare wireframe text and render it. Returns a PNG of the board so you can see it, or the problems by line number (with the valid options) if the text isn't valid. Fix every problem and call it again.
share_wireframeLinks for valid tsquare wireframe text, the same kinds as the playground's Copy link menu: a share link to edit it in the playground, image links (SVG, PNG), Markdown and HTML. Ask only for the links the user needs (default: an SVG image link and the share link). Each link contai
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月6日にチェック
レジストリ名はドメイン tsquare.dev で確認済みです(レジストリがドメインの所有を確認しています)
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
394ミリ秒で応答(HTTP 200)
サインイン不要
3件のツールの説明を読み、AIへの隠れた指示は見つかりませんでした
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック3項目のうち3項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。
作者のクラウドで動きます。インストール不要でインターネット経由でつながりますが、送った内容は作者のサーバーを通ります。
GitHubリポジトリの最終更新は–、最新バージョン(0.14.2)がレジストリに届いたのは3 日前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。URLでつながるので、リモートMCPサーバーに対応したアプリ(開発者モードのChatGPTなど)でも使えます。
同じカテゴリには:Agent-Native Calendar, Excel MCP Server, MCP Server for Excel
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
Agent-Native Google Calendar - manage events, sync, and public booking
Create and edit Excel files with AI: charts, PivotTables, formulas. No Excel needed.
Excel automation for AI - Sheets, Power Query, DAX, VBA, Tables, Ranges and more. Windows only.
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
Wireframes in plain text: easy for LLMs to write, fast to render as SVG or PNG. A small text language for low-fidelity screens, with several devices side by side and notes beside them. Built for LLMs to write: the prompt comes from the component catalog, and errors come back with line numbers so a model can fix its own output.
board "Login"
screen phone "Sign in" heading "Welcome back" input "Email" placeholder="you@example.com" input password "Password" checkbox "Remember me" checked button primary "Sign in" fullWidth
Save that as login.tsq, then:
npx tsquare render login.tsq -o login.png --scale 2
Requires Node 20 or newer. To work on tsquare itself, clone the repo, run npm install, and use npm run render -- examples/notes-mobile.tsq -o notes.png --scale 2.
Getting started · The language · Components · Icons · Colors · Using it with AI
Online at tsquare.dev/playground, or locally:
npx tsquare playground # http://localhost:4321
The local playground uses the same renderer as the CLI; its links point to tsquare.dev. In this repo, npm run playground runs it from source.
A wireframe can be embedded anywhere an image works (Notion, GitHub, docs sites) with a link that contains the wireframe itself:

The playground's Copy link menu makes these; Embedding has the steps for Notion, GitHub and your own site. The text is compressed into the URL, not encrypted, so anyone with the link can read it; see privacy. encodeWireframe and decodeWireframe in the library produce and read the same links.
With AI
In your docs
remark-tsquare draws ```tsquare code blocks when the site is built.markdown-it-tsquare, the same for sites built on markdown-it.In your app
@tsquare-js/react shows boards, a zoomable viewer, an editor and a playground, including boards in a model's reply while it's still streaming in.In your editor and notes
.tsq files a live preview, problems as you type, highlighting and autocomplete. Also on Open VSX. ```tsquare code blocks in your notes, on desktop and mobile. See the Obsidian page.One element per line; children are indented two spaces under their parent. The first line is the board.
| You write | It means |
|---|---|
button "Sign in" | a quoted string sets the main text (label, title, text…) |
button primary lg | bare words set options: phone, desktop, primary, ghost, row, sm, left, bottom, password… |
checkbox checked, toggle off | a prop name turns a boolean on; off / unchecked / no- turn it off |
stack width=240 gap=8 | key=value sets any prop |
tabs items=[All notes, Pinned] | lists in [ ], items separated by commas; an item can contain spaces |
data=[["$1,200", "Smith, J"]] | quote an item that contains a comma (\" for a quote inside quotes) |
tabbar items=[{label=Home icon=home}] | objects in { } |
# note to self | a comment, on its own line only; elsewhere # is text ([#1001, #1002]) |
If a bare word could mean two props (for example start, which is both an align and a justify value), write it as key=value. Code fences ( ``` ) are ignored, so a model's reply can be rendered as-is.
Structure
Wireframes are grayscale. There are three deliberate exceptions in the UI itself:
| You write | It colors |
|---|---|
board "App" accent=blue | primary buttons, solid badges, checked checkboxes and radios, toggles that are on, the active tab and tab-bar item, ghost button text |
badge "Failed" tone=danger | one badge: success, warning or danger |
input "Email" error helper="Required" | the field's border and helper text, in red |
accent takes blue, indigo, violet, pink, red, orange, green or teal, or a hex color like #1a73e8. With a light hex color, text on it switches to dark and accent-colored text is darkened so it stays readable. There are no other UI color props, on purpose.
Sticky notes beside the wireframe have their own colors, since they're annotations rather than part of the UI: note "TBD" color=pink (yellow is the default, plus blue, pink and green). See Colors for more.
| Group | Components |
|---|---|
| Canvas | board, screen (phone 390×844, tablet 820×1180, desktop 1280×800, custom), note |
| Layout | stack, grid, card, divider, spacer |
| Content | heading, text (lines=3 draws placeholder lines), image (X-box placeholder), icon (any Lucide name or a brand logo such as brand-google, see Icons), avatar, badge |
| Controls | button, input (multiline=4 for a textarea), checkbox, radio, toggle, select |
| Navigation & data | navbar, tabbar, tabs, list, listitem, table |
| Overlays | modal, drawer (left, right, bottom sheet) |
Each component has its own page with a rendered example and its props: see Components.
tsquare render <file.tsq|-> [-o out.svg|out.png] [--scale 2]
tsquare check # problems by line number tsquare fmt [-w] # canonical formatting (drops comments) tsquare prompt # system prompt for models tsquare playground [--port 4321] # live editor, component reference, prompt
Run them with npx tsquare … (nothing to install), or install the tsquare command with npm install -g tsquare. Use - to read from stdin. In this repo, run them through npm: npm run check -- file.tsq. Files use the .tsq extension; the CLI reads any text file.
npm install tsquare
import { renderWireframe, compileWireframe, formatIssues } from "tsquare";
const { issues } = compileWireframe(source); // problems by line, empty when valid const png = await renderWireframe(source, { format: "png", scale: 2 });
tsquare/playground exports the playground's request handler, for hosting it inside your own Node server. tsquare/viewer is the playground's zoomable board (zoom, pan, pinch, a chip per screen) for your own page: pass it the elements, then show() the SVG from renderWireframeSvg with the size and screens from measureBoardLayout (exact; boardLayout is a synchronous estimate that can be off by a line or more on boards with notes). It sets the styles its zoom math needs itself; give the stage a size, and optionally style the classes it toggles on the stage: panning (while dragging), animate (while fitting or zooming to a screen, e.g. .animate > * { transition: transform .25s }) and stale (from setStale, e.g. .stale img { opacity: .35 }). Call destroy() when you remove it. Give it the board's measureElements entries (setElements) and it reports clicks and hovers on elements, outlines them (highlight) and zooms to them (zoomTo): see Element positions. languageData() lists every component, prop, option word, icon and accent, for editor highlighting and autocomplete. In a browser bundle (esbuild, Vite, webpack) the same imports render SVG with no setup; PNG and share links need Node. On a page without a build step, draws every ```tsquare code block on the page (see Embedding). See Using it with AI for the prompt and the repair loop. measureElements gives each element's box on the board and its line in the text, and elementsAt what's under a click, for making a board clickable (see Element positions).
tsquare/editorThe playground's code editor for your own page: highlighting, autocomplete for components, props, option words, icons and accents, problems underlined on their lines, Enter keeping the indentation, and pasting a whole model reply keeps just its code block. CodeMirror is bundled inside (about 125 KB compressed once your bundler minifies it), so it imports nothing and can't clash with a CodeMirror your page already has.
import { createEditor } from "tsquare/editor";
import { compileWireframe, languageData } from "tsquare";
const editor = createEditor(document.getElementById("code")!, { doc: "board\n screen phone", data: languageData(), // autocomplete; leave it out for none onChange: (text) => editor.setIssues(compileWireframe(text).issues), });
Give the element a height; the editor fills it. Options: doc, data, onChange, onCursorLine (the caret's line, when it moves to another), lineNumbers (default true), lineWrapping (default false: wrap long lines instead of scrolling sideways, continuation rows indented 4 spaces past their line's indentation, so they don't look like a child element) and ariaLabel (default "Wireframe text"). The editor has getText(), setText(text) (one
冒頭だけを表示しています。続きはリポジトリで読めます