A minimal visual harness for agentic coding.
Project description
aichs
aichs is a minimal visual harness for agentic coding. Adapt it to your workflows, not the other way around.
Open a repository, chat with a model, and let the agent work with your code through approved tools, git context, file references, skills, and extensions.
Status
aichs is early software. It is intended for developers who are comfortable running a local app that can read a workspace and, with approval, edit files or run shell commands.
Install From PyPI
Install the published command with pipx:
pipx install aichs
Start it from a repository:
cd /path/to/your/repo
aichs
Or pass the workspace explicitly:
aichs /path/to/your/repo
Run
By default, aichs honors the directory it was started from. Use
aichs --last-workspace only when you want to reopen the previously saved
workspace.
Conversation history is stored in user data, not in your repository. Each
workspace gets a stable entry in ~/.aichs/workspaces.json and its chats are
saved under ~/.aichs/<workspace_id>/conversations/.
API keys can be configured in Settings -> Models or through environment variables. Requires Python 3.11+.
What It Does
Open a workspace folder, pick a model, and work in one window:
- Agentic coding: ask the agent to inspect files, explain code, search the repo, make edits, and run approved shell commands
- Approval-gated tools: read, edit, search, git context, shell commands, and extension tools with workspace-scoped paths
- Coding workspace: file tree, syntax-highlighted tabs, git status, diffs, file references, and conversation history
- Context management: usage view, auto-compaction, compacted summaries, and decision memory for long sessions
- Customization: slash-command skills, command palette, project/user extensions, custom tools, hooks, badges, and panels
- Conversation flow: streaming Markdown, vision-capable models, file mentions, edit/resend, queued messages, pinned chats, search, and export
Shell commands and extensions run as the current user; only enable extensions you trust.
Contributing
Contributor setup, source installs, tests, packaging, and release notes live in CONTRIBUTING.md.
Documentation
| Topic | |
|---|---|
| Configuration | docs/configuration.md |
| Custom model providers | docs/custom-models.md |
| Extensions and custom tools | docs/extensions.md |
| Slash-command skills | docs/skills.md |
| Compaction and decision memory | docs/compact.md |
FAQ
What does aichs stand for?
AI Choding Harness Studio. It is also a play on Hebrew "ichs" (איכס),
from Arabic إخسا, roughly "yuck" or "ew." The name is a little cursed on
purpose.
Why use aichs when Cursor, Claude Code, Codex, and other agent tools exist?
You may not need it. Those tools are wonderful. aichs is for when you want a small, local, hackable agentic coding workspace that is shaped around your own habits.
Is aichs trying to replace my IDE?
No. It is a companion workbench: one window for the agent conversation, repo context, files, diffs, approvals, custom prompts, and extension tools.
Can I contribute something?
Very much. Small fixes, weird ideas, extensions, docs, and sharp opinions are all welcome. See CONTRIBUTING.md.
Does the S feel forced?
Yes. It is.
License
MIT License. See LICENSE.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file aichs-0.3.0.tar.gz.
File metadata
- Download URL: aichs-0.3.0.tar.gz
- Upload date:
- Size: 284.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b22a50fb3271655925221ee6eb85cdc234ad49b791f2a54aa1a2973bd6910a00
|
|
| MD5 |
4052058b6fad461b3d17a057df596372
|
|
| BLAKE2b-256 |
9eea6574480250d4e584538c277e94308b63585f96a99a10f7c9b83f8a1f7d71
|
Provenance
The following attestation bundles were made for aichs-0.3.0.tar.gz:
Publisher:
publish.yml on nadav-yo/aichs
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
aichs-0.3.0.tar.gz -
Subject digest:
b22a50fb3271655925221ee6eb85cdc234ad49b791f2a54aa1a2973bd6910a00 - Sigstore transparency entry: 1666955217
- Sigstore integration time:
-
Permalink:
nadav-yo/aichs@1b74289350ecccb16b828c9b49f0a00b6fa769c8 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/nadav-yo
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@1b74289350ecccb16b828c9b49f0a00b6fa769c8 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file aichs-0.3.0-py3-none-any.whl.
File metadata
- Download URL: aichs-0.3.0-py3-none-any.whl
- Upload date:
- Size: 261.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4ea957893b0d5d54e032cf565a84d6991c655ca2a3bcfa7f0e854eb131e6aaab
|
|
| MD5 |
78f1a735a130ba5dd7e078aea7ae16c1
|
|
| BLAKE2b-256 |
4eb1c52169394174f4303093b85c00adc910a116289f46b90d1303f0377b2d16
|
Provenance
The following attestation bundles were made for aichs-0.3.0-py3-none-any.whl:
Publisher:
publish.yml on nadav-yo/aichs
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
aichs-0.3.0-py3-none-any.whl -
Subject digest:
4ea957893b0d5d54e032cf565a84d6991c655ca2a3bcfa7f0e854eb131e6aaab - Sigstore transparency entry: 1666955269
- Sigstore integration time:
-
Permalink:
nadav-yo/aichs@1b74289350ecccb16b828c9b49f0a00b6fa769c8 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/nadav-yo
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@1b74289350ecccb16b828c9b49f0a00b6fa769c8 -
Trigger Event:
workflow_dispatch
-
Statement type: