You could create an alias doing something like a "git commit --fixup <sha1>" and then a "git rebase --autosquash <sha1>~".
function git-commit-fixup() {
git commit --fixup ":/$*"
}
# usage: suppose there's a commit "fix: the thing"
git-commit-fixup thing
# now there's a new commit "fixup! fix: the thing" which can be autosquashed