{"_id":"@clear-street/stuctl","_rev":"11-60a0abe8fbf6cb952b7e96d9b59ee112","name":"@clear-street/stuctl","dist-tags":{"latest":"1.0.5"},"versions":{"1.0.0":{"name":"@clear-street/stuctl","version":"1.0.0","keywords":[],"author":{"name":"Clear Street"},"license":"MIT","_id":"@clear-street/stuctl@1.0.0","maintainers":[{"name":"skumar-clst","email":"skumar@clearstreet.io"}],"bin":{"stuctl":"dist/index.js"},"dist":{"shasum":"59185dfd3d849b1fd8ed53c3b531b83ad8049e8f","tarball":"https://registry.npmjs.org/@clear-street/stuctl/-/stuctl-1.0.0.tgz","fileCount":41,"integrity":"sha512-yrnFQb4+UUBcu3NIxnQExFiQxcyJc/LdgAVR54xad2zz2HB+U5bwZC1D7Z7ZqxBwCJsokQqj7C8LHLiShZT7HQ==","signatures":[{"sig":"MEYCIQDhk9baXuKjamMnDBhV4Bie2ZN//Eyv6NTSMQfpr7iqeAIhAPEO6pcCVBoRan1bPWwHDwAsQKVp3Uyi5FPVESvdCfOQ","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":324493},"main":"index.js","type":"module","gitHead":"29c352cfcb38b2cd184099e95b87259b45f9cdfb","private":false,"scripts":{"lint":"prettier --write . && eslint .","test":"jest","build":"tsc","start":"node dist/index.js"},"_npmUser":{"name":"skumar-clst","email":"skumar@clearstreet.io"},"_npmVersion":"10.2.4","description":"Clear Street Studio's CLI","directories":{},"_nodeVersion":"20.11.1","dependencies":{"ws":"^8.16.0","ink":"^4.4.1","ora":"^8.0.1","axios":"^1.6.8","chalk":"^5.3.0","react":"^18.2.0","dotenv":"^16.4.5","commander":"^12.0.0","typescript":"^5.4.3","jsonwebtoken":"^9.0.2","@tqman/ink-table":"^0.0.0-development","console-table-printer":"^2.12.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.57.0","ts-jest":"^29.1.2","prettier":"^3.2.5","@types/ws":"^8.5.10","@types/jest":"^29.5.12","@types/react":"^18.2.75","@types/yargs":"^17.0.32","@types/jsonwebtoken":"^9.0.6","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@typescript-eslint/parser":"^7.4.0","@typescript-eslint/eslint-plugin":"^7.4.0","@ianvs/prettier-plugin-sort-imports":"^4.2.1"},"_npmOperationalInternal":{"tmp":"tmp/stuctl_1.0.0_1712801063593_0.03558406679996895","host":"s3://npm-registry-packages"}},"1.0.1":{"name":"@clear-street/stuctl","version":"1.0.1","keywords":[],"author":{"name":"Clear Street"},"license":"MIT","_id":"@clear-street/stuctl@1.0.1","maintainers":[{"name":"skumar-clst","email":"skumar@clearstreet.io"}],"homepage":"https://github.com/clear-street/stuctl#readme","bugs":{"url":"https://github.com/clear-street/stuctl/issues"},"bin":{"stuctl":"dist/index.js"},"dist":{"shasum":"1ac9f708fb47864829b558834a88e7481b092368","tarball":"https://registry.npmjs.org/@clear-street/stuctl/-/stuctl-1.0.1.tgz","fileCount":41,"integrity":"sha512-7SoY933JlsQcaFWKY/dhIHLXjm6fPKY5OhaB75F305YNXTIAEDj8kd5zhySRBrzu6Alij/wHd3sCpgN0krLy1Q==","signatures":[{"sig":"MEUCIQCw8nW14W7YL4uT7Qzcn+Ssizh1By9U3rKeNPF2aYPswQIgdBzpHEypGhiBrW4WpV4LqTB4eHF6jBy3jbxEL+dfuzU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":324551},"main":"index.js","type":"module","gitHead":"8a3a4a586f0157de9bb1c6c02e82775616ff38b7","private":false,"scripts":{"lint":"prettier --write . && eslint .","test":"jest","build":"tsc","start":"node dist/index.js"},"_npmUser":{"name":"skumar-clst","email":"skumar@clearstreet.io"},"repository":{"url":"git+https://github.com/clear-street/stuctl.git","type":"git"},"_npmVersion":"10.2.4","description":"Clear Street Studio's CLI","directories":{},"_nodeVersion":"20.11.1","dependencies":{"ws":"^8.16.0","ink":"^4.4.1","ora":"^8.0.1","axios":"^1.6.8","chalk":"^5.3.0","react":"^18.2.0","dotenv":"^16.4.5","commander":"^12.0.0","typescript":"^5.4.3","jsonwebtoken":"^9.0.2","@tqman/ink-table":"^0.0.0-development","console-table-printer":"^2.12.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.57.0","ts-jest":"^29.1.2","prettier":"^3.2.5","@types/ws":"^8.5.10","@types/jest":"^29.5.12","@types/react":"^18.2.75","@types/yargs":"^17.0.32","@types/jsonwebtoken":"^9.0.6","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@typescript-eslint/parser":"^7.4.0","@typescript-eslint/eslint-plugin":"^7.4.0","@ianvs/prettier-plugin-sort-imports":"^4.2.1"},"_npmOperationalInternal":{"tmp":"tmp/stuctl_1.0.1_1712801694042_0.16162610992753623","host":"s3://npm-registry-packages"}},"1.0.2":{"name":"@clear-street/stuctl","version":"1.0.2","keywords":[],"author":{"name":"Clear Street"},"license":"MIT","_id":"@clear-street/stuctl@1.0.2","maintainers":[{"name":"skumar-clst","email":"skumar@clearstreet.io"}],"homepage":"https://github.com/clear-street/stuctl#readme","bugs":{"url":"https://github.com/clear-street/stuctl/issues"},"bin":{"stuctl":"dist/index.js"},"dist":{"shasum":"c67bf623114280a0ec75d54f306634d0b06bd1a2","tarball":"https://registry.npmjs.org/@clear-street/stuctl/-/stuctl-1.0.2.tgz","fileCount":41,"integrity":"sha512-n9Zisy5itZf9Am4rfdyiSttmvwuA+tltsr9uzvSfx515ALyTqAXU9Bchg9+fkhz+lAPwCeOiNaqhar8C40yVoA==","signatures":[{"sig":"MEYCIQCFuMRSEpANoJwtVHZD6HT2sjyDLeR9sqsepXrS9+uLiAIhAOVcyElBQt5bcMf9RSZZzKZ7Ly87rE4O3Jm8XaNIo3rq","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":324562},"main":"index.js","type":"module","gitHead":"cc284d75af5e826aac0c5c2bbba66cc9b47c3174","private":false,"scripts":{"lint":"prettier --write . && eslint .","test":"jest","build":"tsc","start":"node dist/index.js"},"_npmUser":{"name":"skumar-clst","email":"skumar@clearstreet.io"},"repository":{"url":"git+https://github.com/clear-street/stuctl.git","type":"git"},"_npmVersion":"10.2.4","description":"Clear Street Studio's CLI","directories":{},"_nodeVersion":"20.11.1","dependencies":{"ws":"^8.16.0","ink":"^4.4.1","ora":"^8.0.1","axios":"^1.6.8","chalk":"^5.3.0","react":"^18.2.0","dotenv":"^16.4.5","commander":"^12.0.0","typescript":"^5.4.3","jsonwebtoken":"^9.0.2","@tqman/ink-table":"^0.0.0-development","console-table-printer":"^2.12.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.57.0","ts-jest":"^29.1.2","prettier":"^3.2.5","@types/ws":"^8.5.10","@types/jest":"^29.5.12","@types/react":"^18.2.75","@types/yargs":"^17.0.32","@types/jsonwebtoken":"^9.0.6","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@typescript-eslint/parser":"^7.4.0","@typescript-eslint/eslint-plugin":"^7.4.0","@ianvs/prettier-plugin-sort-imports":"^4.2.1"},"_npmOperationalInternal":{"tmp":"tmp/stuctl_1.0.2_1712810614001_0.8189455798626373","host":"s3://npm-registry-packages"}},"1.0.3":{"name":"@clear-street/stuctl","version":"1.0.3","keywords":[],"author":{"name":"Clear Street"},"license":"MIT","_id":"@clear-street/stuctl@1.0.3","maintainers":[{"name":"skumar-clst","email":"skumar@clearstreet.io"}],"homepage":"https://github.com/clear-street/stuctl#readme","bugs":{"url":"https://github.com/clear-street/stuctl/issues"},"bin":{"stuctl":"dist/index.js"},"dist":{"shasum":"c35c79b5829f3df27ebe5e02d9decd6136226294","tarball":"https://registry.npmjs.org/@clear-street/stuctl/-/stuctl-1.0.3.tgz","fileCount":41,"integrity":"sha512-DIhs7KXxXS2Giccxann/owA9H1RVWX8CVl3BLXrKq1ntawbFpmLpyJTCxgcW04vYUvng4jLaN3pv7ViAfvnyiw==","signatures":[{"sig":"MEUCIQDbZtYiGgYyShHK5XRb08eCdZPtJJ9r0w2f2bz7g4WX3AIgG9QD8kyJz9zqzW6bwmpR2OGbAwuI6FIAtG14jJNaDEI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":526789},"main":"index.js","type":"module","gitHead":"66847667dbad4aaaa9dc4dea5ea9ce8e7f8af4d3","private":false,"scripts":{"lint":"prettier --write . && eslint .","test":"jest","build":"tsc","start":"node dist/index.js"},"_npmUser":{"name":"skumar-clst","email":"skumar@clearstreet.io"},"repository":{"url":"git+https://github.com/clear-street/stuctl.git","type":"git"},"_npmVersion":"10.2.4","description":"Clear Street Studio's CLI","directories":{},"_nodeVersion":"20.11.1","dependencies":{"ws":"^8.16.0","ink":"^4.4.1","ora":"^8.0.1","axios":"^1.6.8","chalk":"^5.3.0","react":"^18.2.0","dotenv":"^16.4.5","commander":"^12.0.0","typescript":"^5.4.3","jsonwebtoken":"^9.0.2","@tqman/ink-table":"^0.0.0-development","console-table-printer":"^2.12.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.57.0","ts-jest":"^29.1.2","prettier":"^3.2.5","@types/ws":"^8.5.10","@types/jest":"^29.5.12","@types/react":"^18.2.75","@types/yargs":"^17.0.32","@types/jsonwebtoken":"^9.0.6","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@typescript-eslint/parser":"^7.4.0","@typescript-eslint/eslint-plugin":"^7.4.0","@ianvs/prettier-plugin-sort-imports":"^4.2.1"},"_npmOperationalInternal":{"tmp":"tmp/stuctl_1.0.3_1712873410156_0.8475615383436919","host":"s3://npm-registry-packages"}},"1.0.4":{"name":"@clear-street/stuctl","version":"1.0.4","keywords":[],"author":{"name":"Clear Street"},"license":"MIT","_id":"@clear-street/stuctl@1.0.4","maintainers":[{"name":"skumar-clst","email":"skumar@clearstreet.io"}],"homepage":"https://github.com/clear-street/stuctl#readme","bugs":{"url":"https://github.com/clear-street/stuctl/issues"},"bin":{"stuctl":"dist/index.js"},"dist":{"shasum":"e2630785fdb90f02ade344f3a20e58b8a2dfeed0","tarball":"https://registry.npmjs.org/@clear-street/stuctl/-/stuctl-1.0.4.tgz","fileCount":44,"integrity":"sha512-oa8Hoj68J94sl4ai1KdFZmj/+Wn9ILDQXZjwkyUIlpwsBfMqsx2XCcMvbjRsbATuvwbepdpjbzqKGFBg+LJUkg==","signatures":[{"sig":"MEUCID3rWO5SCTiUyn6hUzisEbWoPL5HWodagyTbPk/dLDa6AiEAzYOpna/8gBJbv4VCVc6pmDh2DprPgNCrAZkzfZRVqAY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":545066},"main":"index.js","type":"module","gitHead":"dc5149e10b1f820f527466570d99afed2f6f5699","private":false,"scripts":{"lint":"prettier --write . && eslint .","test":"jest","build":"tsc","start":"node dist/index.js"},"_npmUser":{"name":"skumar-clst","email":"skumar@clearstreet.io"},"repository":{"url":"git+https://github.com/clear-street/stuctl.git","type":"git"},"_npmVersion":"10.2.4","description":"Clear Street Studio's CLI","directories":{},"_nodeVersion":"20.11.1","dependencies":{"ws":"^8.16.0","ink":"^4.4.1","ora":"^8.0.1","axios":"^1.6.8","chalk":"^5.3.0","react":"^18.2.0","dotenv":"^16.4.5","commander":"^12.0.0","typescript":"^5.4.3","jsonwebtoken":"^9.0.2","@tqman/ink-table":"^0.0.0-development","console-table-printer":"^2.12.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.57.0","ts-jest":"^29.1.2","prettier":"^3.2.5","@types/ws":"^8.5.10","@types/jest":"^29.5.12","@types/react":"^18.2.75","@types/yargs":"^17.0.32","@types/jsonwebtoken":"^9.0.6","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@typescript-eslint/parser":"^7.4.0","@typescript-eslint/eslint-plugin":"^7.4.0","@ianvs/prettier-plugin-sort-imports":"^4.2.1"},"_npmOperationalInternal":{"tmp":"tmp/stuctl_1.0.4_1713791529647_0.527771516091091","host":"s3://npm-registry-packages"}},"1.0.5":{"name":"@clear-street/stuctl","version":"1.0.5","keywords":[],"author":{"name":"Clear Street"},"license":"MIT","_id":"@clear-street/stuctl@1.0.5","maintainers":[{"name":"skumar-clst","email":"skumar@clearstreet.io"}],"homepage":"https://github.com/clear-street/stuctl#readme","bugs":{"url":"https://github.com/clear-street/stuctl/issues"},"bin":{"stuctl":"dist/index.js"},"dist":{"shasum":"b1c2c276c17e0bf828f250f2a4f6f5905092f650","tarball":"https://registry.npmjs.org/@clear-street/stuctl/-/stuctl-1.0.5.tgz","fileCount":46,"integrity":"sha512-d7Jd/CI0K3oY43XMJj8DKmwSSot9YO0O/m6zhprh5YVYwZEwrPPEWmmoh0Py9Zgl77R+wZic69zgCStmgOHOOA==","signatures":[{"sig":"MEYCIQCkBBct4YTrFMryMrThtYYL8pET4se/S/ygg5pERB3v/wIhALvad6IWOTpdw0eLZJ0qezWFN1y3C1ukRq+hxcepNH6m","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":546846},"main":"index.js","type":"module","gitHead":"09ab53a255287ff5e5146269469dcf8815dfdecd","private":false,"scripts":{"lint":"prettier --write . && eslint .","test":"jest","build":"tsc","start":"node dist/index.js"},"_npmUser":{"name":"skumar-clst","email":"skumar@clearstreet.io"},"repository":{"url":"git+https://github.com/clear-street/stuctl.git","type":"git"},"_npmVersion":"10.2.4","description":"Clear Street Studio's CLI","directories":{},"_nodeVersion":"20.11.1","dependencies":{"ws":"^8.16.0","ink":"^4.4.1","ora":"^8.0.1","axios":"^1.6.8","chalk":"^5.3.0","react":"^18.2.0","dotenv":"^16.4.5","commander":"^12.0.0","typescript":"^5.4.3","jsonwebtoken":"^9.0.2","@tqman/ink-table":"^0.0.0-development","console-table-printer":"^2.12.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.57.0","ts-jest":"^29.1.2","prettier":"^3.2.5","@types/ws":"^8.5.10","@types/jest":"^29.5.12","@types/react":"^18.2.75","@types/yargs":"^17.0.32","@types/jsonwebtoken":"^9.0.6","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@typescript-eslint/parser":"^7.4.0","@typescript-eslint/eslint-plugin":"^7.4.0","@ianvs/prettier-plugin-sort-imports":"^4.2.1"},"_npmOperationalInternal":{"tmp":"tmp/stuctl_1.0.5_1720563339667_0.5420665576230081","host":"s3://npm-registry-packages"}}},"time":{"created":"2024-04-11T02:04:23.470Z","modified":"2026-06-23T15:04:57.844Z","1.0.0":"2024-04-11T02:04:23.847Z","1.0.1":"2024-04-11T02:14:54.215Z","1.0.2":"2024-04-11T04:43:34.229Z","1.0.3":"2024-04-11T22:10:10.392Z","1.0.4":"2024-04-22T13:12:09.861Z","1.0.5":"2024-07-09T22:15:39.938Z"},"bugs":{"url":"https://github.com/clear-street/stuctl/issues"},"author":{"name":"Clear Street"},"license":"MIT","homepage":"https://github.com/clear-street/stuctl#readme","keywords":[],"repository":{"url":"git+https://github.com/clear-street/stuctl.git","type":"git"},"description":"Clear Street Studio's CLI","maintainers":[{"email":"skumar@clearstreet.io","name":"skumar-clst"},{"email":"jwheaton@clearstreet.io","name":"jwheaton-clearstreet"},{"email":"infra@clearstreet.io","name":"cicd-deploy-only"},{"email":"mschlenker@clearstreet.io","name":"mschlenker1"},{"email":"tgandhi@clearstreet.io","name":"sonicxml"},{"email":"dszewczyk@clearstreet.io","name":"dszewczyk-clst"},{"email":"rbhatia@clearstreet.io","name":"raja-clearstreet"}],"readme":"<p align=\"center\">\n<img src=\"logo.png\" width=\"37%\" height=\"37%\" />\n<p align=\"center\">\nStudio control, better known as <i>stuctl</i> (affectionately pronounced <i>stew</i>-<i>cuttle</i>), is a simple command-line tool for interacting with Clear Street Studio via it's <a href=\"https://docs.clearstreet.io\">public APIs</a>\n</p>\n<p align=\"center\">\n    <img src=\"demo.svg\" />\n</p>\n</p>\n\n## Usage\n\nThe only prerequisite for using `stuctl` is having [nodejs](https://nodejs.org/) `v20.11.1` or higher installed.\n\nAssuming you're running the right version node, run the following command to install `stuctl`:\n\n```bash\n$ npm install -g @clear-street/stuctl\n```\n\nMost commands provided by `stuctl` require authentication. To properly authenticate, you need to follow Clear Street Studio's [OAuth2 flow](https://docs.clearstreet.io/docs/authentication-1):\n\nIf you don't have an OAuth2 credentials already, here are the steps:\n\n1. Sign into [Clear Street Studio](https://studio.clearstreet.io)\n1. Navigate to `Settings -> Developer`\n1. Create a new OAuth2 API credential\n1. Download your credentials to a secure location\n\nNow, you can provide `stuctl` the proper authentication using the `login` command:\n\n```bash\n$ stuctl login /path/to/oauth2-creds.json\n```\n\nYou can now successfully invoke other `stuctl` commands, like `buy`, `sell`, etc.\n\n## Data\n\nThis app persists data, such as access tokens, for use between runs. This data is stored in a file named `.sturc`. Values from the `.sturc` file are injected as environment variables when `stuctl` runs. The `.sturc` file lives in `~/.sturc` on Linux-based systems, or `%USERPROFILE%/.sturc` on Windows systems.\n\nSince access tokens are stored in this file, _it's important you keep this file safe and secure._\n\nYou can set the default account with the command:\n```bash\n$ stuctle set account <your-account>\n```\nYou can set the default URL with the command:\n```bash\n$ stuctle set url <studio-api-url>\n```\nWhich will store the arguments for you in the `.sturc` file to avoid having to provide them through command-line arguments.\n\nYou can additionally manually add these values to your `.sturc`:\n\n- `ACCOUNT=<your-account>`\n\nThis will default all commands that require an account to use `<your-account>`.\n\n- `URL=<studio-api-url>`\n\nThis will point `stuctl` to the provided Studio API URL.\n","readmeFilename":"README.md"}