# kickable

> Kickable is a service meant to answer the question "Can I Kick It?"

Latest version **2.0.0** (published 2026-06-11) · ISC license · 0 weekly downloads

## Install

```sh
npm install kickable
pnpm add kickable
yarn add kickable
bun add kickable
```

## Health

**Score 50/100 (C)** — status: active.

Positive: esm support; no vulnerabilities.

Warnings: low downloads; no types.

## Facts

| | |
|---|---|
| Version | 2.0.0 |
| Published | 2026-06-11 |
| First published | 2017-04-07 |
| Weekly downloads | 0 |
| License | ISC |
| TypeScript types | none |
| Module format | ESM + CommonJS |
| Node | >=22.0.0 |
| Dependencies | 4 |
| Unpacked size | 22.3 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 1 |
| Author | Hector Gray |
| Maintainers | defstream |

## Links

- npm: https://www.npmjs.com/package/kickable
- Repository: https://github.com/defstream/kickable
- Homepage: https://github.com/defstream/kickable#readme
- Issues: https://github.com/defstream/kickable/issues
- npm.io page: https://npm.io/package/kickable

## Dependencies (4)

- [koa](https://npm.io/package/koa.md) ^3.2.1
- [pino](https://npm.io/package/pino.md) ^10.3.1
- [koa-route](https://npm.io/package/koa-route.md) ^4.0.1
- [koa-helmet](https://npm.io/package/koa-helmet.md) ^9.0.0

## Recent versions

- 2.0.0 (latest) — 2026-06-11
- 1.0.0 — 2017-04-07

## README

## kickable

**kickable** is a microservice built to answer the age old question, "Can I Kick It?"

#### What is a kickable?
Currently only the word "it" is kickable.

| NPM | Build | Coverage | Vulnerabilities |
| :--- | :--- | :--- | :--- |
| <a href="http://npmjs.com/package/kickable"><img src="https://img.shields.io/npm/v/kickable.svg" alt="npm version"></a> | <a href="https://github.com/defstream/kickable/actions/workflows/ci.yml"><img src="https://github.com/defstream/kickable/actions/workflows/ci.yml/badge.svg" alt="CI"></a> | <a href="https://codecov.io/github/defstream/kickable"><img src="https://img.shields.io/codecov/c/github/defstream/kickable.svg" alt="coverage"></a> | <a href="https://snyk.io/test/github/defstream/kickable"><img src="https://snyk.io/test/github/defstream/kickable/badge.svg" alt="Known Vulnerabilities"></a> |
| <a href="http://npm-stat.com/charts.html?package=kickable"><img src="https://img.shields.io/npm/dm/kickable.svg" alt="downloads"></a> | | <a href='https://coveralls.io/github/defstream/kickable?branch=master'><img src='https://coveralls.io/repos/github/defstream/kickable/badge.svg?branch=master' alt='Coverage Status' /></a> | |

# Requirements

**Node.js 22+**

# Usage

```shell
$ npm ci
$ npm run build
$ npm start
```

The service listens on port `3000` by default. Set the `PORT` environment variable to override:

```shell
$ PORT=8080 npm start
```

# Development

#### Type check

```shell
$ npm run typecheck
```

#### Lint

```shell
$ npm run lint
```

#### Build

```shell
$ npm run build
```

#### Test

```shell
$ npm test
```

#### Coverage

```shell
$ npm run test:coverage
```

# API

### `GET /healthz`

Returns `200 OK`. Used by load balancers and orchestrators to verify liveness.

### `GET /kick/:it`

Returns `true` if `:it` is kickable, otherwise `false`.

**Example:**

```shell
$ curl http://localhost:3000/kick/it
true

$ curl http://localhost:3000/kick/sky
false
```

### What's next?
- Case insensitivity
- Support for configuring kickable items other than `it`
- Return true if the item is a known kickable noun (ball, wall, door); otherwise false (sky, feelings, comments)

### Maintainers
Hector Gray (Twitter: <a href="https://twitter.com/defstream">@defstream</a>)

### Contribute
Pull Requests welcome. Please make sure all checks pass:

```shell
$ npm run typecheck
$ npm run lint
$ npm test
```

Please submit <a href="https://github.com/defstream/kickable/issues">Github issues</a> for any feature enhancements, bugs or documentation problems.

### License
MIT

---
_Source: https://npm.io/package/kickable · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
