A lightweight developer CLI with handy utilities.
The installer supports macOS and Linux on x86_64/amd64 and ARM64/aarch64:
curl -sSL https://raw.githubusercontent.com/kcterala/kit/main/install.sh | bashOr install Rust and build from source with cargo build --release.
Update an installed release to the latest version:
kit updateKit replaces the currently running binary. If it was installed in a system directory such as
/usr/local/bin, run sudo kit update so Kit can write to that directory.
kit clone https://github.com/user/repo
kit clone git@github.com:user/repo.gitClones a repository. Automatically adds upstream remote for forks you own.
kit fork https://github.com/user/repoFork a repository (coming soon).
kit commit "your commit message"Stages all changes and commits with the given message.
kit ai-commit "your commit message"Polishes your commit message using AI and offers multiple options to choose from.
kit ip # Display your public IP
kit ip -c # Copy IP to clipboardkit setup agentsDownloads the coding conventions from https://agents.kcterala.dev/agents.md and overwrites the global instructions for detected Pi and Claude Code installations.
kit brief
kit brief --json
kit brief --email-to you@example.comShows current weather for Pune, Hyderabad, and Khammam; top Hacker News stories; and, when configured, today's Todoist tasks, assigned Zoho Sprints work items, and unread Stash feed items from the last 24 hours. Each source is independent, so one unavailable service does not hide the others. Weather data is provided by Open-Meteo.
Configure integrations with environment variables. Kit automatically loads them from
~/.config/kit/brief.env, or from /etc/kit/brief.env for a system-wide installation. Variables
already present in the process environment take precedence.
| Source | Variables |
|---|---|
| Todoist | KIT_TODOIST_TOKEN or TODOIST_API_TOKEN |
| Stash (experimental) | Short-lived KIT_STASH_ACCESS_TOKEN; optional KIT_STASH_API_BASE |
| Zoho Sprints | KIT_ZOHO_TEAM_ID, KIT_ZOHO_PROJECT_ID, KIT_ZOHO_SPRINT_IDS (comma-separated), and KIT_ZOHO_USER_ID; either KIT_ZOHO_ACCESS_TOKEN or durable KIT_ZOHO_REFRESH_TOKEN, KIT_ZOHO_CLIENT_ID, and KIT_ZOHO_CLIENT_SECRET; optional KIT_ZOHO_API_BASE and KIT_ZOHO_ACCOUNTS_BASE for your Zoho data center |
Zoho OAuth tokens require the ZohoSprints.items.READ scope. Stash is experimental because its access tokens expire after 30 minutes and it has no personal-access-token flow. It also loads at most 50 recent candidates before applying unread state, so the section is best-effort; kit applies the requested time window locally.
--email-to sends a formatted HTML brief, with a plain-text fallback, through
Resend. Set its API key in
KIT_RESEND_API_KEY. By default, kit sends from Kit <onboarding@resend.dev>, which Resend only
allows when the recipient is the email address associated with your Resend account. For other
recipients, verify a domain in Resend and set KIT_BRIEF_EMAIL_FROM, for example
Kit <brief@mail.example.com>.
-
Create a Resend account using the address that will receive the initial test email.
-
Create an API key from the Resend API Keys page. Do not commit or paste the key into logs, issues, or chat.
-
Build and install the current version of kit on the VPS:
cargo build --release sudo install -m 755 target/release/kit /usr/local/bin/kit
-
Store the environment in a file readable only by root:
sudo install -d -m 700 /etc/kit sudoedit /etc/kit/brief.env sudo chmod 600 /etc/kit/brief.env
At minimum,
/etc/kit/brief.envneeds the following:KIT_RESEND_API_KEY=re_replace_with_your_api_key # KIT_BRIEF_EMAIL_FROM='Kit <brief@mail.example.com>'
Add the Todoist and Zoho variables from the table above to the same file if those sections should be included.
Send a brief immediately before creating the schedule. Kit loads /etc/kit/brief.env
automatically:
sudo /usr/local/bin/kit brief --email-to kcterala@gmail.comA successful request prints Morning brief emailed to kcterala@gmail.com. Check the inbox and
spam folder, then check the Resend email logs to confirm delivery. If
Resend rejects the request, verify that the API key is active and that the Resend account uses
kcterala@gmail.com. The default onboarding@resend.dev sender cannot send to arbitrary
recipients.
After verifying a custom domain in Resend, add the sender to /etc/kit/brief.env and repeat the
test:
KIT_BRIEF_EMAIL_FROM='Kit <brief@mail.example.com>'Add this to root's crontab with sudo crontab -e (adjust the kit path if needed):
CRON_TZ=Asia/Kolkata
0 6 * * * /usr/local/bin/kit brief --email-to kcterala@gmail.com >> /var/log/kit-brief.log 2>&1Confirm that the entry was saved and inspect its output after a scheduled run:
sudo crontab -l
sudo tail -n 50 /var/log/kit-brief.log