I still get to control whether other people can see the session, but I don’t lose it.
I don’t get the “unprofessional” argument. This is attribution. Attribution is professional. If you don’t want it, you turn it off or rewrite the commit messages. If you are having Claude write the commit messages FOR YOU and you are NOT READING THEM then that’s what’s unprofessional. I am honestly kind of shocked and disappointed by how upset people are by this.
https://lwn.net/Articles/1091231/
Which is actually why I DON'T like the session amended. Ultimately it is an ad placed into the Git log, and noise at that. Regardless of if it exists or not, the professional responsibility for what is contained in that PR/commit falls to the feet of the developer contributing it.
Microsoft previously did this with Copilot, which was correctly met with a very negative response. I don't see why an ad by Anthropic is better than an ad from Microsoft.
I presume this is Anthropic trying to their "usage" stats before their IPO.
It was an ad, but nobody cared because using iPhone was a point of pride.
Or, for preference, write the whole commit message yourself? It confuses me a great deal to see projects where someone put in a lot of effort to write a useful and detailed prompt but absolutely couldn't be bothered to write a few sentences for the commit.
"To hide all attribution, set commit and pr to empty strings and sessionUrl to false."
Keep in mind that if you run across someone else's spam in the Git logs:
- You need a Claude account.
- You need permission to view the session.
The only people who can just follow that link and look at how Claude was used, is Anthropic themselves. Therefore, they can also use it as an additional mechanism to tie sessions back to other IDs/identities. For everyone else this is "Sent from an iPhone" but longer.
One thing I'm not sure about: what is the utility of linking to the session? What are folks expected to do with that data?
Having it in the commit message is handy (not to mentioned I already have it I. The commit message).
Models change so much that I don't really see why anybody cares what model was used to generate the code after the fact. It changes every few months and they're non-deterministic so its not like you'll ever "recreate" the same conversation yourself anyways.
I prompted what amounts to verbose “I want X” and then did QA. I’m perfectly happy with an LLM being credited with that code and there being no copyright existing for that code.
For some people that is their life’s work and they want to clutch pearls. Their sole contribution was a half baked idea and they shipped QA out to their “users” but they want to be credited with any rights.
There is definitely a continuum in LLM usage for code, do I agree with an AI blindly stamping every commit, not really.
Do I see LLM generated code as equivalent to me digging a hole with a shovel, it depends. Sometimes there was very little shovelling, other times there was no me involved and you may as well credit the entire hole to the shovel.
Where this will come in is when it comes to copyright and licensing.
If your entire product is LLM generated you sure as hell have no right to place any license on there other than potentially a MIT equivalent license, even that is dubious though but from an organisational standpoint MIT probably will be more widely accepted than saying it is uncopyrightable.
My argument being I would rather know that you didn’t even look at the code, which is what this will achieve, whether I agree with it or not at the very least it will make it easier to sift through the garbage.
It explains the brevity and any typos. That's how I see it used.
The specific model used can't be important because theres a new trending one every couple weeks nowadays. The conversation could be wildly out there and have 10+ different iterations of the same thing in it that led to the final product, etc.
It's not like before AI we were asking people to explain every single iteration they went through in their commit body, or to see their entire internal dialogue.
I don't really understand people's hype around needing to see the conversation they had with their AI. As long as the code itself is self-documented and final decisions are relatively well-documented future agents and humans will pick up on it much faster than reading the entire transcripts anyways.
That's not even bringing into the fact that there are people who use multiple models, multiple sessions, multiple harnesses across the same commits/changesets. How do you reconcile those alongside people who could have made human changes in the end?
However with LLMs you can have them analyze prior transcripts to identify bug sources and so on. I could see it being used. But all theorycrafting. And perhaps motivated reasoning. I’ve always committed early and often and used bisect to find bugs. That places me right away in the squash commits camp because of the method I use to write code.
Also I frequently use an LLM to commit work that I have written. It is just misleading in that case.
In general I assume that attribution to AI is approximate. People copy-paste things out of chats and those don’t get attributed to the AI. And on the flip side, I’ve had AI write a commit, and then I’ve reverted it and written something different by hand (and it got tagged with an LLM session).
The AI attribution is approximate and informative. The commit message and authorship are the more important parts.
You may be concerned that people will think your commits are LLM-generated. I’m sorry that you have to work in that environment, but I don’t work in an environment like that and I don’t share your concerns.
I think some folks think that using an LLM is a shameful act and this is somehow shaming it and others believe that it ties back to the conversation. These conversations don't have any guarantee of being accessible over the long haul. If there was value in the conversation, the conversation should be somehow captured as well, not just some URLs.
I don't understand why it isn't opt-in. Or at least a heads-up somewhere.
"Of course they were intentional in adding in an ad to everyone's git log" honestly night be the less cynical take, because the alternative is assuming that they actually look at git logs ever rather than only having Claude deal with it.
I think a lot of people interpret it as trying to foist additional burden on reviewers. As in "here's my PR, I would like to take credit for this idea, it's now on you to review. If you find a problem with it, I expect you to call out exactly what my incorrect assumptions were, which you are able to do because they're all buried somewhere in this Claude session. Let me know what they are and I'll paste them into a new session and submit again."
So no, I'm not going to assume that's what someone meant. I can at least pretend I consider people to be competent.
I don’t think anyone will find it valuable and I don’t want anyone to read it
It's also, like, kind of the point of using git, isn't it? So putting this in the commit message feels very appropriate to me.
Sometimes I tell Claude ‘don’t trust file X, it was written by a colleague who writes awful tests’. I don’t want that in my commit messages.
Maybe an ID alone would have been better, not a whole http url.
Wikis, changelogs, decision records, issue trackers and more are available to provide greater context for you, your team and the agents you deploy.
I just wish they allow for getting inside subscription pricing vs outside subscription pricing easier
If you know “origin” or “source” and those words suffice, using a word that means the same thing but you don’t know is strictly worse for communication.
So if Claude is writing a novel, maybe provenance is the best word to use at times. If its a codebase README or variable name, its usually not.
But I do see the value in seeing the conversation that lead to the spec. I make sure that all product decisions go through me prior to the agent writing the spec and the questions I ask and decisions I make could definitely help understand retroactively why something is the way it is.
I guess with the default openspec schema you wouldn't have that but you could customize it or create your own in which the reasoning is encoded fully.
Attribution is indeed professional. If you use an AI to write the code for you and have no idea why you accepted the decisions it made nor can you explain them to another human, that would be clear evidence of acute skill atrophy.
This is terrible. I have no desire to read your Claude conversation. I don’t even want to read mine if I do use Claude.
The code is the artifact. There’s no value in trying to make the noisy, verbose conversation one. It’ll likely be dead in future years anyway.
Also, while commenting is good, commit messages can stick around longer.
Not really. Why is always more important than how. Even what is more important. Relevancy of a particular block of code is in the specs and some technical aspecs of computing/library/platform, not in the thought process of the developer.
Post IPO, many years down the line, a leadership that is eager to cut costs will look at their storage usage and expire 7 year old non-training sessions. Quickest thing to go. I have zero faith in any successful provider getting this right.
Git is supposed to be the durable storage medium, self containing and weathering the passage of time. Now we're littering the repos with a bunch of URLs that are only helpful in the short term.
I'm not embarrassed by my LLM usage and I want to provide a full audit trail whenever possible to aid myself in the future.
PS: Claude archives old conversations on your computer after 30days. I've started archiving mine to the side as well for potential future use.
I use many tools to develop software and if my IDE would silently start adding "This commit was created with IntelliJ IDEA Ultimate" I'd find it intrusive and obnoxious, too.
Knowing which model created the code has more "weight" to it than the editor IMHO which is why I think this is different. Adding the session link is a nice touch.
Allowing tools to insert themselves into the git history only makes sense if you are purely vibecoding with a single model and don't even bother to check and clean it up anymore. Is this truly the default state of software development already? How the times have changed.
There are hundreds of them for just about every IDE you can think of.
I can't tell if this is a serious question or not, but metaprogramming/generators are decades old concepts that have been common features of basically every IDE since the 90s.
Surely you know the difference, right? I assume you’ve used LLMs to generate code by now?
Is a series of matrix multiplications on a token vector not a mechanical transformation?
Where is the point where you start to anthropomorphize it?
Autocomplete doesn’t really work until you start typing. The fact that my phone recognizes that I’m starting to type a word and the IDE offers the most statistically likely choice for me to accept doesn’t make those words its own. Same with autocomplete on a phone or in a word processor when entering sentences.
FWIW the Copyright Office, for its part, recognizes that AI generated code is mechanically generated and its opinion is that it’s not copyrightable.
But that’s not really what we’re talking about here. We’re talking about attribution and when it becomes important. To me the metaprogramming/codegen case is different because of the nature of the mechanism, particularly if you wrote the inputs that the IDE transformed on your behalf.
The bar for “writes code for you” is very low.
What, specifically, do you have against it?
The sessions are definitely more useful but only if I'm using a single agent from a single provider.
"Made in China" on items for sale in China is a positive indicator. "Made in China" on items for sale in the U.S. is a negative one.
The line between "attribution" and "marketing" seems to depend on your impression of the entity involved.
I would very deliberately avoid a mystery novel or a prayer book if it said "Co-authored by Claude" because I don't want to see a world in which those things are generated by entities other than humans.
I don't have that same objection when it comes to computer code.
But the important point is that your impression of either one depends on your prior position on Claude. What do you assume when you see that attribution?
Archives? Or deletes?
I think its the beginning of a larger trend where Anthropic makes its infeasible to use Claude without Claude getting credit. Not for ethical reasons, but business reasons. Fingerprinting supports this as well.
Im speculating. And these are little things that are reasonable by itself. They are ethical. But I dont think Anthropic wants Claude to ultimately be a tool that produces some output that just gets integrated into some human’s work product. IE they dont care much about authors utilizing Claude for writing their papers or books. They do care about Claude becoming the most prolific published author by orders of magnitude. And not being “plagiarized.”
Anthropic is making very strange and very opinionated decisions far too often for my liking. It's really making me second guess my continued use of Claude Code.
No one wrote this with a straight face did they?
The line between "advertisement" and "attribution" seems to depend upon your impression of the entity taking the attribution.
The China-made goods have been sold. Ownership transfers at sale. It would be ludicrous for some Chinese agency to say, "Well, we made it, so even though you bought it from us, it's actually still ours. Surprise!"
I still have to use Claude Code at work and after getting used to Pi I feel I'm always fighting against it.
Maybe the way I enjoy working with LLMs just works better with Pi.
Again, if you challenge it “It came from my harness instructions” and obviously telling it not to in memory is about as successful as… any other instruction in memory, about 60% of the time.
We shouldn't polute commit messages with these kind of extra's, they will only lead to more noise. Once all the models append random urls to commit messages, who's to trust these?
If you need attribution I bet that you can find a neater way to tie commit shas to claude uuids.
However, I think claude code needs better change management. It changes quite frequent and I think changes like these should be communicated better in software. (Like a card game may show card changes in game when a patch happened.) It may impact how I do things when creating the commit messages or PRs.
> That is a stupid and evil feature.
I can see arguments for "stupid", but "evil"?
I don't need "Created by Claude Code 1.2.3, Opus 4.8 inside tmux inside ghostty on macOS ## on Mac Book Pro 2019 by git 123 in /Users/nijave/repo"
If you want session context, commit the session or prompt or add a git note. I think opaque URIs are the wrong approach unless they're to an issue tracker with more details. Proprietary URIs are not easily usable and interoperable with other tools. Commited information should still be valid and useful in 10 years.
I'm also not sure session is the right level of abstraction. I recently setup Claude Code with subscription delegation to opencode harness with z.ai coding plans and opencode go coding plan and it's been working fairly but there is no singular "session"
full private repo including session transcripts, etc. agent attribution etc, with public repo that only shows selected subset without sessions ids, some or all agents, etc.
alternatively, we sometimes also do a separate chat only repo or server etc if cross-team agent chat access worth it and don't bother with private / public just disable agents in code repo
have also done some other variants etc. bit of pain to init config, does help with reducing the agent clutter, improve chat security boundaries in case any keys or sensitive env were in any chats if PII / sensitive data checker miss etc.
There absolutely should be a fool proof undefeatable mechanism that identifies or watermarks code that was completely LLM generated.
If you use LLMs, own it.
Hard boundaries there simply don't exist for most workflows, and I suspect if they did, it'd be at the expense of things ~nobody would want to give up.
They probably were thinking about how that serves them as an ad, not about transparency, but still.
I say they should go one step further and somehow make it harder/inconvenient to turn it off (big tech is good at this already, so...); or, maybe, hide that option behind extra feature under premium subscription or something.
P.S. The comments are pure gold. They don't like they can't fake authorship and have the audacity to be indignant!
It might come with advertising benefits for them but expect it’s mostly just because it helps their tools work and that benefits everyone.
- Having the feature available seems good.
- Having the feature default on is debatable, but not outside the realm of possibility.
- Having the feature default on, without any kind of release notes that say that it happens and link to the option to disable it is clownshoes "bring back the ghost of Steve Jobs to yell at the product team" type behavior.
On one hand I guess it is fine to automatically tag that the commit was AI-generated. On the other hand, this will happen even if you audit every line and add your own changes too, which means the attribution is misleading.
Anyone thinking this is about tagging AI generated changes and not just making the experience in Claude better is missing the point of the feature.
https://en.wikipedia.org/wiki/Copyfraud
AI does not enjoy copyright protection. Pretending you created something written by AI is copyfraud.
Which court has made a ruling on this? The only decision I'm aware of was that some Gen-AI artwork couldn't be copyrightable if it was made without substantial input, direction, and scrutiny.
https://www.congress.gov/crs-product/LSB10922
You did not write it, the AI did. Either the work cannot be copyright, or the AI owner (Anthropic) owns the code. Not you. In no case can you own code you didn't write. You guys keep arguing that it enjoys copyright protection without realizing this part. There is no "work-for-hire" default in the law for AI even if it did enjoy copyright. You don't own it. And I am pointing out neither should Anthropic.
(I would also argue whether it matters in practice the other way: if something was AI generated, it is in principle cheap for someone else to generate it separately anyway: if you're wanting to copy AI generated code then there's probably some part of the ideas in it that are valuable beyond what the AI can output on its own)
(Also, this uncertainty does still mean that it's probably prudent to record which parts of your software are generated and which are not: it's a conceivable outcome that some company winds up in court and manages to argue that the human-generated parts are still covered under copyright, but are unable to point to which parts those are and therefore lose it entirely)
>several provisions of the Copyright Act imply that it uses the word "author" only to refer to human beings, including provisions (1) vesting copyright ownership "initially in the author"; (2) limiting copyright duration to 70 years after "the author's death"; (3) providing for inheritance of certain rights by the author's "widow or widower" or "surviving children or grandchildren"; (4) requiring a signature to transfer copyright ownership; (5) extending protection to unpublished works regardless of the author's "nationality or domicile"; and (6) defining a "joint work" based on the authors' "intention" to merge their contributions in a certain way.
The law clearly, definitively, is talking about human authorship and nothing else. You are basing this concept that you can copyright AI written code on a law change that has not happened. It is very very unlikely that a law change can/will ever happen, because copyright law in particular is enshrined in international treaties like the 140 year old Berne Convention. This is a major reason why I was very much opposed to the TPP. Every new international copyright treaty is just more cement, making it completely unchangable. If you want to change this law, it will require cooperation from most of the countries in the world to do it.
Does this mean a company can take code from an open source project that used AI, put it into their closed source code, potentially modify it, all without attribution?