TathaAstu for VS Code
Hindu calendar intelligence in your editor.
Built on @tathaastu/sdk and the shared
@tathaastu/ai. This extension contains no HTTP logic and no endpoint
list of its own — the explorer, hover docs and completion all read the
OpenAPI document, and a test fails the build if any source file calls fetch,
hardcodes the API URL, or hardcodes an endpoint path.
Features
| Feature |
Detail |
| API key manager |
Stored in VS Code SecretStorage, never in settings.json |
| Endpoint explorer |
All 81 endpoints, grouped by tag, in the Explorer view |
| Playground |
Command palette → pick a request → results open as JSON |
| Run at cursor |
Put the caret on a line mentioning an endpoint and run it |
| Hover docs |
Method, path, parameters and documented status codes |
| Completion |
Endpoint paths with inline documentation |
| JSON formatter |
Format a response, or a selection |
| Snippets |
ta-client, ta-panchang, ta-festivals, ta-explain, ta-try |
Commands
TathaAstu: Set API key
TathaAstu: Clear API key
TathaAstu: Open playground
TathaAstu: Run request at cursor
TathaAstu: Explain festival
TathaAstu: Format JSON response
Settings
| Setting |
Default |
tathaastu.baseUrl |
https://api.tathaastuapi.com |
tathaastu.locationId |
1 |
The key is deliberately not a setting. Settings sync between machines and get
committed by accident; SecretStorage does neither.
Design notes
Only GET runs from the editor. A command palette entry that silently POSTs is
a good way to create data nobody asked for.
Activation survives a missing spec. If the bundled OpenAPI document cannot be
read, the catalogue is empty but the key manager and playground still work — an
extension that fails to activate helps nobody.
The playground offers the six adapter tools, not all 81 endpoints. Those are
the ones with hand-written descriptions and argument validation, so the editor
experience matches what an agent sees.
Development
npm install
npm run build
npm test # 20 tests, no editor host required
The vscode module only exists inside the editor, so the testable logic —
catalogue parsing, hover markdown, endpoint matching, request execution — lives
in modules that run under plain Node.