Skip to content

Add tablexport extension#27468

Open
Artem-Kysylov wants to merge 13 commits intoraycast:mainfrom
Artem-Kysylov:ext/tablexport
Open

Add tablexport extension#27468
Artem-Kysylov wants to merge 13 commits intoraycast:mainfrom
Artem-Kysylov:ext/tablexport

Conversation

@Artem-Kysylov
Copy link
Copy Markdown

Description

Screencast

Checklist

- fixing errors, adding images and gif
- adding new files
- fixing icon
- add icons
- first commit
@raycastbot raycastbot added the new extension Label for PRs with new extensions label Apr 27, 2026
@raycastbot
Copy link
Copy Markdown
Collaborator

Congratulations on your new Raycast extension! 🚀

We're currently experiencing a high volume of incoming requests. As a result, the initial review may take up to 10-15 business days.

Once the PR is approved and merged, the extension will be available on our Store.

@Artem-Kysylov Artem-Kysylov marked this pull request as ready for review April 27, 2026 15:49
@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps Bot commented Apr 27, 2026

Greptile Summary

This PR adds a new tablexport extension with a single no-view command that reads clipboard content and opens TableXport in the browser. There are two P1 issues that should be addressed before merging:

  • Clipboard data never reaches the website: convert.ts reads the clipboard but passes only autoPaste=true in the URL — the actual table text is discarded. The website would need to re-request browser clipboard access independently, which requires a separate user permission grant.
  • Broken README image: the README references media/raycast_extension.gif but the committed file is media/raycast_gif.gif.

Additionally, a CHANGELOG.md is missing (required per repo conventions), the package.json lacks the $schema field, and @raycast/utils is listed in devDependencies without being imported anywhere.

Confidence Score: 3/5

Not safe to merge — the core clipboard-to-website handoff is broken and the README has a broken image.

Two P1 issues: clipboard content is read but never forwarded to the URL, and the README demo image is broken. These affect both functionality and the store listing presentation.

extensions/tablexport/src/convert.ts (clipboard data discarded) and extensions/tablexport/README.md (broken image path)

Important Files Changed

Filename Overview
extensions/tablexport/src/convert.ts Core command logic reads clipboard text but never passes it to the URL — the data is silently discarded and there's no feedback for empty clipboard
extensions/tablexport/README.md Broken image reference: links to media/raycast_extension.gif but the committed file is media/raycast_gif.gif
extensions/tablexport/package.json Missing $schema field; @raycast/utils listed in devDependencies but never used; keywords block has inconsistent indentation
Prompt To Fix All With AI
This is a comment left during a code review.
Path: extensions/tablexport/src/convert.ts
Line: 4-8

Comment:
**Clipboard data read but never sent to the website**

