Fast Code - Copy & Share Code
Copy file contents, pinned tabs, or entire workspaces as markdown-formatted text — ready to paste into ChatGPT, Claude, or any LLM. Includes token counting and .copyignore support.
Features
Copy File Contents
Right-click any file or folder in the Explorer or editor tab bar and select Copy File Contents. The output is formatted as markdown with syntax highlighting:
--- src/index.ts ---
```typescript
console.log("hello");
```
- Select multiple files/folders at once
- Directories are expanded recursively
- Binary files are automatically detected and skipped
Copy Pinned Tab Contents
Run Copy Tabbed File Contents from the editor tab context menu to copy the contents of all pinned tabs in the active tab group. Pin the files you care about, then copy them in one click.
Copy Workspace Contents
Run Copy Workspace Contents from the Command Palette (Cmd+Shift+P / Ctrl+Shift+P) to copy your entire workspace as a single markdown document.
- Respects
.copyignore rules (.gitignore syntax)
- Optionally includes an ASCII file/folder tree at the top (
@include-tree flag)
- Choose between file mode (writes
code.md to workspace root, auto-added to .gitignore) or clipboard mode
Token Counting
Every copy operation shows an estimated token count in the notification, powered by tokenx. This helps you stay within LLM context limits before pasting.
.copyignore
Control which files are included in workspace copies. Works exactly like .gitignore:
# Special flags
@include-tree # Include file tree in workspace copy
# Ignore patterns
node_modules/
dist/
*.png
.env
- A default
.copyignore is auto-generated from your .gitignore on first workspace copy
- Create a global
~/.copyignore template via the CopyFiles: Create/Edit Global .copyignore command — its patterns are merged into every workspace
Cursor IDE Integration (opt-in)
Enable copyFileContents.enableCursorFeatures in settings to show a status bar indicator for Cursor's useOpenAIKey setting. Click to toggle.
Commands
| Command |
Description |
| Copy File Contents |
Copy selected files/folders to clipboard as markdown |
| Copy Tabbed File Contents |
Copy all pinned tabs to clipboard as markdown |
| Copy Workspace Contents |
Copy entire workspace (respecting .copyignore) |
| CopyFiles: Create/Edit Global .copyignore |
Open or create ~/.copyignore template |
Settings
| Setting |
Default |
Description |
copyFileContents.workspaceCopyMethod |
file |
file writes code.md to workspace root; clipboard copies directly |
copyFileContents.showTokenCount |
true |
Show estimated token count in copy notifications |
copyFileContents.enableCursorFeatures |
false |
Enable Cursor IDE status bar indicator (requires reload) |
License
MIT