https://github.com/thekarel/spiral
A tiny helper for Linear & Git Town
https://github.com/thekarel/spiral
cli git-town linear
Last synced: 11 months ago
JSON representation
A tiny helper for Linear & Git Town
- Host: GitHub
- URL: https://github.com/thekarel/spiral
- Owner: thekarel
- Created: 2025-07-16T09:16:58.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2025-07-16T15:54:35.000Z (11 months ago)
- Last Synced: 2025-07-17T13:17:34.259Z (11 months ago)
- Topics: cli, git-town, linear
- Language: TypeScript
- Homepage: https://www.npmjs.com/package/@thekarel/spiral
- Size: 179 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Spiral
> A tiny helper for Linear & Git Town workflow
[](https://oclif.io)
[](https://npmjs.org/package/@thekarel/spiral)
[](https://npmjs.org/package/@thekarel/spiral)
* [Spiral](#spiral)
* [Installation](#installation)
* [Hack](#hack)
* [Ship](#ship)
* [API Key](#api-key)
* [Usage](#usage)
* [Commands](#commands)
# Installation
```
npm install -g @thekarel/spiral
```
## What is this?
This tool slightly simplifies a very specific and repetitive workflow:
1. Creating a new, clean branch from a Linear ticket using Git Town
2. Work...
3. Fill the commit message with the ticket information from Linear
4. Publish the changes in a sane way using Git Town
If you've been doing `git hack` and `git town` often you know what I mean.
The CLI has two commands:
1. `spiral hack abc-123`: Create a new branch from a Linear ticket using `git town hack`
2. `spiral ship`: Pre-fill the commit message with the ticket information and run `git town ship`
The format of the branch name and the commit message structure are hard coded, and so are the commands this CLI runs.
This might change in the future.
Context:
- Linear: https://linear.app/
- Git Town: https://git-town.com/
# Hack
The `hack` command creates a new branch from a Linear ticket, using Git Town.
The format of the branch name is `ticket-number-title-of-your-ticket`, for example `abc-123-exciting-the-new-feature`.
Keystrokes saved: several!
# Ship
The `ship` command pre-fills the commit message with the ticket information,
allows you to edit the message and then runs `git town ship`.
The goal is to avoid copy-pasting all the bits and manually formatting the commit message into the expected format.
Productivity increase: not insignificant!
# API Key
Export your API key as `LINEAR_API_KEY`.
You can create one in your Linear account settings under Security & access.
Only add READ permissions.
# Usage
```sh-session
$ npm install -g @thekarel/spiral
$ spiral COMMAND
running command...
$ spiral (--version)
@thekarel/spiral/0.0.3 linux-x64 node-v20.19.3
$ spiral --help [COMMAND]
USAGE
$ spiral COMMAND
...
```
# Commands
* [`spiral help [COMMAND]`](#spiral-help-command)
## `spiral help [COMMAND]`
Display help for spiral.
```
USAGE
$ spiral help [COMMAND...] [-n]
ARGUMENTS
COMMAND... Command to show help for.
FLAGS
-n, --nested-commands Include all nested commands in the output.
DESCRIPTION
Display help for spiral.
```
_See code: [@oclif/plugin-help](https://github.com/oclif/plugin-help/blob/v6.2.31/src/commands/help.ts)_