{"id":45901851,"url":"https://github.com/ason-format/vscode-extension","last_synced_at":"2026-02-27T23:36:07.837Z","repository":{"id":324609158,"uuid":"1094579781","full_name":"ason-format/vscode-extension","owner":"ason-format","description":"Compress and decompress JSON using the ASON format directly in Visual Studio Code. Reduce token usage by 20-60% for LLM applications while maintaining 100% lossless round-trip fidelity.","archived":false,"fork":false,"pushed_at":"2025-11-16T21:41:08.000Z","size":276,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-11-16T23:20:20.858Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ason-format.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-11-11T22:39:08.000Z","updated_at":"2025-11-16T21:34:19.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/ason-format/vscode-extension","commit_stats":null,"previous_names":["ason-format/vscode-extension"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/ason-format/vscode-extension","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ason-format%2Fvscode-extension","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ason-format%2Fvscode-extension/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ason-format%2Fvscode-extension/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ason-format%2Fvscode-extension/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ason-format","download_url":"https://codeload.github.com/ason-format/vscode-extension/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ason-format%2Fvscode-extension/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29919043,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-27T19:37:42.220Z","status":"ssl_error","status_checked_at":"2026-02-27T19:37:41.463Z","response_time":57,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-02-27T23:36:07.104Z","updated_at":"2026-02-27T23:36:07.831Z","avatar_url":"https://github.com/ason-format.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ASON for VS Code\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![VS Code](https://img.shields.io/badge/VS%20Code-1.99+-blue.svg)](https://code.visualstudio.com/)\n[![MCP](https://img.shields.io/badge/MCP-Enabled-green.svg)](https://modelcontextprotocol.io)\n\nCompress and decompress JSON using the ASON format directly in Visual Studio Code. Reduce token usage by 20-60% for LLM applications while maintaining 100% lossless round-trip fidelity.\n\n## Two Ways to Use ASON in VS Code\n\n### 1. Extension Commands\n- Direct commands for manual compression/decompression\n- Keyboard shortcuts: `Cmd+Alt+C` (compress), `Cmd+Alt+D` (decompress), `Cmd+Alt+S` (stats)\n- Accessible via Command Palette or right-click menu\n- Perfect for one-off conversions\n\n### 2. MCP Server Integration (Automatic)\n- **Automatically configured** when you install this extension!\n- Works with GitHub Copilot Chat (requires VS Code 1.99+)\n- Copilot can use ASON tools automatically\n- Ask Copilot: \"Compress this JSON using ASON\" and it works!\n- No manual configuration needed - it just works!\n\n## Installation\n\n### From VS Code Marketplace\n\n1. Open VS Code\n2. Go to Extensions (`Cmd+Shift+X` / `Ctrl+Shift+X`)\n3. Search for \"ASON\"\n4. Click **Install**\n5. MCP server is automatically configured for Copilot!\n\n### Requirements\n\n- **VS Code 1.99+** (for MCP server integration)\n- **Node.js 18+** (for MCP server via npx)\n- **GitHub Copilot** (optional, for automatic tool access)\n\n### What Happens on Install\n\nWhen you install this extension:\n\n1. ✅ Extension commands are registered (`ASON: Compress`, etc.)\n2. ✅ MCP server is **automatically configured** for GitHub Copilot\n3. ✅ ASON tools become available in Copilot Chat\n4. ✅ No manual configuration needed!\n\nThe MCP server uses `npx @ason-format/mcp-server@latest`, so it always stays up-to-date.\n\n## Features\n\n- **Compress JSON to ASON**: Convert selected JSON to token-optimized ASON format\n- **Decompress ASON to JSON**: Restore ASON back to original JSON (lossless)\n- **Compression Statistics**: View detailed metrics on token and byte savings\n- **Configurable Settings**: Customize compression behavior per workspace\n- **MCP Server Support**: Use with GitHub Copilot Chat (VS Code 1.99+)\n\n## Commands\n\nAccess commands via:\n- Command Palette (`Cmd+Shift+P` / `Ctrl+Shift+P`)\n- Right-click context menu (when text is selected)\n\n### Available Commands\n\n| Command | Description |\n|---------|-------------|\n| `ASON: Compress Selection` | Compress selected JSON to ASON format |\n| `ASON: Decompress Selection` | Decompress selected ASON to JSON |\n| `ASON: Show Compression Stats` | Display detailed compression statistics |\n\n## Usage\n\n### Compress JSON\n\n1. Select JSON text in your editor\n2. Open Command Palette (`Cmd+Shift+P`)\n3. Run `ASON: Compress Selection`\n4. Selected text is replaced with ASON format\n\n**Before:**\n```json\n{\n  \"users\": [\n    {\"id\": 1, \"name\": \"Alice\", \"age\": 25},\n    {\"id\": 2, \"name\": \"Bob\", \"age\": 30}\n  ]\n}\n```\n\n**After:**\n```\nusers:[2]{id,name,age}\n1|Alice|25\n2|Bob|30\n```\n\n### Decompress ASON\n\n1. Select ASON text in your editor\n2. Run `ASON: Decompress Selection`\n3. Selected text is replaced with formatted JSON\n\n### View Statistics\n\n1. Select JSON text\n2. Run `ASON: Show Compression Stats`\n3. View detailed metrics in the output panel:\n\n```\n=== ASON Compression Statistics ===\n\nOriginal Tokens:    59\nCompressed Tokens:  23\nToken Reduction:    61.02%\n\nOriginal Size:      151 bytes\nCompressed Size:    43 bytes\nBytes Saved:        108 bytes\n\n=== Configuration ===\n\nIndent:             1\nDelimiter:          \"|\"\nUse References:     true\nUse Sections:       true\nUse Tabular:        true\n\n=== ASON Preview ===\n\nusers:[2]{id,name,age}\n1|Alice|25\n2|Bob|30\n```\n\n## Configuration\n\nConfigure ASON behavior in your workspace settings (`Cmd+,` / `Ctrl+,`):\n\n```json\n{\n  \"ason.indent\": 1,\n  \"ason.delimiter\": \"|\",\n  \"ason.useReferences\": true,\n  \"ason.useSections\": true,\n  \"ason.useTabular\": true,\n  \"ason.autoShowStats\": true\n}\n```\n\n### Settings Reference\n\n| Setting | Type | Default | Description |\n|---------|------|---------|-------------|\n| `ason.indent` | number | `1` | Indentation level for nested structures |\n| `ason.delimiter` | string | `\"|\"` | Field delimiter for tabular arrays (pipe, comma, or tab) |\n| `ason.useReferences` | boolean | `true` | Enable `$var` reference deduplication |\n| `ason.useSections` | boolean | `true` | Enable `@section` organization for objects |\n| `ason.useTabular` | boolean | `true` | Enable `key:[N]{fields}` tabular format for arrays |\n| `ason.autoShowStats` | boolean | `true` | Show statistics after compression |\n\n## Use Cases\n\n### Reduce LLM API Costs\n\nCompress data before sending to OpenAI, Claude, or other LLM APIs:\n\n```javascript\n// Instead of sending 150 tokens\nconst json = {\"users\": [{\"id\": 1, \"name\": \"Alice\"}, ...]};\n\n// Send 60 tokens (60% reduction)\nconst ason = \"users:[2]{id,name}\\n1|Alice\\n...\";\n```\n\n### Optimize LocalStorage\n\nStore more data in browser localStorage:\n\n```javascript\n// Before: 2KB JSON\nlocalStorage.setItem('data', JSON.stringify(data));\n\n// After: 800 bytes ASON\nlocalStorage.setItem('data', compressor.compress(data));\n```\n\n### Compact API Responses\n\nReduce bandwidth for API responses:\n\n```javascript\n// Server compresses responses\napp.get('/api/data', (req, res) =\u003e {\n  const ason = compressor.compress(data);\n  res.send(ason);\n});\n```\n\n## Keyboard Shortcuts\n\nYou can add custom keyboard shortcuts in VS Code:\n\n1. Open Keyboard Shortcuts (`Cmd+K Cmd+S` / `Ctrl+K Ctrl+S`)\n2. Search for \"ASON\"\n3. Assign shortcuts (e.g., `Cmd+Shift+A` for compress)\n\nExample `keybindings.json`:\n\n```json\n[\n  {\n    \"key\": \"cmd+shift+a\",\n    \"command\": \"ason.compressSelection\",\n    \"when\": \"editorHasSelection\"\n  },\n  {\n    \"key\": \"cmd+shift+d\",\n    \"command\": \"ason.decompressSelection\",\n    \"when\": \"editorHasSelection\"\n  }\n]\n```\n\n## Development\n\n### Build from Source\n\n```bash\ncd vscode-ason\nnpm install\nnpm run build\n```\n\n### Test Extension\n\n1. Open this folder in VS Code\n2. Press F5 to launch Extension Development Host\n3. Test commands in the new window\n\n### Package Extension\n\n```bash\nnpm install -g @vscode/vsce\nvsce package\n```\n\nThis creates a `.vsix` file you can install locally or publish to the marketplace.\n\n## What is ASON?\n\nASON (Aliased Serialization Object Notation) is a token-optimized JSON compression format designed specifically for Large Language Models (LLMs).\n\n**Key Features:**\n- 20-60% token reduction on average\n- 100% lossless round-trip fidelity\n- Human-readable format\n- Multiple compression techniques (uniform arrays, object references, value dictionary, path flattening)\n\n**Learn More:**\n- [ASON GitHub](https://github.com/ason-format/ason)\n- [Interactive Demo](https://ason-format.github.io/ason/)\n- [Documentation](https://ason-format.github.io/ason/docs.html)\n\n## 🚀 Publishing\n\nTo release a new version:\n\n```bash\n# Run the release script\n./scripts/release.sh\n\n# 1. Select version bump (patch/minor/major)\n# 2. Update CHANGELOG.md when prompted\n# 3. Confirm push\n\n# GitHub Actions will automatically:\n# - Build the extension\n# - Create .vsix file\n# - Create GitHub Release with .vsix attached\n\n# Then manually publish to VS Code Marketplace:\nnpm run publish\n```\n\n## 📝 License\n\nMIT © ASON Project Contributors\n\n## 🤝 Contributing\n\nContributions welcome! Please open an issue or pull request.\n\n## 🔗 Links\n\n- **GitHub**: https://github.com/ason-format/vscode-extension\n- **Issues**: https://github.com/ason-format/vscode-extension/issues\n- **ASON Core**: https://github.com/ason-format/ason\n- **VS Code API**: https://code.visualstudio.com/api\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fason-format%2Fvscode-extension","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fason-format%2Fvscode-extension","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fason-format%2Fvscode-extension/lists"}