The extension reads the clipboard text and checks it's non-empty, but then discards it entirely — only `autoPaste=true` is passed in the URL. The website would have to re-request clipboard access via the browser's Clipboard API, which prompts the user again and may be denied. If the intent is for the website to receive the data, it should be URL-encoded and appended to the query string. If the website really does read the clipboard itself, the `Clipboard.readText()` call here is redundant (and you'd want to show a HUD or error when text is absent).

How can I resolve this? If you propose a fix, please make it concise.

---

This is a comment left during a code review.
Path: extensions/tablexport/README.md
Line: 2

Comment:
**Broken image reference in README**

The README links to `media/raycast_extension.gif`, but the actual file committed to the repository is `media/raycast_gif.gif`. This image will appear broken in the Raycast store listing.

How can I resolve this? If you propose a fix, please make it concise.

---

This is a comment left during a code review.
Path: extensions/tablexport/package.json
Line: 1-3

Comment:
**Missing `$schema` field**

The `package.json` is missing the required `$schema` reference, which enables autocomplete, validation, and IntelliSense for Raycast extension fields in your editor.

**Rule Used:** What: Require Raycast extension projects to includ... ([source](https://app.greptile.com/review/custom-context?memory=9c275ba8-ead2-4952-b909-12275352b16b))

How can I resolve this? If you propose a fix, please make it concise.

---

This is a comment left during a code review.
Path: extensions/tablexport/package.json
Line: 41-43

Comment:
**`@raycast/utils` listed as a dev dependency but never imported**

`@raycast/utils` appears in `devDependencies` but is not imported in any source file under `src/`. Unused dependencies bloat installations and create confusion. Remove it if it's not needed.

**Rule Used:** What: Every dependency listed in package.json must... ([source](https://app.greptile.com/review/custom-context?memory=bffc60eb-f9f2-4219-b804-76e29e267d43))

How can I resolve this? If you propose a fix, please make it concise.

Reviews (1): Last reviewed commit: "Add tablexport extension" | Re-trigger Greptile

Comment on lines +4 to +8
const text = await Clipboard.readText();
if (text) {
await showHUD("Opening in TableXport...");
await open("https://tablexport.com?autoPaste=true");
}
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Clipboard data read but never sent to the website

The extension reads the clipboard text and checks it's non-empty, but then discards it entirely — only autoPaste=true is passed in the URL. The website would have to re-request clipboard access via the browser's Clipboard API, which prompts the user again and may be denied. If the intent is for the website to receive the data, it should be URL-encoded and appended to the query string. If the website really does read the clipboard itself, the Clipboard.readText() call here is redundant (and you'd want to show a HUD or error when text is absent).

Prompt To Fix With AI
This is a comment left during a code review.
Path: extensions/tablexport/src/convert.ts
Line: 4-8

Comment:
**Clipboard data read but never sent to the website**

The extension reads the clipboard text and checks it's non-empty, but then discards it entirely — only `autoPaste=true` is passed in the URL. The website would have to re-request clipboard access via the browser's Clipboard API, which prompts the user again and may be denied. If the intent is for the website to receive the data, it should be URL-encoded and appended to the query string. If the website really does read the clipboard itself, the `Clipboard.readText()` call here is redundant (and you'd want to show a HUD or error when text is absent).

How can I resolve this? If you propose a fix, please make it concise.

Comment thread extensions/tablexport/README.md Outdated
@@ -0,0 +1,23 @@
# TableXport
![TableXport Demo](media/raycast_extension.gif)
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Broken image reference in README

The README links to media/raycast_extension.gif, but the actual file committed to the repository is media/raycast_gif.gif. This image will appear broken in the Raycast store listing.

Prompt To Fix With AI
This is a comment left during a code review.
Path: extensions/tablexport/README.md
Line: 2

Comment:
**Broken image reference in README**

The README links to `media/raycast_extension.gif`, but the actual file committed to the repository is `media/raycast_gif.gif`. This image will appear broken in the Raycast store listing.

How can I resolve this? If you propose a fix, please make it concise.

Comment on lines +1 to +3
{
"name": "tablexport",
"title": "TableXport",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Missing $schema field

The package.json is missing the required $schema reference, which enables autocomplete, validation, and IntelliSense for Raycast extension fields in your editor.

Rule Used: What: Require Raycast extension projects to includ... (source)

Prompt To Fix With AI
This is a comment left during a code review.
Path: extensions/tablexport/package.json
Line: 1-3

Comment:
**Missing `$schema` field**

The `package.json` is missing the required `$schema` reference, which enables autocomplete, validation, and IntelliSense for Raycast extension fields in your editor.

**Rule Used:** What: Require Raycast extension projects to includ... ([source](https://app.greptile.com/review/custom-context?memory=9c275ba8-ead2-4952-b909-12275352b16b))

How can I resolve this? If you propose a fix, please make it concise.

Comment on lines +41 to +43
"@types/node": "20.8.10",
"@types/react": "18.2.27",
"typescript": "^5.2.2"
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 @raycast/utils listed as a dev dependency but never imported

@raycast/utils appears in devDependencies but is not imported in any source file under src/. Unused dependencies bloat installations and create confusion. Remove it if it's not needed.

Rule Used: What: Every dependency listed in package.json must... (source)

Prompt To Fix With AI
This is a comment left during a code review.
Path: extensions/tablexport/package.json
Line: 41-43

Comment:
**`@raycast/utils` listed as a dev dependency but never imported**

`@raycast/utils` appears in `devDependencies` but is not imported in any source file under `src/`. Unused dependencies bloat installations and create confusion. Remove it if it's not needed.

**Rule Used:** What: Every dependency listed in package.json must... ([source](https://app.greptile.com/review/custom-context?memory=bffc60eb-f9f2-4219-b804-76e29e267d43))

How can I resolve this? If you propose a fix, please make it concise.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

new extension Label for PRs with new extensions

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants